diff --git a/CHANGELOG.md b/CHANGELOG.md index 26ade355..60d6c0c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,28 @@ Todas as alterações serão documentadas neste arquivo Formato baseado em [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), e [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.39.0] - 2022-10-28 +### Fixed + +- Correções em editarVenda.php corrigido erro para permitir adicionar desconto em venda com valor superior a mil reais, erro de mascará, consequentemente foi atualizado imprimirVenda.php e imprimirVendaTermica.php para tratar o mesmo problema. [@Rodrigo-Paz](https://github.com/Rodrigo-Paz) +- Correções no relatorioFinanceiro.php valor total que não estava informado assim como o valor total do relatorio visto que nao puxava vendas sem desconto, foi corrigido e adicionado simbolo de % no lugar de R$ para o campo desconto. [@Rodrigo-Paz](https://github.com/Rodrigo-Paz) + +### Changed + +- Trocado link parta envio via Whatsapp, afim de abranger usuários do Whastapp desktop e Whatsapp mobile, já que o atual web.whatsapp.com não faz o redirecionamento para os apps citados anteriormente. Essa alteração não afeta usuários do Whatsapp Web. [@lukasabino](https://github.com/lukasabino) + +## [4.38.0] - 2022-04-29 + +### Fixed + +- Correções gerais de bugs. [@Wilmerson](https://github.com/willph) + +### Added + +- Desconto em OS e Vendas. [@Wilmerson](https://github.com/willph) +- Financeiro (parcelamento, desconto e melhorias). [@luizrn](https://github.com/luizrn) +- Documentação de cronjobs no Windows. [@luizrn](https://github.com/luizrn) + ## [4.37.0] - 2022-03-27 ### Fixed diff --git a/Cronjobs no Windows para enviar os e-emails.md b/Cronjobs no Windows para enviar os e-emails.md new file mode 100644 index 00000000..a006225c --- /dev/null +++ b/Cronjobs no Windows para enviar os e-emails.md @@ -0,0 +1,99 @@ +Esse tutorial ensinará a criar cronjobs para envio de e-mails do sistema Map-os utlizando um programa do próprio Windows. + +1- Abra o menu de pesquisa do Windows e digite 'Agendador de Tarefas' conforme imagem: + +![07mDyiE](https://user-images.githubusercontent.com/10822915/158883875-d688412a-a331-408f-8f17-856f0731edf3.png) + + + + + + +2- Na janela que se abre, clique em 'Criar Tarefa' ou nas guias em cima 'Ação > Criar Tarefa': + +![iFptNra](https://user-images.githubusercontent.com/10822915/158883952-63244787-ec9c-4789-91be-c847715f2e14.png) + + + + + + +3- Coloque um nome para a tarefa exemplo 'Enviar e-mails map-os' (para o processo rodar em backgraund e não ficar encomodando aparecendo a tela de cmd executando o comando a cada vez no intervalo de tempo informado, marque a opção 'Executar estando o usuário conectado ou não', esta opção irá exigir seus dados de login do Windows): + +![cQxX11L](https://user-images.githubusercontent.com/10822915/158884024-a0f113a9-952c-4721-9f5a-d3af29b03d48.png) + + + + + + +4- Vá para a guia 'Disparadores' depois 'Novo...': + +![E7mqa66](https://user-images.githubusercontent.com/10822915/158884109-3d7ff889-e2a2-4426-a4b9-5172978295fe.png) + + + + + + +5- Deixei conforme a imagem, 'Iniciar a tarafa: Em Agendamento', 'Uma vez', marque a opção 'Repetir a tarefa a cada (coloque o tempo que deseja)', e na opção ao lado 'por um período de tempo de: Indefinidamente' e clique em 'Ok': + +![bNxPRpx](https://user-images.githubusercontent.com/10822915/158884165-be3fd21f-42fc-49a4-addc-84b841bfc451.png) + + + + + + +6- Vá para a guia 'Ações' e clique em 'Novo...': + +![N4uggns](https://user-images.githubusercontent.com/10822915/158884203-00a3da70-359a-4767-9167-86ec3728f021.png) + + + + + + +7- Nesta janela, deixa a opção selecionada 'Iniciar um programa', +e em 'Programa/Script' coloque o caminho do seu php.exe, se for Xampp o caminho padrão é 'C:\xampp\php\php.exe', +em baixo em 'Adicione argumentos' coloque o comando do map-os para processar a fila de e-mails 'index.php email/process' na próxima opção 'Iniciar em' coloque o diretório onde está a pasta do seu map-os desta forma (Para o Xampp) 'C:\xampp\htdocs\mapos' e clique em 'Ok': + +![Oi07I9J](https://user-images.githubusercontent.com/10822915/158884265-64539007-95a2-4e71-b80a-7d4ae14bee49.png) + + + + + + +8- Feito os passos acima, clique em 'OK' e a tarefa será criada (Se for solicitado dados de login do windows siga o passo 9, se não pule para o 10): + +![2JBbi0Q](https://user-images.githubusercontent.com/10822915/158884324-4d92ef4e-b849-481e-bb29-5b6fbcdced30.png) + + + + + + +9- Se você marcou a opção do passo 3 na primeira guia 'Geral' a opção 'Executar estando o usuário conectado ou não', ao clicar em 'Ok' vai ser solicitado uma credencial de login do Windows, selecione qualquer uma da lista ou o seu usuário do windows e preencha a senha de login (Talves tenha na lista alguma opção que não exija senha), +se mesmo assim informando os dados certos de login nao der certo e ficar dando mensagem de erro, você pode voltar na primeira guia 'Geral' e desmarcar a opção 'Executar estando o usuário conectado ou não', lembrando que está opção é somente para quando a tarefa for executada nao ficar aparecendo uma janela de cmd por uns 3 segundos executando o comando +(Se mesmo seguindo tudo do passo 9 nao aceitar o usuário, você pode clicar na opção 'Alterar usuário ou grupo', na janela que abre, no último campo escreva seu nome de USer ou 'sistema' e depois em verificar nomes ): + +![T5XSXql](https://user-images.githubusercontent.com/10822915/158884385-cd5ed389-07c1-438e-9704-424f99c325ca.png) + + + + + + +10- Para testar se funcionou, não precisa esperar o intervalo de tempo selecionado, basta clicar com o botão direito na tarefa e 'Executar', pode tambem selecionar com um clique a tarefa e ao lado nas opções em 'Executar': + +![iEY2U45](https://user-images.githubusercontent.com/10822915/158884432-ecf5efda-1974-4c3b-be1f-1e8ec8825e9e.png) + + + + + + +11- Para conferir se executou a fila, vá em seu Map-os 'Configurações' e em 'Emails' e veja o 'Status', se tiver com o status 'Falhou' possivelmente o problema é na sua configuração smtp, para saber se executou ou não basta nao estar em 'Pendente', lembrando que o email em Emitente em configurações precisa estar o mesmo no smtp (Para problemas com configuração de smtp procure por Issues abertas ou fechadas exemplo 'envio de email smtp') + +Por fim, você pode criar outra tarefa para o comando 'index.php email/retry', que serve para reenviar e-mails com erros ou não enviados, basta seguir os mesmos passos, somente alterando conforme o passo 7 a opção 'Adicione argumentos' diff --git a/README.md b/README.md index df30c208..697719f8 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ ![MapOS](https://raw.githubusercontent.com/RamonSilva20/mapos/master/assets/img/logo.png) -![version](https://img.shields.io/badge/version-4.37.0-blue.svg?longCache=true&style=flat-square) +![version](https://img.shields.io/badge/version-4.39.0-blue.svg?longCache=true&style=flat-square) ![license](https://img.shields.io/badge/license-MIT-green.svg?longCache=true&style=flat-square) ![theme](https://img.shields.io/badge/theme-Matrix--Admin-lightgrey.svg?longCache=true&style=flat-square) ![issues](https://img.shields.io/github/issues/RamonSilva20/mapos.svg?longCache=true&style=flat-square) ![contributors](https://img.shields.io/github/contributors/RamonSilva20/mapos.svg?longCache=true&style=flat-square) +### Contato: contato@mapos.com.br ### [Feedback](https://github.com/RamonSilva20/mapos/discussions) - Vote ou sugira melhorias ![Map-OS](https://raw.githubusercontent.com/RamonSilva20/mapos/master/docs/dashboard.png) @@ -91,7 +92,7 @@ Para listar todos os comandos de terminal disponíveis, basta executar o comando * [filp/whoops](https://github.com/filp/whoops) ### Requerimentos -* PHP >= 7.3 +* PHP >= 8.1 * MySQL * Composer @@ -108,8 +109,7 @@ Doações podem ser realizadas nos links: |:-:|:-:|:-:|:-:|:-:| | [
Daniel Bastos](https://github.com/daniellbastos) | [
drelldeveloper](https://github.com/drelldeveloper) | [
Samuel Fontebasso](https://github.com/fontebasso) | [
marllonferreira](https://github.com/marllonferreira) | [
Rodrigo Ribeiro](https://github.com/rodrigo3d) | [
Wilmerson](https://github.com/willph) | [
Thiago Rodrigues](https://github.com/bulfaitelo) | [
Marcos Pereira](https://github.com/mvnp)| [
Marcos](https://github.com/marcotuliomtb)| [
ZanzouShio](https://github.com/ZanzouShio) -| [
Djunio](https://github.com/seitbnao) | [
Milson Elias](https://github.com/MilsonElias) | - +| [
Djunio](https://github.com/seitbnao) | [
Milson Elias](https://github.com/MilsonElias) | [
Rodrigo Paz](https://github.com/Rodrigo-Paz) | [
Luka Sabino](https://github.com/lukasabino) ## Autor | [
Ramon Silva](https://github.com/RamonSilva20) | diff --git a/application/config/config.php b/application/config/config.php index 96498ae7..845ad6b4 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -4,7 +4,7 @@ /** * App current version */ -$config['app_version'] = '4.37.0'; +$config['app_version'] = '4.39.0'; /** * Nome do sistema @@ -16,6 +16,10 @@ */ $config['app_subname'] = 'Sistema de Controle de Ordens de Serviço'; +/** + * Definição da hora local. + */ +date_default_timezone_set('America/Sao_Paulo'); /* |-------------------------------------------------------------------------- @@ -496,9 +500,3 @@ | Array: array('10.0.1.200', '192.168.5.0/24') */ $config['proxy_ips'] = ''; - - - -$config['modules_locations'] = [ - APPPATH.'modules/' => '../modules/', -]; diff --git a/application/config/form_validation.php b/application/config/form_validation.php index 997e4a8c..904719c9 100644 --- a/application/config/form_validation.php +++ b/application/config/form_validation.php @@ -10,7 +10,7 @@ [ 'field' => 'documento', 'label' => 'CPF/CNPJ', - 'rules' => 'trim|verific_cpf_cnpj|unique[clientes.documento.' . $this->uri->segment(3) . '.idClientes]', + 'rules' => 'trim|verific_cpf_cnpj|unique[clientes.documento.' . get_instance()->uri->segment(3) . '.idClientes]', 'errors' => [ 'verific_cpf_cnpj' => "O campo %s não é um CPF ou CNPJ válido." ], diff --git a/application/config/payment_gateways.php b/application/config/payment_gateways.php index 0632597a..b085e052 100644 --- a/application/config/payment_gateways.php +++ b/application/config/payment_gateways.php @@ -4,7 +4,7 @@ $config['payment_gateways'] = [ 'GerencianetSdk' => [ - 'name' => 'GerenciaNet', + 'name' => 'GerenciaNet (Efí)', 'library_name' => 'GerencianetSdk', 'production' => false, 'credentials' => [ diff --git a/application/controllers/Arquivos.php b/application/controllers/Arquivos.php index a96b7c24..10073fa1 100644 --- a/application/controllers/Arquivos.php +++ b/application/controllers/Arquivos.php @@ -4,7 +4,6 @@ class Arquivos extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Clientes.php b/application/controllers/Clientes.php index 44aae81d..8d4adee0 100644 --- a/application/controllers/Clientes.php +++ b/application/controllers/Clientes.php @@ -4,7 +4,6 @@ class Clientes extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -55,12 +54,21 @@ public function adicionar() $senhaCliente = $this->input->post('senha') ? $this->input->post('senha') : preg_replace('/[^\p{L}\p{N}\s]/', '', set_value('documento')); + $cpf_cnpj = preg_replace('/[^\p{L}\p{N}\s]/', '', set_value('documento')); + + if (strlen($cpf_cnpj) == 11) { + $pessoa_fisica = true; + } else { + $pessoa_fisica = false; + } + if ($this->form_validation->run('clientes') == false) { $this->data['custom_error'] = (validation_errors() ? '
' . validation_errors() . '
' : false); } else { $data = [ 'nomeCliente' => set_value('nomeCliente'), 'contato' => set_value('contato'), + 'pessoa_fisica' => $pessoa_fisica, 'documento' => set_value('documento'), 'telefone' => set_value('telefone'), 'celular' => set_value('celular'), diff --git a/application/controllers/Cobrancas.php b/application/controllers/Cobrancas.php index 03a23e0c..9467d62e 100644 --- a/application/controllers/Cobrancas.php +++ b/application/controllers/Cobrancas.php @@ -4,7 +4,6 @@ class Cobrancas extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Financeiro.php b/application/controllers/Financeiro.php index 2891818b..0006acda 100644 --- a/application/controllers/Financeiro.php +++ b/application/controllers/Financeiro.php @@ -4,7 +4,6 @@ class Financeiro extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -37,9 +36,12 @@ public function lancamentos() $cliente = $this->input->get('cliente'); $tipo = $this->input->get('tipo'); $status = $this->input->get('status'); + $valor_desconto = $this->input->get('valor_desconto'); + $desconto = $this->input->get('desconto'); + $periodo = $this->input->get('periodo'); - if (! empty($vencimento_de)) { + if (!empty($vencimento_de)) { $date = DateTime::createFromFormat('d/m/Y', $vencimento_de)->format('Y-m-d'); if (empty($where)) { @@ -49,7 +51,7 @@ public function lancamentos() } } - if (! empty($vencimento_ate)) { + if (!empty($vencimento_ate)) { $date = DateTime::createFromFormat('d/m/Y', $vencimento_ate)->format('Y-m-d'); if (empty($where)) { @@ -67,15 +69,15 @@ public function lancamentos() } } - if (! empty($cliente)) { + if (!empty($cliente)) { if (empty($where)) { - $where = "cliente_fornecedor LIKE '%${cliente}%'"; + $where = "cliente_fornecedor LIKE '%{$cliente}%'"; } else { - $where .= " AND cliente_fornecedor LIKE '%${cliente}%'"; + $where .= " AND cliente_fornecedor LIKE '%{$cliente}%'"; } } - if (! empty($tipo)) { + if (!empty($tipo)) { if (empty($where)) { $where = "tipo = '$tipo'"; } else { @@ -94,6 +96,8 @@ public function lancamentos() $this->data['results'] = $this->financeiro_model->get('lancamentos', '*', $where, $this->data['configuration']['per_page'], $this->input->get('per_page')); $this->data['totals'] = $this->financeiro_model->getTotals($where); + $this->data['estatisticas_financeiro'] = $this->financeiro_model->getEstatisticasFinanceiro2(); + $this->data['view'] = 'financeiro/lancamentos'; return $this->layout(); } @@ -132,6 +136,22 @@ public function adicionarReceita() $valor = $this->input->post('valor'); + //Se o valor_desconto for vázio, seta a variavel com valor 0, se não for vazio recebe o valor de desconto + + $valor_desconto = floatval($this->input->post('valor_desconto')); + + $desconto = $valor_desconto; + //cria variavel para pegar o valor total ja sem o desconto e soma com o desconto + $total_sem_desconto = $valor + $valor_desconto; + $valor = $total_sem_desconto; + //cria variavel para pegar o valor total ja com o desconto e diminui com o desconto + $total_com_desconto = $valor - $valor_desconto; + $valor_desconto = $total_com_desconto; + + if (!validate_money($valor_desconto)) { + $valor_desconto = str_replace([',', '.'], ['', ''], $valor_desconto); + } + if (!validate_money($valor)) { $valor = str_replace([',', '.'], ['', ''], $valor); } @@ -139,6 +159,9 @@ public function adicionarReceita() $data = [ 'descricao' => set_value('descricao'), 'valor' => $valor, + 'valor_desconto' => $valor_desconto, + 'desconto' => $desconto, + 'tipo_desconto' => 'real', 'data_vencimento' => $vencimento, 'data_pagamento' => $recebimento != null ? $recebimento : date('Y-m-d'), 'baixado' => $this->input->post('recebido') ?: 0, @@ -146,7 +169,7 @@ public function adicionarReceita() 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => set_value('tipo'), 'observacoes' => set_value('observacoes'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if (set_value('idFornecedor')) { @@ -155,16 +178,204 @@ public function adicionarReceita() if (set_value('idCliente')) { $data['clientes_id'] = set_value('idCliente'); } + + if ($this->financeiro_model->add('lancamentos', $data) == true) { - $this->session->set_flashdata('success', 'Receita adicionada com sucesso!'); - log_info('Adicionou uma receita'); + $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!'); + log_info('Adicionou um lançamento em Financeiro'); redirect($urlAtual); } else { $this->data['custom_error'] = '

Ocorreu um erro.

'; } } - $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar receita.'); + $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar o lançamento.'); + redirect($urlAtual); + } + + public function adicionarReceita_parc() + { + //$this->load->library('form_validation'); + //$this->data['custom_error'] = ''; + $urlAtual = $this->input->post('urlAtual'); + if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'aLancamento')) { + $this->session->set_flashdata('error', 'Você não tem permissão para adicionar lançamentos.'); + redirect(base_url()); + } else { + + $valor_desconto = $this->input->post('desconto_parc') ?: 0; + $entrada = $this->input->post('entrada') ?: 0; + $valor_desconto = str_replace(',', '.', $valor_desconto); + + $qtdparcelas_parc = $this->input->post('qtdparcelas_parc') ?: 1; //4x + $valor_parc = $this->input->post('valor_parc'); //450 + $valorparcelas = ($valor_parc - $entrada) / $qtdparcelas_parc; + + $desconto_por_parcela = $valor_desconto > 0 ? ($valor_desconto / $qtdparcelas_parc) : 0; + + //para por na descrição, valor total sem desconto e sem parcelamento + $descricao_parc_valor = $valor_parc + $valor_desconto; + + //cria variavel para pegar o valor total ja com o desconto e diminui com o desconto + $total_com_desconto = $valorparcelas + $desconto_por_parcela; + + + if ($entrada >= $valor_parc) { + $this->session->set_flashdata('error', 'O valor da entrada não pode ser maior ou igual ao valor total da receita/Despesa!'); + redirect($urlAtual); + } + + $dia_pgto = $this->input->post('dia_pgto'); + $dia_base_pgto = $this->input->post('dia_base_pgto'); + $recebimento = $this->input->post('recebimento'); + + try { + $dia_pgto = explode('/', $dia_pgto); + $dia_pgto = $dia_pgto[2] . '-' . $dia_pgto[1] . '-' . $dia_pgto[0]; + + $dia_base_pgto = explode('/', $dia_base_pgto); + $dia_base_pgto = $dia_base_pgto[2] . '-' . $dia_base_pgto[1] . '-' . $dia_base_pgto[0]; + } catch (Exception $e) { + $dia_pgto = date('Y/m/d'); + $dia_base_pgto = date('Y/m/d'); + } + + if ($recebimento) { + try { + + $recebimento = explode('/', $recebimento); + $recebimento = $recebimento[2] . '-' . $recebimento[1] . '-' . $recebimento[0]; + } catch (Exception) { + } + } + + $comissao = $this->input->post('comissao'); + + if (!validate_money($comissao)) { + $comissao = str_replace([',', '.'], ['', ''], $comissao); + } + + if ($entrada == 0) { + $loops = 1; + while ($loops <= $qtdparcelas_parc) { + $myDateTimeISO = $dia_base_pgto; + $loopsmes = $loops - 1; + $addThese = $loopsmes; + $myDateTime = new DateTime($myDateTimeISO); + $myDayOfMonth = date_format($myDateTime, 'j'); + date_modify($myDateTime, "+$addThese months"); + + //Descobre se o dia do mês caiu + $myNewDayOfMonth = date_format($myDateTime, 'j'); + if ($myDayOfMonth > 28 && $myNewDayOfMonth < 4) { + //Em caso afirmativo, corrija voltando o número de dias que transbordaram + date_modify($myDateTime, "-$myNewDayOfMonth days"); + } + + $data = [ + 'descricao' => $this->input->post('descricao_parc') . ' - Parcelamento de R$' . $descricao_parc_valor . ' [' . $loops . '/' . $qtdparcelas_parc . ']', + 'valor' => $total_com_desconto, + 'desconto' => $desconto_por_parcela, + 'tipo_desconto' => 'real', + 'valor_desconto' => $valorparcelas, + 'data_vencimento' => date_format($myDateTime, "Y-m-d"), + 'data_pagamento' => $recebimento ?: date_format($myDateTime, "Y-m-d"), + 'baixado' => 0, + 'cliente_fornecedor' => $this->input->post('cliente_parc'), + 'observacoes' => $this->input->post('observacoes_parc'), + 'forma_pgto' => $this->input->post('formaPgto_parc'), + 'tipo' => $this->input->post('tipo_parc'), + 'usuarios_id' => $this->session->userdata('id_admin'), + + ]; + + if ($this->financeiro_model->add('lancamentos', $data) == true) { + $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!'); + log_info('Adicionou um lançamento em Financeiro'); + } else { + $this->data['custom_error'] = '

Ocorreu um erro.

'; + } + $loops++; + } + + redirect($urlAtual); + } else { + $desconto_entrada = "0"; + $data1 = [ + 'descricao' => $this->input->post('descricao_parc') . ' - Entrada do parc. de R$' . $descricao_parc_valor . ' ', + 'valor' => $entrada, + 'desconto' => $desconto_entrada, + 'valor_desconto' => $entrada, + 'tipo_desconto' => 'real', + 'data_vencimento' => $dia_pgto, + 'data_pagamento' => $dia_pgto != null ? $dia_pgto : date_format($myDateTime, "Y-m-d"), + 'baixado' => 1, + 'cliente_fornecedor' => $this->input->post('cliente_parc'), + 'observacoes' => $this->input->post('observacoes_parc'), + 'forma_pgto' => $this->input->post('formaPgto_parc'), + 'tipo' => $this->input->post('tipo_parc'), + 'usuarios_id' => $this->session->userdata('id_admin'), + + + + ]; + // if (empty($data['valor_desconto'])) { + // $data['valor_desconto'] = "0"; + // } + + $this->financeiro_model->add1('lancamentos', $data1); + + $loops = 1; + while ($loops <= $qtdparcelas_parc) { + $myDateTimeISO = $dia_base_pgto; + $loopsmes = $loops - 1; + $addThese = $loopsmes; + $myDateTime = new DateTime($myDateTimeISO); + $myDayOfMonth = date_format($myDateTime, 'j'); + date_modify($myDateTime, "+$addThese months"); + + //Find out if the day-of-month has dropped + $myNewDayOfMonth = date_format($myDateTime, 'j'); + if ($myDayOfMonth > 28 && $myNewDayOfMonth < 4) { + //If so, fix by going back the number of days that have spilled over + date_modify($myDateTime, "-$myNewDayOfMonth days"); + } + + $data = [ + 'descricao' => $this->input->post('descricao_parc') . ' - Parcelamento de R$' . $descricao_parc_valor . ' [' . $loops . '/' . $qtdparcelas_parc . ']', + 'valor' => $total_com_desconto, + 'desconto' => $desconto_por_parcela, + 'tipo_desconto' => 'real', + 'valor_desconto' => $valorparcelas, + 'data_vencimento' => date_format($myDateTime, "Y-m-d"), + 'data_pagamento' => date_format($myDateTime, "Y-m-d"), + 'baixado' => 0, + 'cliente_fornecedor' => $this->input->post('cliente_parc'), + 'observacoes' => $this->input->post('observacoes_parc'), + 'forma_pgto' => $this->input->post('formaPgto_parc'), + 'tipo' => $this->input->post('tipo_parc'), + 'usuarios_id' => $this->session->userdata('id_admin'), + + ]; + + // if (empty($data['valor_desconto'])) { + // $data['valor_desconto'] = "0"; + // } + + if ($this->financeiro_model->add('lancamentos', $data) == true) { + $this->session->set_flashdata('success', 'Lançamento adicionado com sucesso!'); + log_info('Adicionou um lançamento em Financeiro'); + } else { + $this->data['custom_error'] = '

Ocorreu um erro.

'; + } + $loops++; + } + + redirect($urlAtual); + } + } + + $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar adicionar o lançamento'); redirect($urlAtual); } @@ -216,7 +427,7 @@ public function adicionarDespesa() 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => set_value('tipo'), 'observacoes' => set_value('observacoes'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if (set_value('idFornecedor')) { @@ -256,6 +467,7 @@ public function editar() $this->form_validation->set_rules('vencimento', '', 'trim|required'); $this->form_validation->set_rules('pagamento', '', 'trim'); + if ($this->form_validation->run() == false) { $this->data['custom_error'] = (validation_errors() ? '
' . validation_errors() . '
' : false); } else { @@ -272,22 +484,37 @@ public function editar() $vencimento = date('Y/m/d'); } + + $valor = floatval($this->input->post('valor')); + //Se o valor_desconto for vázio, seta a variavel com valor 0, se não for vazio recebe o valor de desconto + $valor_desconto = floatval($this->input->post('valor_desconto_editar')); // valor do total + desconto + + $valor_total = $valor + $valor_desconto; //90 + 10=100 + $valor_com_desconto = $valor_total - $valor_desconto; + $data = [ 'descricao' => $this->input->post('descricao'), 'data_vencimento' => $vencimento, 'data_pagamento' => $pagamento, - 'valor' => $this->input->post('valor'), + 'valor' => $valor_total, + 'desconto' => $valor_desconto, + 'tipo_desconto' => 'real', + 'valor_desconto' => $valor_com_desconto, 'baixado' => $this->input->post('pago') ?: 0, 'cliente_fornecedor' => $this->input->post('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo'), 'observacoes' => $this->input->post('observacoes'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if (set_value('idFornecedor')) { $data['clientes_id'] = set_value('idFornecedor'); } + if (empty($data['valor_desconto'])) { + $data['valor_desconto'] = "0"; + } + if (set_value('idCliente')) { $data['clientes_id'] = set_value('idCliente'); } @@ -309,15 +536,20 @@ public function editar() 'data_vencimento' => $this->input->post('vencimento'), 'data_pagamento' => $pagamento, 'valor' => $this->input->post('valor'), + 'valor_desconto' => $this->input->post('valor_desconto_editar'), + 'tipo_desconto' => 'real', 'baixado' => $this->input->post('pago'), 'cliente_fornecedor' => set_value('fornecedor'), 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if (set_value('idFornecedor')) { $data['clientes_id'] = set_value('idFornecedor'); } + if (empty($data['valor_desconto'])) { + $data['valor_desconto'] = "0"; + } if (set_value('idCliente')) { $data['clientes_id'] = set_value('idCliente'); } diff --git a/application/controllers/Garantias.php b/application/controllers/Garantias.php index b2e2b856..699fc74b 100644 --- a/application/controllers/Garantias.php +++ b/application/controllers/Garantias.php @@ -4,7 +4,6 @@ class Garantias extends MY_Controller { - /** * author: Wilmerson Felipe * email: will.phelipe@gmail.com @@ -62,7 +61,7 @@ public function adicionar() 'dataGarantia' => date('Y/m/d'), 'refGarantia' => $this->input->post('refGarantia'), 'textoGarantia' => $this->input->post('textoGarantia'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if (is_numeric($id = $this->garantias_model->add('garantias', $data, true))) { @@ -156,6 +155,26 @@ public function imprimir() $this->load->view('garantias/imprimirGarantia', $this->data); } + public function imprimirGarantiaOs() + { + if (!$this->uri->segment(3) || !is_numeric($this->uri->segment(3))) { + $this->session->set_flashdata('error', 'Item não pode ser encontrado, parâmetro não foi passado corretamente.'); + redirect('mapos'); + } + + if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'vGarantia')) { + $this->session->set_flashdata('error', 'Você não tem permissão para imprimir o Termo de Garantia.'); + redirect(base_url()); + } + + $this->data['custom_error'] = ''; + $this->load->model('mapos_model'); + $this->data['osGarantia'] = $this->garantias_model->getByIdOsGarantia($this->uri->segment(3)); + $this->data['emitente'] = $this->mapos_model->getEmitente(); + + $this->load->view('garantias/imprimirGarantiaOs', $this->data); + } + public function excluir() { if (!$this->permission->checkPermission($this->session->userdata('permissao'), 'dGarantia')) { diff --git a/application/controllers/Login.php b/application/controllers/Login.php index beb1a9bd..396ba63e 100644 --- a/application/controllers/Login.php +++ b/application/controllers/Login.php @@ -48,8 +48,8 @@ public function verificarLogin() // Verificar credenciais do usuário if (password_verify($password, $user->senha)) { - $session_data = ['nome' => $user->nome, 'email' => $user->email, 'url_image_user' => $user->url_image_user, 'id' => $user->idUsuarios, 'permissao' => $user->permissoes_id, 'logado' => true]; - $this->session->set_userdata($session_data); + $session_admin_data = ['nome_admin' => $user->nome, 'email_admin' => $user->email, 'url_image_user_admin' => $user->url_image_user, 'id_admin' => $user->idUsuarios, 'permissao' => $user->permissoes_id, 'logado' => true]; + $this->session->set_userdata($session_admin_data); log_info('Efetuou login no sistema'); $json = ['result' => true]; echo json_encode($json); diff --git a/application/controllers/Mapos.php b/application/controllers/Mapos.php index 2b3bee5a..715668b6 100644 --- a/application/controllers/Mapos.php +++ b/application/controllers/Mapos.php @@ -3,7 +3,6 @@ } class Mapos extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -34,14 +33,14 @@ public function index() public function minhaConta() { - $this->data['usuario'] = $this->mapos_model->getById($this->session->userdata('id')); + $this->data['usuario'] = $this->mapos_model->getById($this->session->userdata('id_admin')); $this->data['view'] = 'mapos/minhaConta'; return $this->layout(); } public function alterarSenha() { - $current_user = $this->mapos_model->getById($this->session->userdata('id')); + $current_user = $this->mapos_model->getById($this->session->userdata('id_admin')); if (!$current_user) { $this->session->set_flashdata('error', 'Ocorreu um erro ao pesquisar usuário!'); @@ -135,7 +134,7 @@ public function do_upload() $this->upload_config = [ 'upload_path' => $image_upload_folder, - 'allowed_types' => 'png|jpg|jpeg|bmp', + 'allowed_types' => 'png|jpg|jpeg|bmp|svg', 'max_size' => 2048, 'remove_space' => true, 'encrypt_name' => true, @@ -320,7 +319,7 @@ public function uploadUserImage() redirect(base_url()); } - $id = $this->session->userdata('id'); + $id = $this->session->userdata('id_admin'); if ($id == null || !is_numeric($id)) { $this->session->set_flashdata('error', 'Ocorreu um erro ao tentar alterar sua foto.'); redirect(site_url('mapos/minhaConta')); @@ -416,6 +415,7 @@ public function configurar() $this->form_validation->set_rules('control_edit_vendas', 'Controle de Edição de Vendas', 'required|trim'); $this->form_validation->set_rules('control_datatable', 'Controle de Visualização em DataTables', 'required|trim'); $this->form_validation->set_rules('os_status_list[]', 'Controle de visualização de OS', 'required|trim', ['required' => 'Selecione ao menos uma das opções!']); + $this->form_validation->set_rules('control_2vias', 'Controle Impressão 2 Vias', 'required|trim'); $this->form_validation->set_rules('pix_key', 'Chave Pix', 'trim|valid_pix_key', [ 'valid_pix_key' => 'Chave Pix inválida!', ]); @@ -437,6 +437,7 @@ public function configurar() 'control_datatable' => $this->input->post('control_datatable'), 'pix_key' => $this->input->post('pix_key'), 'os_status_list' => json_encode($this->input->post('os_status_list')), + 'control_2vias' => $this->input->post('control_2vias'), ]; if ($this->mapos_model->saveConfiguracao($data) == true) { $this->session->set_flashdata('success', 'Configurações do sistema atualizadas com sucesso!'); @@ -549,15 +550,16 @@ public function calendario() 'extendedProps' => [ 'id' => $os->idOs, 'cliente' => 'Cliente: ' . $os->nomeCliente, - 'dataInicial' => 'Data Inicial: ' . $os->dataInicial, - 'dataFinal' => 'Data Final: ' . $os->dataFinal, - 'garantia' => 'Garantia: ' . $os->garantia, + 'dataInicial' => 'Data Inicial: ' . date('d/m/Y', strtotime($os->dataInicial)), + 'dataFinal' => 'Data Final: ' . date('d/m/Y', strtotime($os->dataFinal)), + 'garantia' => 'Garantia: ' . $os->garantia . ' dias', 'status' => 'Status da OS: ' . $os->status, - 'description' => 'Descrição/Produto: ' . $os->descricaoProduto, - 'defeito' => 'Defeito: ' . $os->defeito, - 'observacoes' => 'Observações: ' . $os->observacoes, + 'description' => 'Descrição/Produto: ' . strip_tags(html_entity_decode($os->descricaoProduto)), + 'defeito' => 'Defeito: ' . strip_tags(html_entity_decode($os->defeito)), + 'observacoes' => 'Observações: ' . strip_tags(html_entity_decode($os->observacoes)), 'total' => 'Valor Total: R$ ' . number_format($os->totalProdutos + $os->totalServicos, 2, ',', '.'), - 'valorFaturado' => 'Valor Faturado: R$ ' . number_format($os->valorTotal, 2, ',', '.'), + 'desconto' => 'Desconto: R$ ' . number_format($os->desconto, 2, ',', '.'), + 'valorFaturado' => 'Valor Faturado: R$ ' . number_format($os->valorTotal - $os->desconto, 2, ',', '.'), 'editar' => $this->os_model->isEditable($os->idOs), ] ]; diff --git a/application/controllers/Mine.php b/application/controllers/Mine.php index 2e3a8c64..8d8c4706 100644 --- a/application/controllers/Mine.php +++ b/application/controllers/Mine.php @@ -42,8 +42,8 @@ public function senhaSalvar() $cliente = $this->check_credentials($token->email); if ($token == null && $cliente == null) { - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Alteração de senha. Porém, os dados de acesso estão incorretos.'); echo json_encode(['result' => false, 'message' => 'Os dados de acesso estão incorretos.']); } else { @@ -58,15 +58,15 @@ public function senhaSalvar() $this->load->model('resetSenhas_model', '', true); if ($this->Conecte_model->edit('clientes', $data, 'idClientes', $cliente->idClientes) == true) { if ($this->resetSenhas_model->edit('resets_de_senha', $dataToken, 'id', $token->id) == true) { - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Alteração da senha realizada com sucesso.'); echo json_encode(['result' => true]); } } } else { - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Alteração de senha. Porém, dados divergentes.'); echo json_encode(['result' => false, 'message' => 'Dados divergentes.']); } @@ -88,16 +88,16 @@ public function tokenManual() if ($this->validateDate($token->data_expiracao)) { $this->session->set_flashdata(['error' => 'Token expirado']); - $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Digitou Token. Porém, Token expirado'); return redirect(base_url() . 'index.php/mine'); } else { if ($token) { if (($cliente = $this->check_credentials($token->email)) == null) { $this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Digitou Token. Porém, os dados de acesso estão incorretos.'); return $this->load->view('conecte/token_digita'); } else { @@ -105,16 +105,16 @@ public function tokenManual() return $this->load->view('conecte/nova_senha', $token); } else { $this->session->set_flashdata('error', 'Dados divergentes ou Token invalido.'); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Digitou Token. Porém, dados divergentes ou Token invalido.'); return redirect(base_url() . 'index.php/mine'); } } } else { $this->session->set_flashdata(['error' => 'Token Invalido']); - $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Digitou Token. Porém, Token invalido.'); return $this->load->view('conecte/token_digita'); } @@ -130,23 +130,23 @@ public function verifyTokenSenha() if ($token == null || $token == "") { $this->session->set_flashdata(['error' => 'Token invalido']); - $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Acesso via link do email (Token). Porém, Token invalido.'); return $this->load->view('conecte/token_digita'); } else { if ($this->validateDate($token->data_expiracao)) { $this->session->set_flashdata(['error' => 'Token expirado']); - $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Acesso via link do email (Token). Porém, Token expirado'); return redirect(base_url() . 'index.php/mine'); } else { if ($token) { if (($cliente = $this->check_credentials($token->email)) == null) { $this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Acesso via link do email (Token). Porém, dados de acesso estão incorretos.'); return $this->load->view('conecte/token_digita'); } else { @@ -154,16 +154,16 @@ public function verifyTokenSenha() return $this->load->view('conecte/nova_senha', $token); } else { $this->session->set_flashdata('error', 'Dados divergentes ou Token invalido.'); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Acesso via link do email (Token). Porém, dados divergentes ou Token invalido.'); return redirect(base_url() . 'index.php/mine'); } } } else { $this->session->set_flashdata(['error' => 'Token Invalido']); - $session_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $token->email ? ['nome' => $token->email] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Acesso via link do email (Token). Porém, Token invalido.'); return $this->load->view('conecte/token_digita'); } @@ -176,8 +176,8 @@ public function gerarTokenResetarSenha() { if (!$cliente = $this->check_credentials($this->input->post('email'))) { $this->session->set_flashdata(['error' => 'Os dados de acesso estão incorretos.']); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Cliente solicitou alteração de senha. Porém falhou ao realizar solicitação!'); redirect($_SERVER['HTTP_REFERER']); } else { @@ -190,15 +190,15 @@ public function gerarTokenResetarSenha() ]; if ($this->resetSenhas_model->add('resets_de_senha', $data) == true) { $this->enviarRecuperarSenha($cliente->idClientes, $cliente->email, "Recuperar Senha", json_encode($data)); - $session_data = ['nome' => $cliente->nomeCliente]; - $this->session->set_userdata($session_data); + $session_mine_data = ['nome' => $cliente->nomeCliente]; + $this->session->set_userdata($session_mine_data); log_info('Cliente solicitou alteração de senha.'); $this->session->set_flashdata('success', 'Solicitação realizada com sucesso!
Um e-mail com as instruções será enviado para ' . $cliente->email); redirect(base_url() . 'index.php/mine'); } else { $this->session->set_flashdata('error', 'Falha ao realizar solicitação!'); - $session_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; - $this->session->set_userdata($session_data); + $session_mine_data = $cliente->nomeCliente ? ['nome' => $cliente->nomeCliente] : ['nome' => 'Inexistente']; + $this->session->set_userdata($session_mine_data); log_info('Cliente solicitou alteração de senha. Porém falhou ao realizar solicitação!'); redirect(current_url()); } @@ -225,9 +225,9 @@ public function login() if ($cliente) { // Verificar credenciais do usuário if (password_verify($password, $cliente->senha)) { - $session_data = ['nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes, 'email' => $cliente->email, 'conectado' => true, 'isCliente' => true]; - $this->session->set_userdata($session_data); - log_info($_SERVER['HTTP_CLIENT_IP'] . 'Efetuou login no sistema'); + $session_mine_data = ['nome' => $cliente->nomeCliente, 'cliente_id' => $cliente->idClientes, 'email' => $cliente->email, 'conectado' => true, 'isCliente' => true]; + $this->session->set_userdata($session_mine_data); + log_info($_SERVER['REMOTE_ADDR'] . ' Efetuou login no sistema'); echo json_encode(['result' => true]); } else { echo json_encode(['result' => false, 'message' => 'Os dados de acesso estão incorretos.']); @@ -602,7 +602,6 @@ public function imprimirCompra($id = null) public function minha_ordem_de_servico($y = null, $when = null) { if (($y != null) && (is_numeric($y))) { - // Do not forget this number -> 44023 // function sending => y = (7653 * ID) + 44023 // function recieving => x = (y - 44023) / 7653 @@ -818,8 +817,7 @@ private function enviarRecuperarSenha($idClientes, $clienteEmail, $assunto, $tok $dados['cliente'] = $this->clientes_model->getById($idClientes); $dados['resets_de_senha'] = json_decode($token); - $emitente = $dados['emitente'][0]->email; - $emitenteNome = $dados['emitente'][0]->nome; + $emitente = $dados['emitente']; $remetente = $clienteEmail; $html = $this->load->view('conecte/emails/clientenovasenha', $dados, true); @@ -827,7 +825,7 @@ private function enviarRecuperarSenha($idClientes, $clienteEmail, $assunto, $tok $this->load->model('email_model'); $headers = [ - 'From' => "\"$emitenteNome\" <$emitente>", + 'From' => "\"$emitente->nome\" <$emitente->email>", 'Subject' => $assunto, 'Return-Path' => '' ]; @@ -857,7 +855,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto) $dados['servicos'] = $this->os_model->getServicos($idOs); $dados['emitente'] = $this->mapos_model->getEmitente(); - $emitente = $dados['emitente'][0]->email; + $emitente = $dados['emitente']; if (!isset($emitente)) { return false; } @@ -869,7 +867,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto) $remetentes = array_unique($remetentes); foreach ($remetentes as $remetente) { $headers = [ - 'From' => $emitente, + 'From' => $emitente->email, 'Subject' => $assunto, 'Return-Path' => '' ]; @@ -895,9 +893,8 @@ private function enviarEmailBoasVindas($id) $dados['emitente'] = $this->mapos_model->getEmitente(); $dados['cliente'] = $this->clientes_model->getById($id); - $emitente = $dados['emitente'][0]->email; - $emitenteNome = $dados['emitente'][0]->nome; - $remetente = $dados['cliente']->email; + $emitente = $dados['emitente']; + $remetente = $dados['cliente']; $assunto = 'Bem-vindo!'; $html = $this->load->view('os/emails/clientenovo', $dados, true); @@ -905,12 +902,12 @@ private function enviarEmailBoasVindas($id) $this->load->model('email_model'); $headers = [ - 'From' => "\"$emitenteNome\" <$emitente>", + 'From' => "\"$emitente->nome\" <$emitente->email>", 'Subject' => $assunto, 'Return-Path' => '' ]; $email = [ - 'to' => $remetente, + 'to' => $remetente->email, 'message' => $html, 'status' => 'pending', 'date' => date('Y-m-d H:i:s'), @@ -930,8 +927,7 @@ private function enviarEmailTecnicoNotificaClienteNovo($id) $dados['emitente'] = $this->mapos_model->getEmitente(); $dados['cliente'] = $this->clientes_model->getById($id); - $emitente = $dados['emitente'][0]->email; - $emitenteNome = $dados['emitente'][0]->nome; + $emitente = $dados['emitente']; $assunto = 'Novo Cliente Cadastrado no Sistema'; $usuarios = []; @@ -941,7 +937,7 @@ private function enviarEmailTecnicoNotificaClienteNovo($id) $dados['usuario'] = $usuario; $html = $this->load->view('os/emails/clientenovonotifica', $dados, true); $headers = [ - 'From' => "\"$emitenteNome\" <$emitente>", + 'From' => "\"$emitente->nome\" <$emitente->email>", 'Subject' => $assunto, 'Return-Path' => '' ]; diff --git a/application/controllers/Os.php b/application/controllers/Os.php index 7261b233..11e96c0b 100644 --- a/application/controllers/Os.php +++ b/application/controllers/Os.php @@ -132,7 +132,8 @@ public function adicionar() $idOs = $id; $os = $this->os_model->getById($idOs); - $emitente = $this->mapos_model->getEmitente()[0]; + $emitente = $this->mapos_model->getEmitente(); + $tecnico = $this->usuarios_model->getById($os->usuarios_id); // Verificar configuração de notificação @@ -244,7 +245,7 @@ public function editar() $idOs = $this->input->post('idOs'); $os = $this->os_model->getById($idOs); - $emitente = $this->mapos_model->getEmitente()[0]; + $emitente = $this->mapos_model->getEmitente(); $tecnico = $this->usuarios_model->getById($os->usuarios_id); // Verificar configuração de notificação @@ -322,6 +323,11 @@ public function visualizar() $this->data['anexos'] = $this->os_model->getAnexos($this->uri->segment(3)); $this->data['anotacoes'] = $this->os_model->getAnotacoes($this->uri->segment(3)); $this->data['editavel'] = $this->os_model->isEditable($this->uri->segment(3)); + $this->data['qrCode'] = $this->os_model->getQrCode( + $this->uri->segment(3), + $this->data['configuration']['pix_key'], + $this->data['emitente'] + ); $this->data['modalGerarPagamento'] = $this->load->view( 'cobrancas/modalGerarPagamento', [ @@ -361,7 +367,7 @@ public function imprimir() $this->data['qrCode'] = $this->os_model->getQrCode( $this->uri->segment(3), $this->data['configuration']['pix_key'], - $this->data['emitente'][0] + $this->data['emitente'] ); $this->load->view('os/imprimirOs', $this->data); @@ -413,14 +419,14 @@ public function enviar_email() $this->data['servicos'] = $this->os_model->getServicos($this->uri->segment(3)); $this->data['emitente'] = $this->mapos_model->getEmitente(); - if (!isset($this->data['emitente'][0]->email)) { + if (!isset($this->data['emitente']->email)) { $this->session->set_flashdata('error', 'Efetue o cadastro dos dados de emitente'); redirect(site_url('os')); } $idOs = $this->uri->segment(3); - $emitente = $this->data['emitente'][0]; + $emitente = $this->data['emitente']; $tecnico = $this->usuarios_model->getById($this->data['result']->usuarios_id); // Verificar configuração de notificação @@ -516,7 +522,7 @@ public function excluir() } } - if ($os->idCobranca != null) { + if (isset($os->idCobranca) != null) { if ($os->status == "canceled") { $this->os_model->delete('cobrancas', 'os_id', $id); } else { @@ -633,6 +639,7 @@ public function adicionarProduto() $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idOs', $id); $this->db->update('os'); @@ -673,6 +680,7 @@ public function excluirProduto() $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idOs', $idOs); $this->db->update('os'); @@ -710,6 +718,7 @@ public function adicionarServico() $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idOs', $this->input->post('idOsServico')); $this->db->update('os'); @@ -734,6 +743,7 @@ public function excluirServico() log_info('Removeu serviço de uma OS. ID (OS): ' . $idOs); $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idOs', $idOs); $this->db->update('os'); echo json_encode(['result' => true]); @@ -788,7 +798,6 @@ public function anexar() $upload_data = $this->upload->data(); if ($upload_data['is_image'] == 1) { - // set the resize config $resize_conf = [ @@ -872,6 +881,7 @@ public function adicionarDesconto() } else { $idOs = $this->input->post('idOs'); $data = [ + 'tipo_desconto' => $this->input->post('tipoDesconto'), 'desconto' => $this->input->post('desconto'), 'valor_desconto' => $this->input->post('resultado') ]; @@ -928,6 +938,7 @@ public function faturar() $data = [ 'descricao' => set_value('descricao'), 'valor' => getAmount($this->input->post('valor')), + 'tipo_desconto' => ($this->input->post('tipoDesconto')), 'desconto' => $os->desconto, 'valor_desconto' => $os->valor_desconto, 'clientes_id' => $this->input->post('clientes_id'), @@ -938,7 +949,7 @@ public function faturar() 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo'), 'observacoes' => set_value('observacoes'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; $editavel = $this->os_model->isEditable($this->input->post('idOs')); @@ -990,9 +1001,8 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto) $dados['produtos'] = $this->os_model->getProdutos($idOs); $dados['servicos'] = $this->os_model->getServicos($idOs); $dados['emitente'] = $this->mapos_model->getEmitente(); - - $emitente = $dados['emitente'][0]->email; - if (!isset($emitente)) { + $emitente = $dados['emitente']; + if (!isset($emitente->email)) { return false; } @@ -1002,7 +1012,7 @@ private function enviarOsPorEmail($idOs, $remetentes, $assunto) $remetentes = array_unique($remetentes); foreach ($remetentes as $remetente) { - $headers = ['From' => $emitente, 'Subject' => $assunto, 'Return-Path' => '']; + $headers = ['From' => $emitente->email, 'Subject' => $assunto, 'Return-Path' => '']; $email = [ 'to' => $remetente, 'message' => $html, diff --git a/application/controllers/Permissoes.php b/application/controllers/Permissoes.php index 43bbb82c..07b688f6 100644 --- a/application/controllers/Permissoes.php +++ b/application/controllers/Permissoes.php @@ -4,7 +4,6 @@ class Permissoes extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Produtos.php b/application/controllers/Produtos.php index da29426d..6af0a57b 100644 --- a/application/controllers/Produtos.php +++ b/application/controllers/Produtos.php @@ -4,7 +4,6 @@ class Produtos extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Relatorios.php b/application/controllers/Relatorios.php index 10339be7..0875614b 100644 --- a/application/controllers/Relatorios.php +++ b/application/controllers/Relatorios.php @@ -10,7 +10,6 @@ class Relatorios extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -95,23 +94,33 @@ public function clientesRapid() 'Documento' => 'string', 'Telefone' => 'string', 'Celular' => 'string', + 'Contato' => 'string', 'E-mail' => 'string', + 'Fornecedor' => 'string', 'Data de Cadastro' => 'YYYY-MM-DD', 'Rua' => 'string', 'Número' => 'string', + 'Complemento' => 'string', 'Bairro' => 'string', 'Cidade' => 'string', 'Estado' => 'string', 'CEP' => 'string', - 'Contato' => 'string', - 'Complemento' => 'string', - 'Fornecedor' => 'string', ]; $writer = new XLSXWriter(); $writer->writeSheetHeader('Sheet1', $cabecalho); foreach ($clientes as $cliente) { + if ($cliente["fornecedor"]) { + $cliente["fornecedor"] = "sim"; + } else { + $cliente["fornecedor"] = "não"; + } + if ($cliente["pessoa_fisica"]) { + $cliente["pessoa_fisica"] = "sim"; + } else { + $cliente["pessoa_fisica"] = "não"; + } $writer->writeSheetRow('Sheet1', $cliente); } @@ -410,9 +419,13 @@ public function osRapid() $isXls ? - $totalValorDesconto += $o['valor_desconto'] ? floatval($o['valor_desconto']) : floatval($o['total_servico']) + floatval($o['total_produto']) + $totalValorDesconto += $o['valor_desconto'] + ? floatval($o['valor_desconto']) + : floatval($o['total_servico']) + floatval($o['total_produto']) : - $totalValorDesconto += $o->valor_desconto ? floatval($o->valor_desconto) : floatval($o->total_produto) + floatval($o->total_servico); + $totalValorDesconto += $o->valor_desconto + ? floatval($o->valor_desconto) + : floatval($o->total_produto) + floatval($o->total_servico); } if ($isXls) { @@ -431,6 +444,7 @@ public function osRapid() 'valorSubTotal' => $subTotal ? $subTotal : 0, 'valorTotal' => $total ? $total : 0, 'total_geral_desconto' => $item['desconto'] ?: 0, + 'tipo_desconto' => $item['tipo_desconto'] ?: "-", ]; }, $os); @@ -444,7 +458,8 @@ public function osRapid() 'Total Serviços' => 'price', 'Total' => 'price', 'Total Com Desconto' => 'price', - 'Desconto %' => 'number', + 'Desconto' => 'number', + 'Tipo Desconto' => 'string', ]; $writer = new XLSXWriter(); @@ -541,6 +556,7 @@ public function osCustom() 'valorSubTotal' => $subTotal ? $subTotal : 0, 'valorTotal' => $total ? $total : 0, 'valorSubTotal' => $subTotal ? $subTotal : 0, + 'tipo_desconto' => $item['tipo_desconto'] ?: "-", ]; }, $os); @@ -554,7 +570,8 @@ public function osCustom() 'Total Serviços' => 'price', 'Total' => 'price', 'Total Com Desconto' => 'price', - 'Desconto %' => 'number', + 'Desconto' => 'number', + 'Tipo Desconto' => 'string', ]; $writer = new XLSXWriter(); @@ -638,6 +655,7 @@ public function financeiroRapid() 'valor' => $item['valor'], 'desconto' => $item['desconto'], 'valor_desconto' => $item['valor_desconto'], + 'tipo_desconto' => $item['tipo_desconto'], 'data_vencimento' => $item['data_vencimento'], 'data_pagamento' => $item['data_pagamento'], 'baixado' => $item['baixado'], @@ -651,7 +669,8 @@ public function financeiroRapid() 'ID Lançamentos' => 'integer', 'Descricao' => 'string', 'Valor' => 'price', - 'Desconto %' => 'price', + 'Desconto' => 'price', + 'Tipo Desconto' => 'string', 'Valor Com Desc.' => 'price', 'Data Vencimento' => 'YYYY-MM-DD', 'Data Pagamento' => 'YYYY-MM-DD', @@ -708,6 +727,7 @@ public function financeiroCustom() 'valor' => $item['valor'], 'desconto' => $item['desconto'], 'valor_desconto' => $item['valor_desconto'], + 'tipo_desconto' => $item['tipo_desconto'], 'data_vencimento' => $item['data_vencimento'], 'data_pagamento' => $item['data_pagamento'], 'baixado' => $item['baixado'], @@ -721,7 +741,8 @@ public function financeiroCustom() 'ID Lançamentos' => 'integer', 'Descricao' => 'string', 'Valor' => 'price', - 'Desconto %' => 'price', + 'Desconto' => 'price', + 'Tipo Desconto' => 'string', 'Valor Com Desc.' => 'price', 'Data Vencimento' => 'YYYY-MM-DD', 'Data Pagamento' => 'YYYY-MM-DD', @@ -804,6 +825,7 @@ public function vendasRapid() 'total' => $item['valorTotal'] ?: 0, 'totalDesconto' => $item['valor_desconto'] ?: 0, 'desconto' => $item['desconto'] ?: 0, + 'tipo_desconto' => $item['tipo_desconto'] ?: '-', ]; }, $vendas); @@ -815,6 +837,7 @@ public function vendasRapid() 'Total' => 'price', 'Total Com Desconto' => 'price', 'Desconto' => 'number', + 'Tipo Desconto' => 'string', ]; $writer = new XLSXWriter(); @@ -898,6 +921,7 @@ public function vendasCustom() 'total' => $item['valorTotal'] ?: 0, 'totalDesconto' => $item['valor_desconto'] ?: 0, 'desconto' => $item['desconto'] ?: 0, + 'tipo_desconto' => $item['tipo_desconto'] ?: '-', ]; }, $vendas); diff --git a/application/controllers/Servicos.php b/application/controllers/Servicos.php index b8dee916..7ef38024 100644 --- a/application/controllers/Servicos.php +++ b/application/controllers/Servicos.php @@ -4,7 +4,6 @@ class Servicos extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Usuarios.php b/application/controllers/Usuarios.php index 1d7b6662..ae922a40 100644 --- a/application/controllers/Usuarios.php +++ b/application/controllers/Usuarios.php @@ -4,7 +4,6 @@ class Usuarios extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/controllers/Vendas.php b/application/controllers/Vendas.php index e38d2f86..20cfb540 100644 --- a/application/controllers/Vendas.php +++ b/application/controllers/Vendas.php @@ -4,7 +4,6 @@ class Vendas extends MY_Controller { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -156,6 +155,11 @@ public function visualizar() $this->data['result'] = $this->vendas_model->getById($this->uri->segment(3)); $this->data['produtos'] = $this->vendas_model->getProdutos($this->uri->segment(3)); $this->data['emitente'] = $this->mapos_model->getEmitente(); + $this->data['qrCode'] = $this->vendas_model->getQrCode( + $this->uri->segment(3), + $this->data['configuration']['pix_key'], + $this->data['emitente'] + ); $this->data['modalGerarPagamento'] = $this->load->view( 'cobrancas/modalGerarPagamento', [ @@ -191,7 +195,7 @@ public function imprimir() $this->data['qrCode'] = $this->vendas_model->getQrCode( $this->uri->segment(3), $this->data['configuration']['pix_key'], - $this->data['emitente'][0] + $this->data['emitente'] ); $this->load->view('vendas/imprimirVenda', $this->data); @@ -244,7 +248,7 @@ public function excluir() } } - if ($venda->idCobranca != null) { + if (isset($venda->idCobranca) != null) { if ($venda->status == "canceled") { $this->vendas_model->delete('cobrancas', 'vendas_id', $id); } else { @@ -333,6 +337,7 @@ public function adicionarProduto() $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idVendas', $this->input->post('idVendasProduto')); $this->db->update('vendas'); @@ -373,6 +378,7 @@ public function excluirProduto() $this->db->set('desconto', 0.00); $this->db->set('valor_desconto', 0.00); + $this->db->set('tipo_desconto', null); $this->db->where('idVendas', $this->input->post('idVendas')); $this->db->update('vendas'); @@ -394,6 +400,7 @@ public function adicionarDesconto() $idVendas = $this->input->post('idVendas'); $data = [ 'desconto' => $this->input->post('desconto'), + 'tipo_desconto' => $this->input->post('tipoDesconto'), 'valor_desconto' => $this->input->post('resultado') ]; $editavel = $this->vendas_model->isEditable($idVendas); @@ -457,6 +464,7 @@ public function faturar() 'descricao' => set_value('descricao'), 'valor' => $this->input->post('valor'), 'desconto' => $vendas->desconto, + 'tipo_desconto' => $vendas->tipo_desconto, 'valor_desconto' => $vendas->valor_desconto, 'clientes_id' => $this->input->post('clientes_id'), 'data_vencimento' => $vencimento, @@ -465,7 +473,7 @@ public function faturar() 'cliente_fornecedor' => set_value('cliente'), 'forma_pgto' => $this->input->post('formaPgto'), 'tipo' => $this->input->post('tipo'), - 'usuarios_id' => $this->session->userdata('id'), + 'usuarios_id' => $this->session->userdata('id_admin'), ]; if ($this->vendas_model->add('lancamentos', $data) == true) { diff --git a/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php b/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php index e7b5d0f1..16bf1f91 100644 --- a/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php +++ b/application/database/migrations/20220320173741_add_desconto_lancamentos_os_vendas.php @@ -4,23 +4,33 @@ class Migration_add_desconto_lancamentos_os_vendas extends CI_Migration { public function up() { - $this->db->query("ALTER TABLE `lancamentos` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("ALTER TABLE `lancamentos` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("ALTER TABLE `os` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("ALTER TABLE `os` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("ALTER TABLE `vendas` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("ALTER TABLE `vendas` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0;"); - $this->db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (14, 'email_automatico', 1);"); + $this->db->query("ALTER TABLE `lancamentos` CHANGE `valor` `valor` DECIMAL(10,2) NOT NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `lancamentos` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `lancamentos` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `os` CHANGE `valorTotal` `valorTotal` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `os` ADD `desconto` DECIMAL(10, 2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `os` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `vendas` CHANGE `valorTotal` `valorTotal` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `vendas` CHANGE `desconto` `desconto` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `vendas` ADD `valor_desconto` DECIMAL(10, 2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `cobrancas` CHANGE `total` `total` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `produtos_os` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `produtos_os` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `servicos_os` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `servicos_os` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `itens_de_vendas` CHANGE `subTotal` `subTotal` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("ALTER TABLE `itens_de_vendas` CHANGE `preco` `preco` DECIMAL(10,2) NULL DEFAULT 0"); + $this->db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (14, 'email_automatico', 1)"); } public function down() { - $this->db->query("ALTER TABLE `lancamentos` DROP `desconto`;"); - $this->db->query("ALTER TABLE `lancamentos` DROP `valor_desconto`;"); - $this->db->query("ALTER TABLE `os` DROP `desconto`;"); - $this->db->query("ALTER TABLE `os` DROP `valor_desconto`;"); - $this->db->query("ALTER TABLE `vendas` DROP `desconto`;"); - $this->db->query("ALTER TABLE `vendas` DROP `valor_desconto`;"); + $this->db->query("ALTER TABLE `lancamentos` DROP `desconto`"); + $this->db->query("ALTER TABLE `lancamentos` DROP `valor_desconto`"); + $this->db->query("ALTER TABLE `os` DROP `desconto`"); + $this->db->query("ALTER TABLE `os` DROP `valor_desconto`"); + $this->db->query("ALTER TABLE `vendas` DROP `desconto`"); + $this->db->query("ALTER TABLE `vendas` DROP `valor_desconto`"); $this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 14"); } } diff --git a/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php b/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php new file mode 100644 index 00000000..a24d4164 --- /dev/null +++ b/application/database/migrations/20221112173741_add_tipo_desconto_os_vendas.php @@ -0,0 +1,18 @@ +db->query("ALTER TABLE `os` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL"); + $this->db->query("ALTER TABLE `vendas` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL"); + $this->db->query("ALTER TABLE `lancamentos` ADD `tipo_desconto` VARCHAR(8) NULL DEFAULT NULL"); + } + + public function down() + { + $this->db->query("ALTER TABLE `os` DROP `tipo_desconto`"); + $this->db->query("ALTER TABLE `vendas` DROP `tipo_desconto`"); + $this->db->query("ALTER TABLE `lancamentos` DROP `tipo_desconto`"); + } +} diff --git a/application/database/migrations/20221119210810_add_asaas_id_clientes.php b/application/database/migrations/20221119210810_add_asaas_id_clientes.php new file mode 100644 index 00000000..e08a34e2 --- /dev/null +++ b/application/database/migrations/20221119210810_add_asaas_id_clientes.php @@ -0,0 +1,16 @@ +db->query("ALTER TABLE `clientes` ADD `asaas_id` VARCHAR(255) NULL DEFAULT NULL"); + $this->db->query("ALTER TABLE `usuarios` DROP `asaas_id`"); + } + + public function down() + { + $this->db->query("ALTER TABLE `clientes` DROP `asaas_id`"); + $this->db->query("ALTER TABLE `usuarios` DROP `asaas_id`"); + } +} diff --git a/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php b/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php new file mode 100644 index 00000000..b7084a97 --- /dev/null +++ b/application/database/migrations/20221130180810_add_config_control_print_2ways_os.php @@ -0,0 +1,14 @@ +db->query("INSERT INTO `configuracoes` (`idConfig`, `config`, `valor`) VALUES (15, 'control_2vias', 0);"); + } + + public function down() + { + $this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 15"); + } +} diff --git a/application/database/migrations/20230428110810_alter_charset_configuracoes.php b/application/database/migrations/20230428110810_alter_charset_configuracoes.php new file mode 100644 index 00000000..09ffbe0d --- /dev/null +++ b/application/database/migrations/20230428110810_alter_charset_configuracoes.php @@ -0,0 +1,15 @@ +db->query("ALTER TABLE `configuracoes` CHANGE `config` `config` VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;"); + $this->db->query("UPDATE `configuracoes` SET `valor` = 'Prezado(a), {CLIENTE_NOME} a OS de nº {NUMERO_OS} teve o status alterado para: {STATUS_OS} segue a descrição {DESCRI_PRODUTOS} com valor total de {VALOR_OS}! Para mais informações entre em contato conosco. Atenciosamente, {EMITENTE} {TELEFONE_EMITENTE}.' WHERE `configuracoes`.`idConfig` = 7"); + } + + public function down() + { + $this->db->query("DELETE FROM `configuracoes` WHERE `configuracoes`.`idConfig` = 7"); + } +} diff --git a/application/helpers/audit_helper.php b/application/helpers/audit_helper.php index c4e49263..bd3bcc0a 100644 --- a/application/helpers/audit_helper.php +++ b/application/helpers/audit_helper.php @@ -7,7 +7,7 @@ function log_info($task) $ci->load->model('Audit_model'); $data = [ - 'usuario' => $ci->session->userdata('nome'), + 'usuario' => $ci->session->userdata('nome_admin'), 'ip' => $ci->input->ip_address(), 'tarefa' => $task, 'data' => date('Y-m-d'), diff --git a/application/libraries/Gateways/Asaas.php b/application/libraries/Gateways/Asaas.php index 057be0e9..180d693f 100644 --- a/application/libraries/Gateways/Asaas.php +++ b/application/libraries/Gateways/Asaas.php @@ -167,6 +167,10 @@ protected function gerarCobrancaBoleto($id, $tipo) $desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getById($id) : $this->ci->vendas_model->getById($id)]; + + $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS + ? $this->ci->Os_model->getById($id) + : $this->ci->vendas_model->getById($id)]; $totalProdutos = array_reduce( $produtos, @@ -182,6 +186,13 @@ function ($total, $item) { }, 0 ); + $tipoDesconto = array_reduce( + $tipo_desconto, + function ($total, $item) { + return $item->tipo_desconto; + }, + 0 + ); $totalDesconto = array_reduce( $desconto, function ($total, $item) { @@ -208,7 +219,7 @@ function ($total, $item) { 'customer' => $this->criarOuRetornarClienteAsaasId($entity->clientes_id), 'billingType' => 'BOLETO', 'dueDate' => $expirationDate, - 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto), + 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto), 'description' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id", 'externalReference' => $id, 'postalService' => false, @@ -228,7 +239,7 @@ function ($total, $item) { 'expire_at' => $result->dueDate, 'charge_id' => $result->id, 'status' => $result->status, - 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)), + 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)), 'payment' => $result->billingType, 'clientes_id' => $entity->idClientes, 'payment_method' => 'boleto', @@ -261,6 +272,9 @@ protected function gerarCobrancaLink($id, $tipo) $servicos = $tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getServicos($id) : []; + $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS + ? $this->ci->Os_model->getById($id) + : $this->ci->vendas_model->getById($id)]; $desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getById($id) @@ -281,7 +295,13 @@ function ($total, $item) { }, 0 ); - + $tipoDesconto = array_reduce( + $tipo_desconto, + function ($total, $item) { + return $item->tipo_desconto; + }, + 0 + ); $totalDesconto = array_reduce( $desconto, function ($total, $item) { @@ -308,7 +328,7 @@ function ($total, $item) { 'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id", 'description' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id", 'endDate' => $expirationDate, - 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto), + 'value' => $this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto), 'billingType' => 'UNDEFINED', 'chargeType' => 'DETACHED', 'dueDateLimitDays' => preg_replace('/[^0-9]/', '', $this->asaasConfig['boleto_expiration']), @@ -326,7 +346,7 @@ function ($total, $item) { 'expire_at' => $result->endDate, 'charge_id' => $result->id, 'status' => 'PENDING', - 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)), + 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)), 'clientes_id' => $entity->idClientes, 'payment_method' => 'link', 'payment_gateway' => 'Asaas', @@ -352,9 +372,17 @@ function ($total, $item) { return $data; } - private function valorTotal($produtosValor, $servicosValor, $desconto) + private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto) { - return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100); + if ($tipo_desconto == "porcento") { + $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100; + } elseif ($tipo_desconto == "real") { + $def_desconto = $desconto; + } else { + $def_desconto = 0; + } + + return ($produtosValor + $servicosValor) - $def_desconto; } private function criarOuRetornarClienteAsaasId($clienteId) @@ -379,8 +407,12 @@ private function criarOuRetornarClienteAsaasId($clienteId) 'addressNumber' => $cliente['numero'], 'complement' => $cliente['complemento'], 'province' => $cliente['bairro'], + 'city' => $cliente['cidade'], + 'state' => $cliente['estado'], + 'country' => 'Brasil', 'externalReference' => $clienteId, 'notificationDisabled' => $this->asaasConfig['notify'] === false, + 'observations' => '', 'groupName' => 'mapos', ]); diff --git a/application/libraries/Gateways/GerencianetSdk.php b/application/libraries/Gateways/GerencianetSdk.php index e07a537b..b9f0f504 100644 --- a/application/libraries/Gateways/GerencianetSdk.php +++ b/application/libraries/Gateways/GerencianetSdk.php @@ -143,9 +143,17 @@ public function confirmarPagamento($id) return $this->atualizarDados($id); } - private function valorTotal($produtosValor, $servicosValor, $desconto) + private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto) { - return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100); + if ($tipo_desconto == "porcento") { + $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100; + } elseif ($tipo_desconto == "real") { + $def_desconto = $desconto; + } else { + $def_desconto = 0; + } + + return ($produtosValor + $servicosValor) - $def_desconto; } protected function gerarCobrancaBoleto($id, $tipo) @@ -161,6 +169,10 @@ protected function gerarCobrancaBoleto($id, $tipo) $desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getById($id) : $this->ci->vendas_model->getById($id)]; + + $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS + ? $this->ci->Os_model->getById($id) + : $this->ci->vendas_model->getById($id)]; $totalProdutos = array_reduce( $produtos, @@ -184,6 +196,14 @@ function ($total, $item) { 0 ); + $tipoDesconto = array_reduce( + $tipo_desconto, + function ($total, $item) { + return $item->tipo_desconto; + }, + 0 + ); + if (empty($entity)) { throw new \Exception('OS ou venda não existe!'); } @@ -234,7 +254,7 @@ function ($total, $item) { [ 'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id", 'amount' => 1, - 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)) + 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)) ] ], 'metadata' => [ @@ -261,7 +281,7 @@ function ($total, $item) { 'expire_at' => $result['data']['expire_at'], 'charge_id' => $result['data']['charge_id'], 'status' => $result['data']['status'], - 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)), + 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)), 'payment' => $result['data']['payment'], 'clientes_id' => $entity->idClientes, 'payment_method' => 'boleto', @@ -296,6 +316,10 @@ protected function gerarCobrancaLink($id, $tipo) $desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getById($id) : $this->ci->vendas_model->getById($id)]; + + $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS + ? $this->ci->Os_model->getById($id) + : $this->ci->vendas_model->getById($id)]; $totalProdutos = array_reduce( $produtos, @@ -311,6 +335,15 @@ function ($total, $item) { }, 0 ); + + $tipoDesconto = array_reduce( + $tipo_desconto, + function ($total, $item) { + return $item->tipo_desconto; + }, + 0 + ); + $totalDesconto = array_reduce( $desconto, function ($total, $item) { @@ -339,7 +372,7 @@ function ($total, $item) { [ 'name' => $tipo === PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id", 'amount' => 1, - 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)) + 'value' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)) ] ], ] @@ -371,7 +404,7 @@ function ($total, $item) { 'expire_at' => $result['data']['expire_at'], 'charge_id' => $result['data']['charge_id'], 'status' => $result['data']['status'], - 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)), + 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)), 'clientes_id' => $entity->idClientes, 'payment_method' => 'link', 'payment_gateway' => 'GerencianetSdk', diff --git a/application/libraries/Gateways/MercadoPago.php b/application/libraries/Gateways/MercadoPago.php index 30a89cd9..625fc7c5 100644 --- a/application/libraries/Gateways/MercadoPago.php +++ b/application/libraries/Gateways/MercadoPago.php @@ -172,6 +172,9 @@ protected function gerarCobrancaBoleto($id, $tipo) $desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS ? $this->ci->Os_model->getById($id) : $this->ci->vendas_model->getById($id)]; + $tipo_desconto = [$tipo === PaymentGateway::PAYMENT_TYPE_OS + ? $this->ci->Os_model->getById($id) + : $this->ci->vendas_model->getById($id)]; $totalProdutos = array_reduce( $produtos, @@ -187,6 +190,13 @@ function ($total, $item) { }, 0 ); + $tipoDesconto = array_reduce( + $tipo_desconto, + function ($total, $item) { + return $item->tipo_desconto; + }, + 0 + ); $totalDesconto = array_reduce( $desconto, function ($total, $item) { @@ -213,7 +223,7 @@ function ($total, $item) { $expirationDate = ($expirationDate->format(DateTime::RFC3339_EXTENDED)); $payment = new Payment(); - $payment->transaction_amount = floatval($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)); + $payment->transaction_amount = floatval($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)); $payment->description = PaymentGateway::PAYMENT_TYPE_OS ? "OS #$id" : "Venda #$id"; $payment->payment_method_id = "bolbradesco"; $payment->notification_url = "http://mapos.com.br/"; @@ -248,7 +258,7 @@ function ($total, $item) { 'expire_at' => $payment->date_of_expiration, 'charge_id' => $payment->id, 'status' => $payment->status, - 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto)), + 'total' => getMoneyAsCents($this->valorTotal($totalProdutos, $totalServicos, $totalDesconto, $tipoDesconto)), 'clientes_id' => $entity->idClientes, 'payment_method' => 'boleto', 'payment_gateway' => 'MercadoPago', @@ -275,8 +285,16 @@ protected function gerarCobrancaLink($id, $tipo) throw new Exception('MercadoPago não suporta gerar link pela API, somente pelo painel!'); } - private function valorTotal($produtosValor, $servicosValor, $desconto) + private function valorTotal($produtosValor, $servicosValor, $desconto, $tipo_desconto) { - return (($produtosValor + $servicosValor) - $desconto * ($produtosValor + $servicosValor) / 100); + if ($tipo_desconto == "porcento") { + $def_desconto = $desconto * ($produtosValor + $servicosValor) / 100; + } elseif ($tipo_desconto == "real") { + $def_desconto = $desconto; + } else { + $def_desconto = 0; + } + + return ($produtosValor + $servicosValor) - $def_desconto; } } diff --git a/application/libraries/Sqltoci.php b/application/libraries/Sqltoci.php index d82b4f26..20e652d3 100644 --- a/application/libraries/Sqltoci.php +++ b/application/libraries/Sqltoci.php @@ -142,7 +142,6 @@ public function generate($tables = null) ## if write file, check if we can if ($this->write_file) { - /* make subdir */ $path = $this->path . '/' . $this->file_name; @@ -235,8 +234,8 @@ public function generate($tables = null) if ($column_default == 'CURRENT_TIMESTAMP') { $up .= PHP_EOL."\t\t\t"."'`$column[Field]` $column[Type] " . ($column['Null'] == 'NO' ? 'NOT NULL' : 'NULL') . ( - # if its timestamp column, don't '' around default value .... crap way, but should work for now - $column['Default'] ? ' DEFAULT ' . ($column['Type'] == 'timestamp' ? $column['Default'] : '' . $column['Default'] . '') : '' + # if its timestamp column, don't '' around default value .... crap way, but should work for now + $column['Default'] ? ' DEFAULT ' . ($column['Type'] == 'timestamp' ? $column['Default'] : '' . $column['Default'] . '') : '' ) . " $column[Extra]',"; } else { diff --git a/application/models/Arquivos_model.php b/application/models/Arquivos_model.php index c68492a7..6239f5b0 100644 --- a/application/models/Arquivos_model.php +++ b/application/models/Arquivos_model.php @@ -4,7 +4,6 @@ class Arquivos_model extends CI_Model { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br diff --git a/application/models/Clientes_model.php b/application/models/Clientes_model.php index 899d0f81..bec9c5e8 100644 --- a/application/models/Clientes_model.php +++ b/application/models/Clientes_model.php @@ -1,7 +1,6 @@ db->select(" - SUM(case when tipo = 'despesa' then valor end) as despesas, - SUM(case when tipo = 'receita' then IF(valor_desconto, `valor_desconto`, `valor`) end) as receitas + SUM(case when tipo = 'despesa' then valor - desconto end) as despesas, + SUM(case when tipo = 'receita' then (IF(valor_desconto = 0, valor, valor_desconto)) end) as receitas "); $this->db->from('lancamentos'); @@ -50,6 +49,19 @@ public function getTotals($where = '') return (array) $this->db->get()->row(); } + public function getEstatisticasFinanceiro2() + { + $sql = "SELECT SUM(CASE WHEN baixado = 1 AND tipo = 'receita' THEN IF(valor_desconto = 0, valor, valor_desconto) END) as total_receita, + SUM(CASE WHEN baixado = 1 AND tipo = 'despesa' THEN valor - desconto END) as total_despesa, + SUM(CASE WHEN baixado = 1 THEN desconto END) as total_valor_desconto, + SUM(CASE WHEN baixado = 0 THEN desconto END) as total_valor_desconto_pendente, + SUM(CASE WHEN tipo = 'receita' THEN valor END) as total_receita_sem_desconto, + SUM(CASE WHEN tipo = 'despesa' THEN valor END) as total_despesa_sem_desconto, + SUM(CASE WHEN baixado = 0 AND tipo = 'receita' THEN valor_desconto END) as total_receita_pendente, + SUM(CASE WHEN baixado = 0 AND tipo = 'despesa' THEN valor_desconto END) as total_despesa_pendente FROM lancamentos"; + + return $this->db->query($sql)->row(); + } public function getById($id) { @@ -68,6 +80,16 @@ public function add($table, $data) return false; } + public function add1($table, $data1) + { + $this->db->insert($table, $data1); + if ($this->db->affected_rows() == '1') { + return true; + } + + return false; + } + public function edit($table, $data, $fieldID, $ID) { $this->db->where($fieldID, $ID); diff --git a/application/models/Garantias_model.php b/application/models/Garantias_model.php index a6c7c025..e83ae143 100644 --- a/application/models/Garantias_model.php +++ b/application/models/Garantias_model.php @@ -4,7 +4,6 @@ class Garantias_model extends CI_Model { - /** * author: Wilmerson Felipe * email: will.phelipe@gmail.com @@ -44,6 +43,19 @@ public function getById($id) return $this->db->get()->row(); } + public function getByIdOsGarantia($id) + { + $this->db->select('garantias.*, clientes.nomeCliente, os.idOS as idOs, os.dataFinal as osDataFinal, + usuarios.telefone as tecnicoTelefone, usuarios.email as tecnicoEmail, usuarios.nome as tecnicoName'); + $this->db->from('garantias'); + $this->db->join('os', 'os.garantias_id = garantias.idGarantias'); + $this->db->join('clientes', 'os.clientes_id = clientes.idClientes'); + $this->db->join('usuarios', 'os.usuarios_id = usuarios.idUsuarios'); + $this->db->where('garantias.idGarantias', $id); + $this->db->limit(1); + return $this->db->get()->row(); + } + public function add($table, $data, $returnId = false) { diff --git a/application/models/Mapos_model.php b/application/models/Mapos_model.php index 1a49cb2d..b5b87972 100644 --- a/application/models/Mapos_model.php +++ b/application/models/Mapos_model.php @@ -1,7 +1,6 @@ db->query($sql)->row(); + if ($this->db->query($sql) !== false) { + return $this->db->query($sql)->row(); + } + return false; } public function getEstatisticasFinanceiroMes($year) @@ -203,35 +204,37 @@ public function getEstatisticasFinanceiroMes($year) $sql = " SELECT - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JAN_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JAN_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 1) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JAN_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_FEV_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_FEV_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 2) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_FEV_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_MAR_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_MAR_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 3) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_MAR_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_ABR_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_ABR_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 4) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_ABR_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_MAI_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_MAI_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 5) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_MAI_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JUN_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JUN_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 6) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JUN_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_JUL_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_JUL_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 7) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_JUL_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_AGO_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_AGO_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 8) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_AGO_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_SET_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_SET_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 9) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_SET_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_OUT_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_OUT_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 10) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_OUT_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_NOV_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_NOV_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 11) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_NOV_DES, - SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_DEZ_REC, + SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_DEZ_REC, SUM(CASE WHEN (EXTRACT(MONTH FROM data_pagamento) = 12) AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_DEZ_DES FROM lancamentos WHERE EXTRACT(YEAR FROM data_pagamento) = ? "; - - return $this->db->query($sql, [intval($numbersOnly)])->row(); + if ($this->db->query($sql, [intval($numbersOnly)]) !== false) { + return $this->db->query($sql, [intval($numbersOnly)])->row(); + } + return false; } public function getEstatisticasFinanceiroDia($year) @@ -242,12 +245,15 @@ public function getEstatisticasFinanceiroDia($year) } $sql = " SELECT - SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'receita' THEN valor - ((desconto * valor) / 100) END) AS VALOR_" . date('m') . "_REC, + SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'receita' THEN valor - (IF(tipo_desconto = 'real', desconto, (desconto * valor) / 100)) END) AS VALOR_" . date('m') . "_REC, SUM(CASE WHEN (EXTRACT(DAY FROM data_pagamento) = " . date('d') . ") AND EXTRACT(MONTH FROM data_pagamento) = " . date('m') . " AND baixado = 1 AND tipo = 'despesa' THEN valor END) AS VALOR_" . date('m') . "_DES FROM lancamentos WHERE EXTRACT(YEAR FROM data_pagamento) = ? "; - return $this->db->query($sql, [intval($numbersOnly)])->row(); + if ($this->db->query($sql, [intval($numbersOnly)]) !== false) { + return $this->db->query($sql, [intval($numbersOnly)])->row(); + } + return false; } public function getEstatisticasFinanceiroMesInadimplencia($year) @@ -287,13 +293,15 @@ public function getEstatisticasFinanceiroMesInadimplencia($year) FROM lancamentos WHERE EXTRACT(YEAR FROM data_pagamento) = ? "; - - return $this->db->query($sql, [intval($numbersOnly)])->row(); + if ($this->db->query($sql, [intval($numbersOnly)]) !== false) { + return $this->db->query($sql, [intval($numbersOnly)])->row(); + } + return false; } public function getEmitente() { - return $this->db->get('emitente')->result(); + return $this->db->get('emitente')->row(); } public function addEmitente($nome, $cnpj, $ie, $cep, $logradouro, $numero, $bairro, $cidade, $uf, $telefone, $email, $logo) diff --git a/application/models/Os_model.php b/application/models/Os_model.php index 5e21370f..135b513a 100644 --- a/application/models/Os_model.php +++ b/application/models/Os_model.php @@ -4,7 +4,6 @@ class Os_model extends CI_Model { - /** * author: Ramon Silva * email: silva018-mg@yahoo.com.br @@ -94,7 +93,7 @@ public function getOs($table, $fields, $where = [], $perpage = 0, $start = 0, $o public function getById($id) { - $this->db->select('os.*, clientes.*, clientes.celular as celular_cliente, clientes.documento as documento_cliente, garantias.refGarantia, usuarios.telefone as telefone_usuario, usuarios.email as email_usuario, usuarios.nome'); + $this->db->select('os.*, clientes.*, clientes.celular as celular_cliente, garantias.refGarantia, usuarios.telefone as telefone_usuario, usuarios.email as email_usuario, usuarios.nome'); $this->db->from('os'); $this->db->join('clientes', 'clientes.idClientes = os.clientes_id'); $this->db->join('usuarios', 'usuarios.idUsuarios = os.usuarios_id'); @@ -364,14 +363,12 @@ public function getQrCode($id, $pixKey, $emitente) } $pix = (new StaticPayload()) - ->applyValidCharacters() - ->applyUppercase() - ->setPixKey(getPixKeyType($pixKey), $pixKey) - ->setMerchantName($emitente->nome, true) - ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) - ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true); + ->setDescription(sprintf("%s OS %s", substr($emitente->nome, 0, 18), $id), true) + ->setPixKey(getPixKeyType($pixKey), $pixKey) + ->setMerchantName($emitente->nome) + ->setMerchantCity($emitente->cidade); return $pix->getQRCode(); } diff --git a/application/models/Permissoes_model.php b/application/models/Permissoes_model.php index 61b3e013..b88013cb 100644 --- a/application/models/Permissoes_model.php +++ b/application/models/Permissoes_model.php @@ -1,8 +1,6 @@ db->escape($tipo); } - $query = "SELECT * FROM clientes WHERE dataCadastro $whereData ORDER BY nomeCliente"; + $query = "SELECT idClientes, nomeCliente, sexo, pessoa_fisica, + documento, telefone, celular, contato, email, fornecedor, + dataCadastro, rua, numero, complemento, bairro, cidade, estado, + cep FROM clientes WHERE dataCadastro $whereData ORDER BY nomeCliente"; return $this->db->query($query, [$dataInicial, $dataFinal])->result(); } public function clientesRapid($array = false) { + $this->db->select('idClientes, nomeCliente, sexo, pessoa_fisica, + documento, telefone, celular, contato, email, fornecedor, + dataCadastro, rua, numero, complemento, bairro, cidade, estado, + cep'); + $this->db->order_by('nomeCliente', 'asc'); + $this->db->select('idClientes, nomeCliente, sexo, pessoa_fisica, + documento, telefone, celular, contato, email, fornecedor, + dataCadastro, rua, numero, complemento, bairro, cidade, estado, + cep'); + $result = $this->db->get('clientes'); if ($array) { return $result->result_array(); @@ -412,8 +424,8 @@ public function receitasBrutasRapid() SELECT SUM(valor) total, SUM(case when descricao NOT LIKE '%Fatura de OS%' AND descricao NOT LIKE '%Fatura de Venda%' then valor else 0 end) as totalOutros, - SUM(case when descricao LIKE '%Fatura de OS%' then valor else 0 end) as totalServicos, - SUM(case when descricao LIKE '%Fatura de Venda%' then valor else 0 end) as totalVendas + SUM(case when descricao LIKE '%Fatura de OS%' then valor - desconto else 0 end) as totalServicos, + SUM(case when descricao LIKE '%Fatura de Venda%' then valor - desconto else 0 end) as totalVendas FROM lancamentos WHERE baixado = 1 AND tipo = 'receita' diff --git a/application/models/ResetSenhas_model.php b/application/models/ResetSenhas_model.php index 1eabb040..299adab6 100644 --- a/application/models/ResetSenhas_model.php +++ b/application/models/ResetSenhas_model.php @@ -4,7 +4,6 @@ class ResetSenhas_model extends CI_Model { - /** * author: Wilmerson * email: will.phelipe@gmail.com diff --git a/application/models/Servicos_model.php b/application/models/Servicos_model.php index 2cdb2947..bb28e4bd 100644 --- a/application/models/Servicos_model.php +++ b/application/models/Servicos_model.php @@ -1,8 +1,6 @@ applyValidCharacters() - ->applyUppercase() - ->setPixKey(getPixKeyType($pixKey), $pixKey) - ->setMerchantName($emitente->nome, true) - ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) - ->setDescription(sprintf("%s Venda %s", $emitente->nome, $id), true); + ->setDescription(sprintf("%s Venda %s", substr($emitente->nome, 0, 18), $id), true) + ->setPixKey(getPixKeyType($pixKey), $pixKey) + ->setMerchantName($emitente->nome) + ->setMerchantCity($emitente->cidade); return $pix->getQRCode(); } diff --git a/application/third_party/MX/Loader.php b/application/third_party/MX/Loader.php index fd1f904a..01e6a1a1 100644 --- a/application/third_party/MX/Loader.php +++ b/application/third_party/MX/Loader.php @@ -616,7 +616,7 @@ public function _autoloader($autoload) if ($this->_module) { - // Backward function + // Backward function // Before PHP 7.1.0, list() only worked on numerical arrays and assumes the numerical indices start at 0. if (version_compare(phpversion(), '7.1', '<')) { // php version isn't high enough diff --git a/application/vendor/autoload.php b/application/vendor/autoload.php index 31bcba53..d2516c67 100644 --- a/application/vendor/autoload.php +++ b/application/vendor/autoload.php @@ -2,6 +2,24 @@ // autoload.php @generated by Composer +if (PHP_VERSION_ID < 50600) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, $err); + } elseif (!headers_sent()) { + echo $err; + } + } + trigger_error( + $err, + E_USER_ERROR + ); +} + require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInit248570faf8273b26bc60a7daaac4ff08::getLoader(); diff --git a/application/vendor/bin/php-cs-fixer b/application/vendor/bin/php-cs-fixer new file mode 100644 index 00000000..ffb11433 --- /dev/null +++ b/application/vendor/bin/php-cs-fixer @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer'); + exit(0); + } +} + +include __DIR__ . '/..'.'/friendsofphp/php-cs-fixer/php-cs-fixer'; diff --git a/application/vendor/bin/php-cs-fixer.bat b/application/vendor/bin/php-cs-fixer.bat new file mode 100644 index 00000000..83db5d59 --- /dev/null +++ b/application/vendor/bin/php-cs-fixer.bat @@ -0,0 +1,5 @@ +@ECHO OFF +setlocal DISABLEDELAYEDEXPANSION +SET BIN_TARGET=%~dp0/php-cs-fixer +SET COMPOSER_RUNTIME_BIN_DIR=%~dp0 +php "%BIN_TARGET%" %* diff --git a/application/vendor/bin/var-dump-server b/application/vendor/bin/var-dump-server new file mode 100644 index 00000000..c52c7727 --- /dev/null +++ b/application/vendor/bin/var-dump-server @@ -0,0 +1,120 @@ +#!/usr/bin/env php +realpath = realpath($opened_path) ?: $opened_path; + $opened_path = $this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'); + exit(0); + } +} + +include __DIR__ . '/..'.'/symfony/var-dumper/Resources/bin/var-dump-server'; diff --git a/application/vendor/bin/var-dump-server.bat b/application/vendor/bin/var-dump-server.bat new file mode 100644 index 00000000..94333da5 --- /dev/null +++ b/application/vendor/bin/var-dump-server.bat @@ -0,0 +1,5 @@ +@ECHO OFF +setlocal DISABLEDELAYEDEXPANSION +SET BIN_TARGET=%~dp0/var-dump-server +SET COMPOSER_RUNTIME_BIN_DIR=%~dp0 +php "%BIN_TARGET%" %* diff --git a/application/vendor/codeigniter/framework/.gitignore b/application/vendor/codeigniter/framework/.gitignore index 269044ea..323f0646 100644 --- a/application/vendor/codeigniter/framework/.gitignore +++ b/application/vendor/codeigniter/framework/.gitignore @@ -9,6 +9,7 @@ application/logs/* !application/*/.htaccess composer.lock +tests/mocks/database/ci_test.sqlite user_guide_src/build/* user_guide_src/cilexer/build/* diff --git a/application/vendor/codeigniter/framework/application/config/config.php b/application/vendor/codeigniter/framework/application/config/config.php index 10315220..35ace5cc 100644 --- a/application/vendor/codeigniter/framework/application/config/config.php +++ b/application/vendor/codeigniter/framework/application/config/config.php @@ -13,9 +13,9 @@ | | WARNING: You MUST set this value! | -| If it is not set, then CodeIgniter will try guess the protocol and path -| your installation, but due to security concerns the hostname will be set -| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. +| If it is not set, then CodeIgniter will try to guess the protocol and +| path to your installation, but due to security concerns the hostname will +| be set to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. | The auto-detection mechanism exists only for convenience during | development and MUST NOT be used in production! | @@ -62,7 +62,9 @@ | This option allows you to add a suffix to all URLs generated by CodeIgniter. | For more information please see the user guide: | -| https://codeigniter.com/user_guide/general/urls.html +| https://codeigniter.com/userguide3/general/urls.html +| +| Note: This option is ignored for CLI requests. */ $config['url_suffix'] = ''; @@ -110,8 +112,8 @@ | This item allows you to set the filename/classname prefix when extending | native libraries. For more information please see the user guide: | -| https://codeigniter.com/user_guide/general/core_classes.html -| https://codeigniter.com/user_guide/general/creating_libraries.html +| https://codeigniter.com/userguide3/general/core_classes.html +| https://codeigniter.com/userguide3/general/creating_libraries.html | */ $config['subclass_prefix'] = 'MY_'; @@ -321,7 +323,7 @@ | If you use the Encryption class, you must set an encryption key. | See the user guide for more info. | -| https://codeigniter.com/user_guide/libraries/encryption.html +| https://codeigniter.com/userguide3/libraries/encryption.html | */ $config['encryption_key'] = ''; @@ -339,6 +341,10 @@ | | The session cookie name, must contain only [0-9a-z_-] characters | +| 'sess_samesite' +| +| Session cookie SameSite attribute: Lax (default), Strict or None +| | 'sess_expiration' | | The number of SECONDS you want the session to last. @@ -379,6 +385,7 @@ */ $config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; +$config['sess_samesite'] = 'Lax'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; @@ -395,6 +402,7 @@ | 'cookie_path' = Typically will be a forward slash | 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists. | 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript) +| 'cookie_samesite' = Cookie's samesite attribute (Lax, Strict or None) | | Note: These settings (with the exception of 'cookie_prefix' and | 'cookie_httponly') will also affect sessions. @@ -405,6 +413,7 @@ $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; +$config['cookie_samesite'] = 'Lax'; /* |-------------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/application/config/hooks.php b/application/vendor/codeigniter/framework/application/config/hooks.php index a8f38a5d..79c5c162 100644 --- a/application/vendor/codeigniter/framework/application/config/hooks.php +++ b/application/vendor/codeigniter/framework/application/config/hooks.php @@ -8,6 +8,6 @@ | This file lets you define "hooks" to extend CI without hacking the core | files. Please see the user guide for info: | -| https://codeigniter.com/user_guide/general/hooks.html +| https://codeigniter.com/userguide3/general/hooks.html | */ diff --git a/application/vendor/codeigniter/framework/application/config/memcached.php b/application/vendor/codeigniter/framework/application/config/memcached.php index 5c23b39c..65a14961 100644 --- a/application/vendor/codeigniter/framework/application/config/memcached.php +++ b/application/vendor/codeigniter/framework/application/config/memcached.php @@ -7,7 +7,7 @@ | ------------------------------------------------------------------------- | Your Memcached servers can be specified below. | -| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached +| See: https://codeigniter.com/userguide3/libraries/caching.html#memcached | */ $config = array( diff --git a/application/vendor/codeigniter/framework/application/config/mimes.php b/application/vendor/codeigniter/framework/application/config/mimes.php index 7aa5c9e4..b2e989fe 100644 --- a/application/vendor/codeigniter/framework/application/config/mimes.php +++ b/application/vendor/codeigniter/framework/application/config/mimes.php @@ -5,7 +5,7 @@ | ------------------------------------------------------------------- | MIME TYPES | ------------------------------------------------------------------- -| This file contains an array of mime types. It is used by the +| This file contains an array of mime types. It is used by the | Upload class to help identify allowed file types. | */ @@ -85,9 +85,11 @@ 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'png' => array('image/png', 'image/x-png'), + 'png' => array('image/png', 'image/x-png'), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', + 'heic' => 'image/heic', + 'heif' => 'image/heif', 'css' => array('text/css', 'text/plain'), 'html' => array('text/html', 'text/plain'), 'htm' => array('text/html', 'text/plain'), @@ -160,7 +162,7 @@ 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), - 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), + 'svg' => array('image/svg+xml', 'image/svg', 'application/xml', 'text/xml'), 'vcf' => 'text/x-vcard', 'srt' => array('text/srt', 'text/plain'), 'vtt' => array('text/vtt', 'text/plain'), diff --git a/application/vendor/codeigniter/framework/application/config/profiler.php b/application/vendor/codeigniter/framework/application/config/profiler.php index 3db22e39..3436e931 100644 --- a/application/vendor/codeigniter/framework/application/config/profiler.php +++ b/application/vendor/codeigniter/framework/application/config/profiler.php @@ -9,6 +9,6 @@ | data are displayed when the Profiler is enabled. | Please see the user guide for info: | -| https://codeigniter.com/user_guide/general/profiling.html +| https://codeigniter.com/userguide3/general/profiling.html | */ diff --git a/application/vendor/codeigniter/framework/application/config/routes.php b/application/vendor/codeigniter/framework/application/config/routes.php index 1b45740d..e8e2296f 100644 --- a/application/vendor/codeigniter/framework/application/config/routes.php +++ b/application/vendor/codeigniter/framework/application/config/routes.php @@ -19,7 +19,7 @@ | | Please see the user guide for complete details: | -| https://codeigniter.com/user_guide/general/routing.html +| https://codeigniter.com/userguide3/general/routing.html | | ------------------------------------------------------------------------- | RESERVED ROUTES diff --git a/application/vendor/codeigniter/framework/application/config/smileys.php b/application/vendor/codeigniter/framework/application/config/smileys.php index abf9a898..a9b9191c 100644 --- a/application/vendor/codeigniter/framework/application/config/smileys.php +++ b/application/vendor/codeigniter/framework/application/config/smileys.php @@ -10,7 +10,7 @@ | :-) and :) use the same image replacement. | | Please see user guide for more info: -| https://codeigniter.com/user_guide/helpers/smiley_helper.html +| https://codeigniter.com/userguide3/helpers/smiley_helper.html | */ $smileys = array( diff --git a/application/vendor/codeigniter/framework/application/config/user_agents.php b/application/vendor/codeigniter/framework/application/config/user_agents.php index c1581e5c..5e1f6afb 100644 --- a/application/vendor/codeigniter/framework/application/config/user_agents.php +++ b/application/vendor/codeigniter/framework/application/config/user_agents.php @@ -152,6 +152,11 @@ 'open web' => 'Open Web', 'openweb' => 'OpenWeb', 'meizu' => 'Meizu', + 'huawei' => 'Huawei', + 'xiaomi' => 'Xiaomi', + 'oppo' => 'Oppo', + 'vivo' => 'Vivo', + 'infinix' => 'Infinix', // Operating Systems 'android' => 'Android', @@ -212,5 +217,6 @@ 'curious george' => 'Curious George', 'ia_archiver' => 'Alexa Crawler', 'MJ12bot' => 'Majestic-12', - 'Uptimebot' => 'Uptimebot' + 'Uptimebot' => 'Uptimebot', + 'UptimeRobot' => 'UptimeRobot' ); diff --git a/application/vendor/codeigniter/framework/application/controllers/Welcome.php b/application/vendor/codeigniter/framework/application/controllers/Welcome.php index 9213c0cf..5f82771b 100644 --- a/application/vendor/codeigniter/framework/application/controllers/Welcome.php +++ b/application/vendor/codeigniter/framework/application/controllers/Welcome.php @@ -16,7 +16,7 @@ class Welcome extends CI_Controller { * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/ - * @see https://codeigniter.com/user_guide/general/urls.html + * @see https://codeigniter.com/userguide3/general/urls.html */ public function index() { diff --git a/application/vendor/codeigniter/framework/application/views/welcome_message.php b/application/vendor/codeigniter/framework/application/views/welcome_message.php index f5115630..9db22bc5 100644 --- a/application/vendor/codeigniter/framework/application/views/welcome_message.php +++ b/application/vendor/codeigniter/framework/application/views/welcome_message.php @@ -22,6 +22,11 @@ color: #003399; background-color: transparent; font-weight: normal; + text-decoration: none; + } + + a:hover { + color: #97310e; } h1 { @@ -47,6 +52,12 @@ #body { margin: 0 15px 0 15px; + min-height: 96px; + } + + p { + margin: 0 0 10px; + padding:0; } p.footer { @@ -79,11 +90,11 @@

The corresponding controller for this page is found at:

application/controllers/Welcome.php -

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

+

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

- \ No newline at end of file + diff --git a/application/vendor/codeigniter/framework/composer.json b/application/vendor/codeigniter/framework/composer.json index 30630e22..01e65f40 100644 --- a/application/vendor/codeigniter/framework/composer.json +++ b/application/vendor/codeigniter/framework/composer.json @@ -16,8 +16,20 @@ "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, + "scripts": { + "test:coverage": [ + "@putenv XDEBUG_MODE=coverage", + "phpunit --color=always --coverage-text --configuration tests/travis/sqlite.phpunit.xml" + ], + "post-install-cmd": [ + "sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php" + ], + "post-update-cmd": [ + "sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php" + ] + }, "require-dev": { - "mikey179/vfsStream": "1.1.*", - "phpunit/phpunit": "4.* || 5.*" + "mikey179/vfsstream": "1.6.*", + "phpunit/phpunit": "4.* || 5.* || 9.*" } } diff --git a/application/vendor/codeigniter/framework/contributing.md b/application/vendor/codeigniter/framework/contributing.md deleted file mode 100644 index 703fe8f4..00000000 --- a/application/vendor/codeigniter/framework/contributing.md +++ /dev/null @@ -1,93 +0,0 @@ -# Contributing to CodeIgniter - -CodeIgniter is a community driven project and accepts contributions of code and documentation from the community. These contributions are made in the form of Issues or [Pull Requests](http://help.github.com/send-pull-requests/) on the [CodeIgniter repository](https://github.com/bcit-ci/CodeIgniter) on GitHub. - -Issues are a quick way to point out a bug. If you find a bug or documentation error in CodeIgniter then please check a few things first: - -1. There is not already an open Issue -2. The issue has already been fixed (check the develop branch, or look for closed Issues) -3. Is it something really obvious that you can fix yourself? - -Reporting issues is helpful but an even better approach is to send a Pull Request, which is done by "Forking" the main repository and committing to your own copy. This will require you to use the version control system called Git. - -## Guidelines - -Before we look into how, here are the guidelines. If your Pull Requests fail -to pass these guidelines it will be declined and you will need to re-submit -when you’ve made the changes. This might sound a bit tough, but it is required -for us to maintain quality of the code-base. - -### PHP Style - -All code must meet the [Style Guide](https://codeigniter.com/user_guide/general/styleguide.html), which is -essentially the [Allman indent style](https://en.wikipedia.org/wiki/Indent_style#Allman_style), underscores and readable operators. This makes certain that all code is the same format as the existing code and means it will be as readable as possible. - -### Documentation - -If you change anything that requires a change to documentation then you will need to add it. New classes, methods, parameters, changing default values, etc are all things that will require a change to documentation. The change-log must also be updated for every change. Also PHPDoc blocks must be maintained. - -### Compatibility - -CodeIgniter recommends PHP 5.4 or newer to be used, but it should be -compatible with PHP 5.2.4 so all code supplied must stick to this -requirement. If PHP 5.3 (and above) functions or features are used then -there must be a fallback for PHP 5.2.4. - -### Branching - -CodeIgniter uses the [Git-Flow](http://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all pull requests to be sent to the "develop" branch. This is -where the next planned version will be developed. The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g: an emergency security patch) can be applied to master to create a new version, without worrying about other features holding it up. For this reason all commits need to be made to "develop" and any sent to "master" will be closed automatically. If you have multiple changes to submit, please place all changes into their own branch on your fork. - -One thing at a time: A pull request should only contain one change. That does not mean only one commit, but one change - however many commits it took. The reason for this is that if you change X and Y but send a pull request for both at the same time, we might really want X but disagree with Y, meaning we cannot merge the request. Using the Git-Flow branching model you can create new branches for both of these features and send two requests. - -### Signing - -You must sign your work, certifying that you either wrote the work or otherwise have the right to pass it on to an open source project. git makes this trivial as you merely have to use `--signoff` on your commits to your CodeIgniter fork. - -`git commit --signoff` - -or simply - -`git commit -s` - -This will sign your commits with the information setup in your git config, e.g. - -`Signed-off-by: John Q Public ` - -If you are using [Tower](http://www.git-tower.com/) there is a "Sign-Off" checkbox in the commit window. You could even alias git commit to use the `-s` flag so you don’t have to think about it. - -By signing your work in this manner, you certify to a "Developer's Certificate of Origin". The current version of this certificate is in the `DCO.txt` file in the root of this repository. - -## How-to Guide - -There are two ways to make changes, the easy way and the hard way. Either way you will need to [create a GitHub account](https://github.com/signup/free). - -Easy way GitHub allows in-line editing of files for making simple typo changes and quick-fixes. This is not the best way as you are unable to test the code works. If you do this you could be introducing syntax errors, etc, but for a Git-phobic user this is good for a quick-fix. - -Hard way The best way to contribute is to "clone" your fork of CodeIgniter to your development area. That sounds like some jargon, but "forking" on GitHub means "making a copy of that repo to your account" and "cloning" means "copying that code to your environment so you can work on it". - -1. [Set up Git](https://help.github.com/en/articles/set-up-git) (Windows, Mac & Linux) -2. Go to the [CodeIgniter repo](https://github.com/bcit-ci/CodeIgniter) -3. [Fork it](https://help.github.com/en/articles/fork-a-repo) -4. [Clone](https://help.github.com/en/articles/fetching-a-remote#clone) your forked CodeIgniter repo: git@github.com:/CodeIgniter.git. -5. Checkout the "develop" branch. At this point you are ready to start making changes. -6. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them. -7. [Commit](https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line) the files -8. [Push](https://help.github.com/en/articles/pushing-to-a-remote) your develop branch to your fork -9. [Send a pull request](https://help.github.com/en/articles/creating-a-pull-request) - -The Reactor Engineers will now be alerted about the change and at least one of the team will respond. If your change fails to meet the guidelines it will be bounced, or feedback will be provided to help you improve it. - -Once the Reactor Engineer handling your pull request is happy with it they will merge it into develop and your patch will be part of the next release. - -### Keeping your fork up-to-date - -Unlike systems like Subversion, Git can have multiple remotes. A remote is the name for a URL of a Git repository. By default your fork will have a remote named "origin" which points to your fork, but you can add another remote named "codeigniter" which points to `git://github.com/bcit-ci/CodeIgniter.git`. This is a read-only remote but you can pull from this develop branch to update your own. - -If you are using command-line you can do the following: - -1. `git remote add codeigniter git://github.com/bcit-ci/CodeIgniter.git` -2. `git pull codeigniter develop` -3. `git push origin develop` - -Now your fork is up to date. This should be done regularly, or before you send a pull request at least. diff --git a/application/vendor/codeigniter/framework/index.php b/application/vendor/codeigniter/framework/index.php index e5055047..11f8c628 100644 --- a/application/vendor/codeigniter/framework/index.php +++ b/application/vendor/codeigniter/framework/index.php @@ -110,7 +110,7 @@ * use an absolute (full) server path. * For more info please see the user guide: * - * https://codeigniter.com/user_guide/general/managing_apps.html + * https://codeigniter.com/userguide3/general/managing_apps.html * * NO TRAILING SLASH! */ diff --git a/application/vendor/codeigniter/framework/license.txt b/application/vendor/codeigniter/framework/license.txt index 274306a1..82be622d 100644 --- a/application/vendor/codeigniter/framework/license.txt +++ b/application/vendor/codeigniter/framework/license.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014 - 2019, British Columbia Institute of Technology +Copyright (c) 2019 - 2022, CodeIgniter Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. diff --git a/application/vendor/codeigniter/framework/readme.rst b/application/vendor/codeigniter/framework/readme.rst index b6520080..63a55c3f 100644 --- a/application/vendor/codeigniter/framework/readme.rst +++ b/application/vendor/codeigniter/framework/readme.rst @@ -39,7 +39,7 @@ issues, as well as missing features. Installation ************ -Please see the `installation section `_ +Please see the `installation section `_ of the CodeIgniter User Guide. ******* @@ -54,6 +54,7 @@ Resources ********* - `User Guide `_ +- `Contributing Guide `_ - `Language File Translations `_ - `Community Forums `_ - `Community Wiki `_ diff --git a/application/vendor/codeigniter/framework/system/core/Benchmark.php b/application/vendor/codeigniter/framework/system/core/Benchmark.php index 014220a4..20ac2f55 100644 --- a/application/vendor/codeigniter/framework/system/core/Benchmark.php +++ b/application/vendor/codeigniter/framework/system/core/Benchmark.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -47,7 +48,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/benchmark.html + * @link https://codeigniter.com/userguide3/libraries/benchmark.html */ class CI_Benchmark { diff --git a/application/vendor/codeigniter/framework/system/core/CodeIgniter.php b/application/vendor/codeigniter/framework/system/core/CodeIgniter.php index 8aecc0a2..56826dcc 100644 --- a/application/vendor/codeigniter/framework/system/core/CodeIgniter.php +++ b/application/vendor/codeigniter/framework/system/core/CodeIgniter.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage CodeIgniter * @category Front-controller * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ /** @@ -55,7 +56,7 @@ * @var string * */ - const CI_VERSION = '3.1.11'; + const CI_VERSION = '3.1.13'; /* * ------------------------------------------------------ @@ -434,7 +435,7 @@ function &get_instance() * ReflectionMethod::isConstructor() is the ONLY reliable check, * knowing which method will be executed as a constructor. */ - elseif ( ! is_callable(array($class, $method))) + else { $reflection = new ReflectionMethod($class, $method); if ( ! $reflection->isPublic() OR $reflection->isConstructor()) diff --git a/application/vendor/codeigniter/framework/system/core/Common.php b/application/vendor/codeigniter/framework/system/core/Common.php index 624b5a9f..a56cb146 100644 --- a/application/vendor/codeigniter/framework/system/core/Common.php +++ b/application/vendor/codeigniter/framework/system/core/Common.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage CodeIgniter * @category Common Functions * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ // ------------------------------------------------------------------------ @@ -565,7 +566,7 @@ function set_status_header($code = 200, $text = '') return; } - $server_protocol = (isset($_SERVER['SERVER_PROTOCOL']) && in_array($_SERVER['SERVER_PROTOCOL'], array('HTTP/1.0', 'HTTP/1.1', 'HTTP/2'), TRUE)) + $server_protocol = (isset($_SERVER['SERVER_PROTOCOL']) && in_array($_SERVER['SERVER_PROTOCOL'], array('HTTP/1.0', 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0'), TRUE)) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1'; header($server_protocol.' '.$code.' '.$text, TRUE, $code); } @@ -778,11 +779,9 @@ function html_escape($var, $double_encode = TRUE) */ function _stringify_attributes($attributes, $js = FALSE) { - $atts = NULL; - if (empty($attributes)) { - return $atts; + return NULL; } if (is_string($attributes)) @@ -792,6 +791,7 @@ function _stringify_attributes($attributes, $js = FALSE) $attributes = (array) $attributes; + $atts = ''; foreach ($attributes as $key => $val) { $atts .= ($js) ? $key.'='.$val.',' : ' '.$key.'="'.$val.'"'; diff --git a/application/vendor/codeigniter/framework/system/core/Config.php b/application/vendor/codeigniter/framework/system/core/Config.php index fc6c30f8..2454a9d7 100644 --- a/application/vendor/codeigniter/framework/system/core/Config.php +++ b/application/vendor/codeigniter/framework/system/core/Config.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/config.html + * @link https://codeigniter.com/userguide3/libraries/config.html */ class CI_Config { diff --git a/application/vendor/codeigniter/framework/system/core/Controller.php b/application/vendor/codeigniter/framework/system/core/Controller.php index e25b8472..aeccd60e 100644 --- a/application/vendor/codeigniter/framework/system/core/Controller.php +++ b/application/vendor/codeigniter/framework/system/core/Controller.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -47,7 +48,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/controllers.html + * @link https://codeigniter.com/userguide3/general/controllers.html */ class CI_Controller { diff --git a/application/vendor/codeigniter/framework/system/core/Exceptions.php b/application/vendor/codeigniter/framework/system/core/Exceptions.php index 90ff1abf..b1bc2dec 100644 --- a/application/vendor/codeigniter/framework/system/core/Exceptions.php +++ b/application/vendor/codeigniter/framework/system/core/Exceptions.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Exceptions * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/exceptions.html + * @link https://codeigniter.com/userguide3/libraries/exceptions.html */ class CI_Exceptions { diff --git a/application/vendor/codeigniter/framework/system/core/Hooks.php b/application/vendor/codeigniter/framework/system/core/Hooks.php index 6236dd49..2246bbcb 100644 --- a/application/vendor/codeigniter/framework/system/core/Hooks.php +++ b/application/vendor/codeigniter/framework/system/core/Hooks.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/hooks.html + * @link https://codeigniter.com/userguide3/general/hooks.html */ class CI_Hooks { diff --git a/application/vendor/codeigniter/framework/system/core/Input.php b/application/vendor/codeigniter/framework/system/core/Input.php index 30b31d0d..eba5f67f 100644 --- a/application/vendor/codeigniter/framework/system/core/Input.php +++ b/application/vendor/codeigniter/framework/system/core/Input.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Input * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/input.html + * @link https://codeigniter.com/userguide3/libraries/input.html */ class CI_Input { @@ -357,14 +358,15 @@ public function input_stream($index = NULL, $xss_clean = NULL) * @param string $prefix Cookie name prefix * @param bool $secure Whether to only transfer cookies via SSL * @param bool $httponly Whether to only makes the cookie accessible via HTTP (no javascript) + * @param string $samesite SameSite attribute * @return void */ - public function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL) + public function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL, $samesite = NULL) { if (is_array($name)) { // always leave 'name' in last place, as the loop will break otherwise, due to $$item - foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'httponly', 'name') as $item) + foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'httponly', 'name', 'samesite') as $item) { if (isset($name[$item])) { @@ -405,7 +407,47 @@ public function set_cookie($name, $value = '', $expire = '', $domain = '', $path $expire = ($expire > 0) ? time() + $expire : 0; } - setcookie($prefix.$name, $value, $expire, $path, $domain, $secure, $httponly); + isset($samesite) OR $samesite = config_item('cookie_samesite'); + if (isset($samesite)) + { + $samesite = ucfirst(strtolower($samesite)); + in_array($samesite, array('Lax', 'Strict', 'None'), TRUE) OR $samesite = 'Lax'; + } + else + { + $samesite = 'Lax'; + } + + if ($samesite === 'None' && ! $secure) + { + log_message('error', $name.' cookie sent with SameSite=None, but without Secure attribute.'); + } + + if ( ! is_php('7.3')) + { + $maxage = $expire - time(); + if ($maxage < 1) + { + $maxage = 0; + } + + $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); + $cookie_header .= ($expire === 0 ? '' : '; Expires='.gmdate('D, d-M-Y H:i:s T', $expire)).'; Max-Age='.$maxage; + $cookie_header .= '; Path='.$path.($domain !== '' ? '; Domain='.$domain : ''); + $cookie_header .= ($secure ? '; Secure' : '').($httponly ? '; HttpOnly' : '').'; SameSite='.$samesite; + header($cookie_header); + return; + } + + $setcookie_options = array( + 'expires' => $expire, + 'path' => $path, + 'domain' => $domain, + 'secure' => $secure, + 'httponly' => $httponly, + 'samesite' => $samesite, + ); + setcookie($prefix.$name, $value, $setcookie_options); } // -------------------------------------------------------------------- @@ -565,7 +607,7 @@ public function valid_ip($ip, $which = '') $which = FILTER_FLAG_IPV6; break; default: - $which = NULL; + $which = 0; break; } diff --git a/application/vendor/codeigniter/framework/system/core/Lang.php b/application/vendor/codeigniter/framework/system/core/Lang.php index 2c8654dc..18299060 100644 --- a/application/vendor/codeigniter/framework/system/core/Lang.php +++ b/application/vendor/codeigniter/framework/system/core/Lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Language * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/language.html + * @link https://codeigniter.com/userguide3/libraries/language.html */ class CI_Lang { diff --git a/application/vendor/codeigniter/framework/system/core/Loader.php b/application/vendor/codeigniter/framework/system/core/Loader.php index 14888e49..a70487e8 100644 --- a/application/vendor/codeigniter/framework/system/core/Loader.php +++ b/application/vendor/codeigniter/framework/system/core/Loader.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Loader * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/loader.html + * @link https://codeigniter.com/userguide3/libraries/loader.html */ class CI_Loader { diff --git a/application/vendor/codeigniter/framework/system/core/Log.php b/application/vendor/codeigniter/framework/system/core/Log.php index f37726e0..ca3e38a7 100644 --- a/application/vendor/codeigniter/framework/system/core/Log.php +++ b/application/vendor/codeigniter/framework/system/core/Log.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Logging * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/errors.html + * @link https://codeigniter.com/userguide3/general/errors.html */ class CI_Log { @@ -122,7 +123,7 @@ public function __construct() { $config =& get_config(); - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); $this->_log_path = ($config['log_path'] !== '') ? $config['log_path'] : APPPATH.'logs/'; $this->_file_ext = (isset($config['log_file_extension']) && $config['log_file_extension'] !== '') diff --git a/application/vendor/codeigniter/framework/system/core/Model.php b/application/vendor/codeigniter/framework/system/core/Model.php index 0aadbcdc..b2bbbd4d 100644 --- a/application/vendor/codeigniter/framework/system/core/Model.php +++ b/application/vendor/codeigniter/framework/system/core/Model.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/config.html + * @link https://codeigniter.com/userguide3/libraries/config.html */ class CI_Model { diff --git a/application/vendor/codeigniter/framework/system/core/Output.php b/application/vendor/codeigniter/framework/system/core/Output.php index 64e7ee1f..a629a09d 100644 --- a/application/vendor/codeigniter/framework/system/core/Output.php +++ b/application/vendor/codeigniter/framework/system/core/Output.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Output * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/output.html + * @link https://codeigniter.com/userguide3/libraries/output.html */ class CI_Output { @@ -55,7 +56,7 @@ class CI_Output { * * @var string */ - public $final_output; + public $final_output = ''; /** * Cache expiration time @@ -145,7 +146,7 @@ public function __construct() && extension_loaded('zlib') ); - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); // Get mime types for later $this->mimes =& get_mimes(); @@ -299,10 +300,14 @@ public function get_content_type() */ public function get_header($header) { - // Combine headers already sent with our batched headers + // We only need [x][0] from our multi-dimensional array + $header_lines = array_map(function ($headers) + { + return array_shift($headers); + }, $this->headers); + $headers = array_merge( - // We only need [x][0] from our multi-dimensional array - array_map('array_shift', $this->headers), + $header_lines, headers_list() ); diff --git a/application/vendor/codeigniter/framework/system/core/Router.php b/application/vendor/codeigniter/framework/system/core/Router.php index 90b69d07..ab1f44e0 100644 --- a/application/vendor/codeigniter/framework/system/core/Router.php +++ b/application/vendor/codeigniter/framework/system/core/Router.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/routing.html + * @link https://codeigniter.com/userguide3/general/routing.html */ class CI_Router { diff --git a/application/vendor/codeigniter/framework/system/core/Security.php b/application/vendor/codeigniter/framework/system/core/Security.php index 6a81faff..e7772e03 100644 --- a/application/vendor/codeigniter/framework/system/core/Security.php +++ b/application/vendor/codeigniter/framework/system/core/Security.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Security * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/security.html + * @link https://codeigniter.com/userguide3/libraries/security.html */ class CI_Security { @@ -193,7 +194,7 @@ public function __construct() $this->_csrf_set_hash(); } - $this->charset = strtoupper(config_item('charset')); + $this->charset = strtoupper((string) config_item('charset')); log_message('info', 'Security Class Initialized'); } @@ -272,15 +273,35 @@ public function csrf_set_cookie() return FALSE; } - setcookie( - $this->_csrf_cookie_name, - $this->_csrf_hash, - $expire, - config_item('cookie_path'), - config_item('cookie_domain'), - $secure_cookie, - config_item('cookie_httponly') - ); + if (is_php('7.3')) + { + setcookie( + $this->_csrf_cookie_name, + $this->_csrf_hash, + array( + 'expires' => $expire, + 'path' => config_item('cookie_path'), + 'domain' => config_item('cookie_domain'), + 'secure' => $secure_cookie, + 'httponly' => config_item('cookie_httponly'), + 'samesite' => 'Strict' + ) + ); + } + else + { + $domain = trim(config_item('cookie_domain')); + header('Set-Cookie: '.$this->_csrf_cookie_name.'='.$this->_csrf_hash + .'; Expires='.gmdate('D, d-M-Y H:i:s T', $expire) + .'; Max-Age='.$this->_csrf_expire + .'; Path='.rawurlencode(config_item('cookie_path')) + .($domain === '' ? '' : '; Domain='.$domain) + .($secure_cookie ? '; Secure' : '') + .(config_item('cookie_httponly') ? '; HttpOnly' : '') + .'; SameSite=Strict' + ); + } + log_message('info', 'CSRF cookie sent'); return $this; @@ -635,7 +656,6 @@ public function get_random_bytes($length) return $output; } - if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) { // Try not to waste entropy ... diff --git a/application/vendor/codeigniter/framework/system/core/URI.php b/application/vendor/codeigniter/framework/system/core/URI.php index a8b98ae9..6a55439f 100644 --- a/application/vendor/codeigniter/framework/system/core/URI.php +++ b/application/vendor/codeigniter/framework/system/core/URI.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category URI * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/uri.html + * @link https://codeigniter.com/userguide3/libraries/uri.html */ class CI_URI { diff --git a/application/vendor/codeigniter/framework/system/core/Utf8.php b/application/vendor/codeigniter/framework/system/core/Utf8.php index 9ee63e92..05472234 100644 --- a/application/vendor/codeigniter/framework/system/core/Utf8.php +++ b/application/vendor/codeigniter/framework/system/core/Utf8.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category UTF-8 * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/utf8.html + * @link https://codeigniter.com/userguide3/libraries/utf8.html */ class CI_Utf8 { diff --git a/application/vendor/codeigniter/framework/system/core/compat/hash.php b/application/vendor/codeigniter/framework/system/core/compat/hash.php index 8f5510c3..3fe3b85b 100644 --- a/application/vendor/codeigniter/framework/system/core/compat/hash.php +++ b/application/vendor/codeigniter/framework/system/core/compat/hash.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,8 +45,8 @@ * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ - * @link http://php.net/hash + * @link https://codeigniter.com/userguide3/ + * @link https://secure.php.net/hash */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/core/compat/mbstring.php b/application/vendor/codeigniter/framework/system/core/compat/mbstring.php index 552e7271..1c49d189 100644 --- a/application/vendor/codeigniter/framework/system/core/compat/mbstring.php +++ b/application/vendor/codeigniter/framework/system/core/compat/mbstring.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,8 +45,8 @@ * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ - * @link http://php.net/mbstring + * @link https://codeigniter.com/userguide3/ + * @link https://secure.php.net/mbstring */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/core/compat/password.php b/application/vendor/codeigniter/framework/system/core/compat/password.php index 5a3bc207..9937a47e 100644 --- a/application/vendor/codeigniter/framework/system/core/compat/password.php +++ b/application/vendor/codeigniter/framework/system/core/compat/password.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,8 +45,8 @@ * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ - * @link http://php.net/password + * @link https://codeigniter.com/userguide3/ + * @link https://secure.php.net/password */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/core/compat/standard.php b/application/vendor/codeigniter/framework/system/core/compat/standard.php index 2c528fd7..18b1281c 100644 --- a/application/vendor/codeigniter/framework/system/core/compat/standard.php +++ b/application/vendor/codeigniter/framework/system/core/compat/standard.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,7 +45,7 @@ * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/database/DB.php b/application/vendor/codeigniter/framework/system/database/DB.php index 02e0e1d3..23581af5 100644 --- a/application/vendor/codeigniter/framework/system/database/DB.php +++ b/application/vendor/codeigniter/framework/system/database/DB.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ * * @param string|string[] $params * @param bool $query_builder_override @@ -185,7 +186,7 @@ class CI_DB extends CI_DB_query_builder { } elseif ( ! class_exists('CI_DB', FALSE)) { /** - * @ignore + * @ignore */ class CI_DB extends CI_DB_driver { } } diff --git a/application/vendor/codeigniter/framework/system/database/DB_cache.php b/application/vendor/codeigniter/framework/system/database/DB_cache.php index afcfc4cf..d05ebb21 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_cache.php +++ b/application/vendor/codeigniter/framework/system/database/DB_cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_Cache { diff --git a/application/vendor/codeigniter/framework/system/database/DB_driver.php b/application/vendor/codeigniter/framework/system/database/DB_driver.php index 5ae0442a..522f1bb9 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_driver.php +++ b/application/vendor/codeigniter/framework/system/database/DB_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_driver { @@ -890,6 +891,18 @@ public function trans_status() // -------------------------------------------------------------------- + /** + * Returns TRUE if a transaction is currently active + * + * @return bool + */ + public function trans_active() + { + return (bool) $this->_trans_depth; + } + + // -------------------------------------------------------------------- + /** * Begin Transaction * @@ -1564,6 +1577,7 @@ protected function _get_operator($str) '\s+EXISTS\s*\(.*\)', // EXISTS(sql) '\s+NOT EXISTS\s*\(.*\)', // NOT EXISTS(sql) '\s+BETWEEN\s+', // BETWEEN value AND value + '\s+NOT BETWEEN\s+', // NOT BETWEEN value AND value '\s+IN\s*\(.*\)', // IN(list) '\s+NOT IN\s*\(.*\)', // NOT IN (list) '\s+LIKE\s+\S.*('.$_les.')?', // LIKE 'expr'[ ESCAPE '%s'] diff --git a/application/vendor/codeigniter/framework/system/database/DB_forge.php b/application/vendor/codeigniter/framework/system/database/DB_forge.php index 85b58fde..64ccde0e 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_forge.php +++ b/application/vendor/codeigniter/framework/system/database/DB_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/DB_query_builder.php b/application/vendor/codeigniter/framework/system/database/DB_query_builder.php index f35b9fd0..93310849 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_query_builder.php +++ b/application/vendor/codeigniter/framework/system/database/DB_query_builder.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_query_builder extends CI_DB_driver { @@ -529,7 +530,7 @@ public function join($table, $cond, $type = '', $escape = NULL) { $type = strtoupper(trim($type)); - if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'), TRUE)) + if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER', 'FULL OUTER', 'FULL'), TRUE)) { $type = ''; } @@ -1119,7 +1120,7 @@ protected function _group_get_type($type) /** * GROUP BY * - * @param string $by + * @param mixed $by * @param bool $escape * @return CI_DB_query_builder */ @@ -1412,7 +1413,7 @@ public function count_all_results($table = '', $reset = TRUE) $qb_cache_orderby = $this->qb_cache_orderby; $this->qb_orderby = $this->qb_cache_orderby = array(); - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR $this->qb_limit OR $this->qb_offset) + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR ! empty($this->qb_having) OR $this->qb_limit OR $this->qb_offset) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); diff --git a/application/vendor/codeigniter/framework/system/database/DB_result.php b/application/vendor/codeigniter/framework/system/database/DB_result.php index ed5252d4..94da294d 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_result.php +++ b/application/vendor/codeigniter/framework/system/database/DB_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/DB_utility.php b/application/vendor/codeigniter/framework/system/database/DB_utility.php index 6642fda8..11aa67bb 100644 --- a/application/vendor/codeigniter/framework/system/database/DB_utility.php +++ b/application/vendor/codeigniter/framework/system/database/DB_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_utility { @@ -257,7 +258,7 @@ public function csv_from_result($query, $delim = ',', $newline = "\n", $enclosur $line = array(); foreach ($row as $item) { - $line[] = $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure; + $line[] = $enclosure.str_replace($enclosure, $enclosure.$enclosure, (string) $item).$enclosure; } $out .= implode($delim, $line).$newline; } diff --git a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_driver.php index b3b436fe..bd01be6a 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_forge.php index 69b53dd4..e8e201f9 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -42,7 +43,7 @@ * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_result.php b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_result.php index 75d70255..274b0c96 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -44,7 +45,7 @@ * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_utility.php index ccf794b7..ca81568c 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/cubrid/cubrid_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -42,7 +43,7 @@ * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_driver.php index 27e87d42..433139fa 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_forge.php index 29a3acf6..2c385f15 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_forge extends CI_DB_forge { @@ -140,7 +141,7 @@ public function drop_database($db_name) * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -183,7 +184,7 @@ protected function _alter_table($alter_type, $table, $field) } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_result.php b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_result.php index 86530973..900212e6 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,7 +45,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_utility.php index a8087492..bc87508c 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/ibase/ibase_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_driver.php index e197cfb0..50126409 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_forge.php index 07b93c24..f9dee915 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_result.php b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_result.php index 5d7d3bed..fbe2eb1b 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_utility.php index 5c9941ac..a739dc82 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mssql/mssql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_driver.php index 440715ae..367f89a9 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_forge.php index b69aa36b..410ea2d0 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_forge extends CI_DB_forge { @@ -185,7 +186,6 @@ protected function _process_column($field) $extra_clause = ' FIRST'; } - return $this->db->escape_identifiers($field['name']) .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) .' '.$field['type'].$field['length'] diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_result.php b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_result.php index 842d7d39..05fc36ea 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_utility.php index a5489297..0564a5a3 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysql/mysql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_driver.php index 0ca0f48f..f5e99496 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_driver extends CI_DB { @@ -116,6 +117,13 @@ class CI_DB_mysqli_driver extends CI_DB { */ public function db_connect($persistent = FALSE) { + // PHP 8.1 changes default error handling mode from silent to exceptions - reverse that + if (is_php('8.1')) + { + $mysqli_driver = new mysqli_driver(); + $mysqli_driver->report_mode = MYSQLI_REPORT_OFF; + } + // Do we have a socket path? if ($this->hostname[0] === '/') { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_forge.php index 92b1e94d..992c7720 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_result.php b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_result.php index 0856eca4..8c4f94d1 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_utility.php index 60642465..6a7d4191 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/mysqli/mysqli_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_driver.php index a825c4a3..7bb43b5b 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ /** @@ -682,6 +683,16 @@ protected function _limit($sql) */ protected function _close() { + if (is_resource($this->curs_id)) + { + oci_free_statement($this->curs_id); + } + + if (is_resource($this->stmt_id)) + { + oci_free_statement($this->stmt_id); + } + oci_close($this->conn_id); } diff --git a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_forge.php index 58f3c391..9910b115 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_forge extends CI_DB_forge { @@ -159,7 +160,29 @@ protected function _alter_table($alter_type, $table, $field) */ protected function _attr_auto_increment(&$attributes, &$field) { - // Not supported - sequences and triggers must be used instead + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_result.php b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_result.php index 3da49aa7..4312f9b2 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 @@ -44,7 +45,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_utility.php index 3a7261c1..bcce114f 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/oci8/oci8_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_driver.php index 72289bf9..cfb9d573 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_odbc_driver extends CI_DB_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_forge.php index 05f9c76d..115d08a3 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_result.php b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_result.php index a06ac4b9..e5847f10 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_odbc_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_utility.php index 78720108..a69ed000 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/odbc/odbc_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_driver.php index c5d120fd..559e8655 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_driver extends CI_DB { @@ -131,6 +132,14 @@ public function db_connect($persistent = FALSE) $this->options[PDO::ATTR_PERSISTENT] = TRUE; } + // From PHP8.0, default PDO::ATTR_ERRMODE is changed + // from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION + // as https://wiki.php.net/rfc/pdo_default_errmode + if ( ! isset($this->options[PDO::ATTR_ERRMODE])) + { + $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT; + } + try { return new PDO($this->dsn, $this->username, $this->password, $this->options); @@ -302,7 +311,7 @@ public function error() $error['code'] = isset($pdo_error[1]) ? $pdo_error[0].'/'.$pdo_error[1] : $pdo_error[0]; if (isset($pdo_error[2])) { - $error['message'] = $pdo_error[2]; + $error['message'] = $pdo_error[2]; } return $error; @@ -326,4 +335,17 @@ protected function _truncate($table) return 'TRUNCATE TABLE '.$table; } + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + $this->result_id = FALSE; + $this->conn_id = FALSE; + } + } diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_forge.php index e512d3d6..b35ff677 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_result.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_result.php index b3973da4..bf9e1237 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_utility.php index 6c40cf32..2094ef4a 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/pdo_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index 2e39bb23..8d5b2f68 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_4d_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 306150b9..28fc008a 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_4d_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index 9a6b643f..c8f92585 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_cubrid_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index f2ee3f5e..de02983b 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_cubrid_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index 09dbdf08..7d8d4a29 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_dblib_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index f38ac99b..3ee352fb 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_dblib_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index 2c49f121..97782500 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_firebird_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index eceb5979..26e052aa 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_firebird_forge extends CI_DB_pdo_forge { @@ -126,7 +127,7 @@ public function drop_database($db_name) * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -169,7 +170,7 @@ protected function _alter_table($alter_type, $table, $field) } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 00654d7c..aca58ecd 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_ibm_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index 99d75b64..cf023d41 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_ibm_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index 114eb747..4d230c3f 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_informix_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index 1f4bcd1a..368d8dc9 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_informix_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index 73b88bcf..1ad854da 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_mysql_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index 01595a60..8bf5cfb3 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_mysql_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index dba49585..35736915 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_oci_driver extends CI_DB_pdo_driver { @@ -142,9 +143,9 @@ public function version() } $version_string = parent::version(); - if (preg_match('#Release\s(?\d+(?:\.\d+)+)#', $version_string, $match)) + if (preg_match('#(Release\s)?(?\d+(?:\.\d+)+)#', $version_string, $match)) { - return $this->data_cache['version'] = $match[1]; + return $this->data_cache['version'] = $match['version']; } return FALSE; diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index b5d3eb14..0783cd53 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { @@ -150,9 +151,33 @@ protected function _alter_table($alter_type, $table, $field) */ protected function _attr_auto_increment(&$attributes, &$field) { - // Not supported - sequences and triggers must be used instead + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; } + // -------------------------------------------------------------------- + /** * Field attribute TYPE * diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index 93a6420e..6b7f2373 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_odbc_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php index 47226d7a..c9b82387 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 2d0c74b2..297cc6f5 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_pgsql_driver extends CI_DB_pdo_driver { @@ -255,7 +256,7 @@ protected function _list_columns($table = '') { return 'SELECT "column_name" FROM "information_schema"."columns" - WHERE LOWER("table_name") = '.$this->escape(strtolower($table)); + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); } // -------------------------------------------------------------------- @@ -270,7 +271,7 @@ public function field_data($table) { $sql = 'SELECT "column_name", "data_type", "character_maximum_length", "numeric_precision", "column_default" FROM "information_schema"."columns" - WHERE LOWER("table_name") = '.$this->escape(strtolower($table)); + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); if (($query = $this->query($sql)) === FALSE) { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index a4ccff40..cea20542 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { @@ -53,6 +54,13 @@ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { */ protected $_drop_table_if = 'DROP TABLE IF EXISTS'; + /** + * CREATE TABLE IF statement + * + * @var string + */ + protected $_create_table_if = 'CREATE TABLE IF NOT EXISTS'; + /** * UNSIGNED support * @@ -106,7 +114,7 @@ public function __construct(&$db) * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -154,7 +162,7 @@ protected function _alter_table($alter_type, $table, $field) } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index f55d9a6c..24c34f2a 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlite_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index 545b2a3d..b0edcbd6 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlite_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index 84109ae3..685b61e9 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlsrv_driver extends CI_DB_pdo_driver { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index b23c6d44..07eecea6 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlsrv_forge extends CI_DB_pdo_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_driver.php index 5ce27610..15d800b4 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_driver extends CI_DB { @@ -78,22 +79,12 @@ class CI_DB_postgre_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Class constructor + * Build DSN * - * Creates a DSN string to be used for db_connect() and db_pconnect() - * - * @param array $params * @return void */ - public function __construct($params) + protected function _build_dsn() { - parent::__construct($params); - - if ( ! empty($this->dsn)) - { - return; - } - $this->dsn === '' OR $this->dsn = ''; if (strpos($this->hostname, '/') !== FALSE) @@ -145,10 +136,11 @@ public function __construct($params) * Database connection * * @param bool $persistent - * @return resource + * @return resource|object */ public function db_connect($persistent = FALSE) { + empty($this->dsn) && $this->_build_dsn(); $this->conn_id = ($persistent === TRUE) ? pg_pconnect($this->dsn) : pg_connect($this->dsn); @@ -235,7 +227,7 @@ public function version() * Execute the query * * @param string $sql an SQL query - * @return resource + * @return resource|object */ protected function _execute($sql) { @@ -428,7 +420,7 @@ protected function _list_columns($table = '') { return 'SELECT "column_name" FROM "information_schema"."columns" - WHERE LOWER("table_name") = '.$this->escape(strtolower($table)); + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); } // -------------------------------------------------------------------- @@ -443,7 +435,7 @@ public function field_data($table) { $sql = 'SELECT "column_name", "data_type", "character_maximum_length", "numeric_precision", "column_default" FROM "information_schema"."columns" - WHERE LOWER("table_name") = '.$this->escape(strtolower($table)); + WHERE "table_schema" = \''.$this->schema.'\' AND LOWER("table_name") = '.$this->escape(strtolower($table)); if (($query = $this->query($sql)) === FALSE) { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_forge.php index 481e222b..2857fd51 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_forge extends CI_DB_forge { @@ -101,7 +102,7 @@ public function __construct(&$db) * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -149,7 +150,7 @@ protected function _alter_table($alter_type, $table, $field) } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_result.php b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_result.php index b0054dda..5e4145ea 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -46,7 +47,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_result extends CI_DB_result { @@ -126,7 +127,7 @@ public function field_data() */ public function free_result() { - if (is_resource($this->result_id)) + if ($this->result_id !== FALSE) { pg_free_result($this->result_id); $this->result_id = FALSE; diff --git a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_utility.php index 450aa36e..c8356d50 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/postgre/postgre_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 @@ -44,7 +45,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_driver.php index aec3d748..188f00c9 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_forge.php index 6aa9c61c..60aaa099 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_result.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_result.php index 30c93a26..1df9025e 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource @@ -44,7 +45,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_utility.php index 2c7f8099..5f9adf23 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite/sqlite_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_driver.php index 5d057ba5..be79ddd5 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_forge.php index 4019a952..5658b3e8 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_result.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_result.php index d656fed1..47fe9d2a 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,7 +45,7 @@ * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_utility.php index 1bdf3ae3..90316bcc 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlite3/sqlite3_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -42,7 +43,7 @@ * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_driver.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_driver.php index a22a8b31..78777948 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 @@ -48,7 +49,7 @@ * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_driver extends CI_DB { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_forge.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_forge.php index 90c3120a..dca7f75b 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_forge extends CI_DB_forge { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_result.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_result.php index e2649c66..a3a582b5 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 @@ -44,7 +45,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_result extends CI_DB_result { diff --git a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_utility.php b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_utility.php index 6dd01a99..e51bc723 100644 --- a/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/application/vendor/codeigniter/framework/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 @@ -42,7 +43,7 @@ * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_utility extends CI_DB_utility { diff --git a/application/vendor/codeigniter/framework/system/helpers/array_helper.php b/application/vendor/codeigniter/framework/system/helpers/array_helper.php index cb7eca68..0617fdec 100644 --- a/application/vendor/codeigniter/framework/system/helpers/array_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/array_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/array_helper.html + * @link https://codeigniter.com/userguide3/helpers/array_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/captcha_helper.php b/application/vendor/codeigniter/framework/system/helpers/captcha_helper.php index 37ef04b2..9fcbd1b2 100644 --- a/application/vendor/codeigniter/framework/system/helpers/captcha_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/captcha_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/captcha_helper.html + * @link https://codeigniter.com/userguide3/helpers/captcha_helper.html */ // ------------------------------------------------------------------------ @@ -94,10 +95,21 @@ function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = } } - if ($img_path === '' OR $img_url === '' - OR ! is_dir($img_path) OR ! is_really_writable($img_path) - OR ! extension_loaded('gd')) + if ( ! extension_loaded('gd')) { + log_message('error', 'create_captcha(): GD extension is not loaded.'); + return FALSE; + } + + if ($img_path === '' OR $img_url === '') + { + log_message('error', 'create_captcha(): $img_path and $img_url are required.'); + return FALSE; + } + + if ( ! is_dir($img_path) OR ! is_really_writable($img_path)) + { + log_message('error', "create_captcha(): '{$img_path}' is not a dir, nor is it writable."); return FALSE; } diff --git a/application/vendor/codeigniter/framework/system/helpers/cookie_helper.php b/application/vendor/codeigniter/framework/system/helpers/cookie_helper.php index b9c2cb68..abe492f8 100644 --- a/application/vendor/codeigniter/framework/system/helpers/cookie_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/cookie_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/cookie_helper.html + * @link https://codeigniter.com/userguide3/helpers/cookie_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/date_helper.php b/application/vendor/codeigniter/framework/system/helpers/date_helper.php index 5c660e2e..5b2f3e09 100644 --- a/application/vendor/codeigniter/framework/system/helpers/date_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/date_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/date_helper.html + * @link https://codeigniter.com/userguide3/helpers/date_helper.html */ // ------------------------------------------------------------------------ @@ -134,7 +135,7 @@ function mdate($datestr = '', $time = '') * * @todo Remove in version 3.1+. * @deprecated 3.0.0 Use PHP's native date() instead. - * @link http://www.php.net/manual/en/class.datetime.php#datetime.constants.types + * @link https://www.php.net/manual/en/class.datetime.php#datetime.constants.types * * @example date(DATE_RFC822, now()); // default * @example date(DATE_W3C, $time); // a different format and time diff --git a/application/vendor/codeigniter/framework/system/helpers/directory_helper.php b/application/vendor/codeigniter/framework/system/helpers/directory_helper.php index 73777bfb..d747a96b 100644 --- a/application/vendor/codeigniter/framework/system/helpers/directory_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/directory_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/directory_helper.html + * @link https://codeigniter.com/userguide3/helpers/directory_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/download_helper.php b/application/vendor/codeigniter/framework/system/helpers/download_helper.php index d8e30ae9..9b361c4b 100644 --- a/application/vendor/codeigniter/framework/system/helpers/download_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/download_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/download_helper.html + * @link https://codeigniter.com/userguide3/helpers/download_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/email_helper.php b/application/vendor/codeigniter/framework/system/helpers/email_helper.php index b2587597..ec0c4207 100644 --- a/application/vendor/codeigniter/framework/system/helpers/email_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/email_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/email_helper.html + * @link https://codeigniter.com/userguide3/helpers/email_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/file_helper.php b/application/vendor/codeigniter/framework/system/helpers/file_helper.php index cf00f6b5..a2adaf29 100644 --- a/application/vendor/codeigniter/framework/system/helpers/file_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/file_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/file_helper.html + * @link https://codeigniter.com/userguide3/helpers/file_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/form_helper.php b/application/vendor/codeigniter/framework/system/helpers/form_helper.php index 5910d8e1..ba74ff5e 100644 --- a/application/vendor/codeigniter/framework/system/helpers/form_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/form_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/form_helper.html + * @link https://codeigniter.com/userguide3/helpers/form_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/html_helper.php b/application/vendor/codeigniter/framework/system/helpers/html_helper.php index 76adcb23..93ecb1d3 100644 --- a/application/vendor/codeigniter/framework/system/helpers/html_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/html_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/html_helper.html + * @link https://codeigniter.com/userguide3/helpers/html_helper.html */ // ------------------------------------------------------------------------ @@ -133,7 +134,6 @@ function _list($type = 'ul', $list = array(), $attributes = '', $depth = 0) // Write the opening list tag .'<'.$type._stringify_attributes($attributes).">\n"; - // Cycle through the list elements. If an array is // encountered we will recursively call _list() diff --git a/application/vendor/codeigniter/framework/system/helpers/inflector_helper.php b/application/vendor/codeigniter/framework/system/helpers/inflector_helper.php index 1c14f4a3..91a5d84f 100644 --- a/application/vendor/codeigniter/framework/system/helpers/inflector_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/inflector_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/inflector_helper.html + * @link https://codeigniter.com/userguide3/helpers/inflector_helper.html */ // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/helpers/language_helper.php b/application/vendor/codeigniter/framework/system/helpers/language_helper.php index 2cefcc27..d6cc1c12 100644 --- a/application/vendor/codeigniter/framework/system/helpers/language_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/language_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/language_helper.html + * @link https://codeigniter.com/userguide3/helpers/language_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/number_helper.php b/application/vendor/codeigniter/framework/system/helpers/number_helper.php index 15a53ff7..27ad80fd 100644 --- a/application/vendor/codeigniter/framework/system/helpers/number_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/number_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/number_helper.html + * @link https://codeigniter.com/userguide3/helpers/number_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/path_helper.php b/application/vendor/codeigniter/framework/system/helpers/path_helper.php index 543e4c07..a8f78235 100644 --- a/application/vendor/codeigniter/framework/system/helpers/path_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/path_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/path_helper.html + * @link https://codeigniter.com/userguide3/helpers/path_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/security_helper.php b/application/vendor/codeigniter/framework/system/helpers/security_helper.php index b931c339..dc2b1a43 100644 --- a/application/vendor/codeigniter/framework/system/helpers/security_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/security_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/security_helper.html + * @link https://codeigniter.com/userguide3/helpers/security_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/smiley_helper.php b/application/vendor/codeigniter/framework/system/helpers/smiley_helper.php index 321e59ce..091e6dec 100644 --- a/application/vendor/codeigniter/framework/system/helpers/smiley_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/smiley_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/smiley_helper.html + * @link https://codeigniter.com/userguide3/helpers/smiley_helper.html * @deprecated 3.0.0 This helper is too specific for CI. */ diff --git a/application/vendor/codeigniter/framework/system/helpers/string_helper.php b/application/vendor/codeigniter/framework/system/helpers/string_helper.php index c7dd9697..7370f39f 100644 --- a/application/vendor/codeigniter/framework/system/helpers/string_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/string_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/string_helper.html + * @link https://codeigniter.com/userguide3/helpers/string_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/text_helper.php b/application/vendor/codeigniter/framework/system/helpers/text_helper.php index e1c5e246..506d45ac 100644 --- a/application/vendor/codeigniter/framework/system/helpers/text_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/text_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/text_helper.html + * @link https://codeigniter.com/userguide3/helpers/text_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/typography_helper.php b/application/vendor/codeigniter/framework/system/helpers/typography_helper.php index d308a57d..d51de084 100644 --- a/application/vendor/codeigniter/framework/system/helpers/typography_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/typography_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/typography_helper.html + * @link https://codeigniter.com/userguide3/helpers/typography_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/url_helper.php b/application/vendor/codeigniter/framework/system/helpers/url_helper.php index bebfd258..d1d7ec13 100644 --- a/application/vendor/codeigniter/framework/system/helpers/url_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/url_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/url_helper.html + * @link https://codeigniter.com/userguide3/helpers/url_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/helpers/xml_helper.php b/application/vendor/codeigniter/framework/system/helpers/xml_helper.php index 2639956f..5e0861e9 100644 --- a/application/vendor/codeigniter/framework/system/helpers/xml_helper.php +++ b/application/vendor/codeigniter/framework/system/helpers/xml_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/xml_helper.html + * @link https://codeigniter.com/userguide3/helpers/xml_helper.html */ // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/language/english/calendar_lang.php b/application/vendor/codeigniter/framework/system/language/english/calendar_lang.php index ce838142..35352d60 100644 --- a/application/vendor/codeigniter/framework/system/language/english/calendar_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/calendar_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/date_lang.php b/application/vendor/codeigniter/framework/system/language/english/date_lang.php index aa796b89..fd184df8 100644 --- a/application/vendor/codeigniter/framework/system/language/english/date_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/date_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/db_lang.php b/application/vendor/codeigniter/framework/system/language/english/db_lang.php index 4a680146..1bf424e5 100644 --- a/application/vendor/codeigniter/framework/system/language/english/db_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/db_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/email_lang.php b/application/vendor/codeigniter/framework/system/language/english/email_lang.php index df0fd29c..7ed083c9 100644 --- a/application/vendor/codeigniter/framework/system/language/english/email_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/email_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/form_validation_lang.php b/application/vendor/codeigniter/framework/system/language/english/form_validation_lang.php index bdb02544..a2e300ef 100644 --- a/application/vendor/codeigniter/framework/system/language/english/form_validation_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/form_validation_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/ftp_lang.php b/application/vendor/codeigniter/framework/system/language/english/ftp_lang.php index 70f5b086..7067b4b5 100644 --- a/application/vendor/codeigniter/framework/system/language/english/ftp_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/ftp_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/imglib_lang.php b/application/vendor/codeigniter/framework/system/language/english/imglib_lang.php index c34b087c..01ac9d34 100644 --- a/application/vendor/codeigniter/framework/system/language/english/imglib_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/imglib_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/migration_lang.php b/application/vendor/codeigniter/framework/system/language/english/migration_lang.php index 967d59cc..a3703628 100644 --- a/application/vendor/codeigniter/framework/system/language/english/migration_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/migration_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/number_lang.php b/application/vendor/codeigniter/framework/system/language/english/number_lang.php index f1e50bd1..38e3781d 100644 --- a/application/vendor/codeigniter/framework/system/language/english/number_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/number_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/pagination_lang.php b/application/vendor/codeigniter/framework/system/language/english/pagination_lang.php index 1d113dfb..808a61ea 100644 --- a/application/vendor/codeigniter/framework/system/language/english/pagination_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/pagination_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/profiler_lang.php b/application/vendor/codeigniter/framework/system/language/english/profiler_lang.php index 15729672..71a2afcb 100644 --- a/application/vendor/codeigniter/framework/system/language/english/profiler_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/profiler_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/unit_test_lang.php b/application/vendor/codeigniter/framework/system/language/english/unit_test_lang.php index b5a9cc4d..02366f0c 100644 --- a/application/vendor/codeigniter/framework/system/language/english/unit_test_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/unit_test_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/language/english/upload_lang.php b/application/vendor/codeigniter/framework/system/language/english/upload_lang.php index f5158a3f..bd1e2018 100644 --- a/application/vendor/codeigniter/framework/system/language/english/upload_lang.php +++ b/application/vendor/codeigniter/framework/system/language/english/upload_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/Cache.php b/application/vendor/codeigniter/framework/system/libraries/Cache/Cache.php index 450d57b8..d0c4c888 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/Cache.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/Cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_apc.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_apc.php index 8da8854e..22992044 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_apc.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_apc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 @@ -160,10 +161,10 @@ public function clean() * @param string user/filehits * @return mixed array on success, false on failure */ - public function cache_info($type = NULL) - { - return apc_cache_info($type); - } + public function cache_info($type = NULL) + { + return apc_cache_info($type); + } // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_dummy.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_dummy.php index fdb9042e..f3ca220f 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_dummy.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_dummy.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 @@ -138,10 +139,10 @@ public function clean() * @param string user/filehits * @return bool FALSE */ - public function cache_info($type = NULL) - { - return FALSE; - } + public function cache_info($type = NULL) + { + return FALSE; + } // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_file.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_file.php index bde35141..3a4be98a 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_file.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_file.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_memcached.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_memcached.php index bdc86a5d..89002de4 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_memcached.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_memcached.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_redis.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_redis.php index bff96fbf..e8dd9b3a 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_redis.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_redis.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -83,6 +84,13 @@ class CI_Cache_redis extends CI_Driver */ protected static $_delete_name; + /** + * sRem()/sRemove() method name depending on phpRedis version + * + * @var string + */ + protected static $_sRemove_name; + // ------------------------------------------------------------------------ /** @@ -104,9 +112,19 @@ public function __construct() return; } - isset(static::$_delete_name) OR static::$_delete_name = version_compare(phpversion('phpredis'), '5', '>=') - ? 'del' - : 'delete'; + if ( ! isset(static::$_delete_name, static::$_sRemove_name)) + { + if (version_compare(phpversion('redis'), '5', '>=')) + { + static::$_delete_name = 'del'; + static::$_sRemove_name = 'sRem'; + } + else + { + static::$_delete_name = 'delete'; + static::$_sRemove_name = 'sRemove'; + } + } $CI =& get_instance(); @@ -193,7 +211,7 @@ public function save($id, $data, $ttl = 60, $raw = FALSE) } else { - $this->_redis->sRemove('_ci_redis_serialized', $id); + $this->_redis->{static::$_sRemove_name}('_ci_redis_serialized', $id); } return $this->_redis->set($id, $data, $ttl); @@ -214,7 +232,7 @@ public function delete($key) return FALSE; } - $this->_redis->sRemove('_ci_redis_serialized', $key); + $this->_redis->{static::$_sRemove_name}('_ci_redis_serialized', $key); return TRUE; } diff --git a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_wincache.php b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_wincache.php index 1feaa158..bd18148f 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_wincache.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cache/drivers/Cache_wincache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -41,7 +42,7 @@ * CodeIgniter Wincache Caching Class * * Read more about Wincache functions here: - * http://www.php.net/manual/en/ref.wincache.php + * https://www.php.net/manual/en/ref.wincache.php * * @package CodeIgniter * @subpackage Libraries @@ -169,10 +170,10 @@ public function clean() * * @return mixed array on success, false on failure */ - public function cache_info() - { - return wincache_ucache_info(TRUE); - } + public function cache_info() + { + return wincache_ucache_info(TRUE); + } // ------------------------------------------------------------------------ diff --git a/application/vendor/codeigniter/framework/system/libraries/Calendar.php b/application/vendor/codeigniter/framework/system/libraries/Calendar.php index a6bdae50..8eefc82e 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Calendar.php +++ b/application/vendor/codeigniter/framework/system/libraries/Calendar.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/calendar.html + * @link https://codeigniter.com/userguide3/libraries/calendar.html */ class CI_Calendar { diff --git a/application/vendor/codeigniter/framework/system/libraries/Cart.php b/application/vendor/codeigniter/framework/system/libraries/Cart.php index 6a107752..f8244b15 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Cart.php +++ b/application/vendor/codeigniter/framework/system/libraries/Cart.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Shopping Cart * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/cart.html + * @link https://codeigniter.com/userguide3/libraries/cart.html * @deprecated 3.0.0 This class is too specific for CI. */ class CI_Cart { diff --git a/application/vendor/codeigniter/framework/system/libraries/Driver.php b/application/vendor/codeigniter/framework/system/libraries/Driver.php index 7e6cf4fa..84f0b6c3 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Driver.php +++ b/application/vendor/codeigniter/framework/system/libraries/Driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/application/vendor/codeigniter/framework/system/libraries/Email.php b/application/vendor/codeigniter/framework/system/libraries/Email.php index 10b74777..82fae128 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Email.php +++ b/application/vendor/codeigniter/framework/system/libraries/Email.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/email.html + * @link https://codeigniter.com/userguide3/libraries/email.html */ class CI_Email { @@ -397,7 +398,7 @@ public function __construct(array $config = array()) $this->initialize($config); $this->_safe_mode = ( ! is_php('5.4') && ini_get('safe_mode')); - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); log_message('info', 'Email Class Initialized'); } diff --git a/application/vendor/codeigniter/framework/system/libraries/Encrypt.php b/application/vendor/codeigniter/framework/system/libraries/Encrypt.php index 7ed185f1..4d1dae5d 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Encrypt.php +++ b/application/vendor/codeigniter/framework/system/libraries/Encrypt.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/encryption.html + * @link https://codeigniter.com/userguide3/libraries/encryption.html */ class CI_Encrypt { @@ -198,7 +199,7 @@ public function decode($string, $key = '') * This allows for backwards compatibility and a method to transition to the * new encryption algorithms. * - * For more details, see https://codeigniter.com/user_guide/installation/upgrade_200.html#encryption + * For more details, see https://codeigniter.com/userguide3/installation/upgrade_200.html#encryption * * @param string * @param int (mcrypt mode constant) diff --git a/application/vendor/codeigniter/framework/system/libraries/Encryption.php b/application/vendor/codeigniter/framework/system/libraries/Encryption.php index 4c1973fe..a1ad870a 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Encryption.php +++ b/application/vendor/codeigniter/framework/system/libraries/Encryption.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Libraries * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/encryption.html + * @link https://codeigniter.com/userguide3/libraries/encryption.html */ class CI_Encryption { @@ -161,7 +162,7 @@ public function __construct(array $params = array()) show_error('Encryption: Unable to find an available encryption driver.'); } - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); $this->initialize($params); if ( ! isset($this->_key) && self::strlen($key = config_item('encryption_key')) > 0) @@ -476,7 +477,7 @@ protected function _openssl_encrypt($data, $params) $iv = ($iv_size = openssl_cipher_iv_length($params['handle'])) ? $this->create_key($iv_size) - : NULL; + : ''; $data = openssl_encrypt( $data, @@ -585,7 +586,7 @@ protected function _mcrypt_decrypt($data, $params) } else { - $iv = NULL; + $iv = ''; } if (mcrypt_generic_init($params['handle'], $params['key'], $iv) < 0) @@ -632,7 +633,7 @@ protected function _openssl_decrypt($data, $params) } else { - $iv = NULL; + $iv = ''; } return empty($params['handle']) @@ -910,8 +911,8 @@ public function __get($key) protected static function strlen($str) { return (self::$func_overload) - ? mb_strlen($str, '8bit') - : strlen($str); + ? mb_strlen((string) $str, '8bit') + : strlen((string) $str); } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/libraries/Form_validation.php b/application/vendor/codeigniter/framework/system/libraries/Form_validation.php index fdf20201..024f0ed6 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Form_validation.php +++ b/application/vendor/codeigniter/framework/system/libraries/Form_validation.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Validation * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/form_validation.html + * @link https://codeigniter.com/userguide3/libraries/form_validation.html */ class CI_Form_validation { @@ -1056,7 +1057,7 @@ public function required($str) { return is_array($str) ? (empty($str) === FALSE) - : (trim($str) !== ''); + : (trim((string) $str) !== ''); } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/system/libraries/Ftp.php b/application/vendor/codeigniter/framework/system/libraries/Ftp.php index 4f0f5dfb..15a0887b 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Ftp.php +++ b/application/vendor/codeigniter/framework/system/libraries/Ftp.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/ftp.html + * @link https://codeigniter.com/userguide3/libraries/ftp.html */ class CI_FTP { @@ -202,7 +203,7 @@ protected function _login() */ protected function _is_conn() { - if ( ! is_resource($this->conn_id)) + if ($this->conn_id === FALSE) { if ($this->debug === TRUE) { diff --git a/application/vendor/codeigniter/framework/system/libraries/Image_lib.php b/application/vendor/codeigniter/framework/system/libraries/Image_lib.php index b89bc5b7..3f9698c1 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Image_lib.php +++ b/application/vendor/codeigniter/framework/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Image_lib * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/image_lib.html + * @link https://codeigniter.com/userguide3/libraries/image_lib.html */ class CI_Image_lib { diff --git a/application/vendor/codeigniter/framework/system/libraries/Javascript.php b/application/vendor/codeigniter/framework/system/libraries/Javascript.php index c9103945..8f2cf587 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Javascript.php +++ b/application/vendor/codeigniter/framework/system/libraries/Javascript.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Javascript * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/javascript.html + * @link https://codeigniter.com/userguide3/libraries/javascript.html * @deprecated 3.0.0 This was never a good idea in the first place. */ class CI_Javascript { diff --git a/application/vendor/codeigniter/framework/system/libraries/Javascript/Jquery.php b/application/vendor/codeigniter/framework/system/libraries/Javascript/Jquery.php index 485d1dc1..e06f1ba0 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Javascript/Jquery.php +++ b/application/vendor/codeigniter/framework/system/libraries/Javascript/Jquery.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Loader * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/javascript.html + * @link https://codeigniter.com/userguide3/libraries/javascript.html */ class CI_Jquery extends CI_Javascript { @@ -789,7 +790,7 @@ protected function _zebraTables($class = '', $odd = 'odd', $hover = '') /** * Corner Plugin * - * @link http://www.malsup.com/jquery/corner/ + * @link https://www.malsup.com/jquery/corner/ * @param string $element * @param string $corner_style * @return string diff --git a/application/vendor/codeigniter/framework/system/libraries/Migration.php b/application/vendor/codeigniter/framework/system/libraries/Migration.php index 1b780892..9ee92b6e 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Migration.php +++ b/application/vendor/codeigniter/framework/system/libraries/Migration.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -288,7 +289,7 @@ public function version($target_version) $this->_error_string = sprintf($this->lang->line('migration_class_doesnt_exist'), $class); return FALSE; } - elseif ( ! is_callable(array($class, $method))) + elseif ( ! method_exists($class, $method) OR ! (new ReflectionMethod($class, $method))->isPublic()) { $this->_error_string = sprintf($this->lang->line('migration_missing_'.$method.'_method'), $class); return FALSE; diff --git a/application/vendor/codeigniter/framework/system/libraries/Pagination.php b/application/vendor/codeigniter/framework/system/libraries/Pagination.php index 5d501a96..4d945a00 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Pagination.php +++ b/application/vendor/codeigniter/framework/system/libraries/Pagination.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Pagination * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/pagination.html + * @link https://codeigniter.com/userguide3/libraries/pagination.html */ class CI_Pagination { @@ -686,7 +687,7 @@ protected function _parse_attributes($attributes) /** * Add "rel" attribute * - * @link http://www.w3.org/TR/html5/links.html#linkTypes + * @link https://www.w3.org/TR/html5/links.html#linkTypes * @param string $type * @return string */ diff --git a/application/vendor/codeigniter/framework/system/libraries/Parser.php b/application/vendor/codeigniter/framework/system/libraries/Parser.php index d3c6500a..e0adec60 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Parser.php +++ b/application/vendor/codeigniter/framework/system/libraries/Parser.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Parser * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/parser.html + * @link https://codeigniter.com/userguide3/libraries/parser.html */ class CI_Parser { diff --git a/application/vendor/codeigniter/framework/system/libraries/Profiler.php b/application/vendor/codeigniter/framework/system/libraries/Profiler.php index 77af7b99..d423c148 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Profiler.php +++ b/application/vendor/codeigniter/framework/system/libraries/Profiler.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -50,7 +51,7 @@ * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/profiling.html + * @link https://codeigniter.com/userguide3/general/profiling.html */ class CI_Profiler { @@ -105,7 +106,7 @@ public function __construct($config = array()) { if ( ! isset($config[$section])) { - $this->_compile_{$section} = TRUE; + $this->{'_compile_'.$section} = TRUE; } } @@ -135,7 +136,7 @@ public function set_sections($config) { if (in_array($method, $this->_available_sections)) { - $this->_compile_{$method} = ($enable !== FALSE); + $this->{'_compile_'.$method} = ($enable !== FALSE); } } } @@ -486,17 +487,17 @@ protected function _compile_config() { $pre = ''; $pre_close = ''; - + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - + $pre = '
' ;
- 				$pre_close = '
'; + $pre_close = ''; } $output .= '' - .$config.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$config.'  '.$pre.htmlspecialchars((string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -524,17 +525,17 @@ protected function _compile_session_data() { $pre = ''; $pre_close = ''; - + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - + $pre = '
' ;
- 				$pre_close = '
'; + $pre_close = ''; } $output .= '' - .$key.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$key.'  '.$pre.htmlspecialchars((string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -554,7 +555,7 @@ public function run() foreach ($this->_available_sections as $section) { - if ($this->_compile_{$section} !== FALSE) + if ($this->{'_compile_'.$section} !== FALSE) { $func = '_compile_'.$section; $output .= $this->{$func}(); diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/CI_Session_driver_interface.php b/application/vendor/codeigniter/framework/system/libraries/Session/CI_Session_driver_interface.php new file mode 100644 index 00000000..23a0dfd5 --- /dev/null +++ b/application/vendor/codeigniter/framework/system/libraries/Session/CI_Session_driver_interface.php @@ -0,0 +1,60 @@ +driver = $driver; + } + + public function open($save_path, $name) + { + return $this->driver->open($save_path, $name); + } + + public function close() + { + return $this->driver->close(); + } + + public function read($id) + { + return $this->driver->read($id); + } + + public function write($id, $data) + { + return $this->driver->write($id, $data); + } + + public function destroy($id) + { + return $this->driver->destroy($id); + } + + public function gc($maxlifetime) + { + return $this->driver->gc($maxlifetime); + } + + public function updateTimestamp($id, $data) + { + return $this->driver->updateTimestamp($id, $data); + } + + public function validateId($id) + { + return $this->driver->validateId($id); + } +} diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/PHP8SessionWrapper.php b/application/vendor/codeigniter/framework/system/libraries/Session/PHP8SessionWrapper.php new file mode 100644 index 00000000..41889bc6 --- /dev/null +++ b/application/vendor/codeigniter/framework/system/libraries/Session/PHP8SessionWrapper.php @@ -0,0 +1,100 @@ +driver = $driver; + } + + public function open(string $save_path, string $name): bool + { + return $this->driver->open($save_path, $name); + } + + public function close(): bool + { + return $this->driver->close(); + } + + #[\ReturnTypeWillChange] + public function read(string $id): mixed + { + return $this->driver->read($id); + } + + public function write(string $id, string $data): bool + { + return $this->driver->write($id, $data); + } + + public function destroy(string $id): bool + { + return $this->driver->destroy($id); + } + + #[\ReturnTypeWillChange] + public function gc(int $maxlifetime): mixed + { + return $this->driver->gc($maxlifetime); + } + + public function updateTimestamp(string $id, string$data): bool + { + return $this->driver->updateTimestamp($id, $data); + } + + public function validateId(string $id): bool + { + return $this->driver->validateId($id); + } +} diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/Session.php b/application/vendor/codeigniter/framework/system/libraries/Session/Session.php index 9b834f86..a211ce31 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/Session.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/Session.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session { @@ -102,31 +103,24 @@ public function __construct(array $params = array()) $this->_configure($params); $this->_config['_sid_regexp'] = $this->_sid_regexp; - $class = new $class($this->_config); - if ($class instanceof SessionHandlerInterface) + $class = new $class($this->_config); + $wrapper = new CI_SessionWrapper($class); + if (is_php('5.4')) { - if (is_php('5.4')) - { - session_set_save_handler($class, TRUE); - } - else - { - session_set_save_handler( - array($class, 'open'), - array($class, 'close'), - array($class, 'read'), - array($class, 'write'), - array($class, 'destroy'), - array($class, 'gc') - ); - - register_shutdown_function('session_write_close'); - } + session_set_save_handler($wrapper, TRUE); } else { - log_message('error', "Session: Driver '".$this->_driver."' doesn't implement SessionHandlerInterface. Aborting."); - return; + session_set_save_handler( + array($wrapper, 'open'), + array($wrapper, 'close'), + array($wrapper, 'read'), + array($wrapper, 'write'), + array($wrapper, 'destroy'), + array($wrapper, 'gc') + ); + + register_shutdown_function('session_write_close'); } // Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers @@ -160,15 +154,36 @@ public function __construct(array $params = array()) // unless it is being currently created or regenerated elseif (isset($_COOKIE[$this->_config['cookie_name']]) && $_COOKIE[$this->_config['cookie_name']] === session_id()) { - setcookie( - $this->_config['cookie_name'], - session_id(), - (empty($this->_config['cookie_lifetime']) ? 0 : time() + $this->_config['cookie_lifetime']), - $this->_config['cookie_path'], - $this->_config['cookie_domain'], - $this->_config['cookie_secure'], - TRUE - ); + $expires = empty($this->_config['cookie_lifetime']) ? 0 : time() + $this->_config['cookie_lifetime']; + if (is_php('7.3')) + { + setcookie( + $this->_config['cookie_name'], + session_id(), + array( + 'expires' => $expires, + 'path' => $this->_config['cookie_path'], + 'domain' => $this->_config['cookie_domain'], + 'secure' => $this->_config['cookie_secure'], + 'httponly' => TRUE, + 'samesite' => $this->_config['cookie_samesite'] + ) + ); + } + else + { + $header = 'Set-Cookie: '.$this->_config['cookie_name'].'='.session_id(); + $header .= empty($expires) ? '' : '; Expires='.gmdate('D, d-M-Y H:i:s T', $expires).'; Max-Age='.$this->_config['cookie_lifetime']; + $header .= '; Path='.$this->_config['cookie_path']; + $header .= ($this->_config['cookie_domain'] !== '' ? '; Domain='.$this->_config['cookie_domain'] : ''); + $header .= ($this->_config['cookie_secure'] ? '; Secure' : '').'; HttpOnly; SameSite='.$this->_config['cookie_samesite']; + header($header); + } + + if ( ! $this->_config['cookie_secure'] && $this->_config['cookie_samesite'] === 'None') + { + log_message('error', "Session: '".$this->_config['cookie_name']."' cookie sent with SameSite=None, but without Secure attribute.'"); + } } $this->_ci_init_vars(); @@ -192,6 +207,12 @@ protected function _ci_load_classes($driver) { // PHP 5.4 compatibility interface_exists('SessionHandlerInterface', FALSE) OR require_once(BASEPATH.'libraries/Session/SessionHandlerInterface.php'); + // PHP 7 compatibility + interface_exists('SessionUpdateTimestampHandlerInterface', FALSE) OR require_once(BASEPATH.'libraries/Session/SessionUpdateTimestampHandlerInterface.php'); + + require_once(BASEPATH.'libraries/Session/CI_Session_driver_interface.php'); + $wrapper = is_php('8.0') ? 'PHP8SessionWrapper' : 'OldSessionWrapper'; + require_once(BASEPATH.'libraries/Session/'.$wrapper.'.php'); $prefix = config_item('subclass_prefix'); @@ -286,13 +307,43 @@ protected function _configure(&$params) isset($params['cookie_domain']) OR $params['cookie_domain'] = config_item('cookie_domain'); isset($params['cookie_secure']) OR $params['cookie_secure'] = (bool) config_item('cookie_secure'); - session_set_cookie_params( - $params['cookie_lifetime'], - $params['cookie_path'], - $params['cookie_domain'], - $params['cookie_secure'], - TRUE // HttpOnly; Yes, this is intentional and not configurable for security reasons - ); + isset($params['cookie_samesite']) OR $params['cookie_samesite'] = config_item('sess_samesite'); + if ( ! isset($params['cookie_samesite']) && is_php('7.3')) + { + $params['cookie_samesite'] = ini_get('session.cookie_samesite'); + } + + if (isset($params['cookie_samesite'])) + { + $params['cookie_samesite'] = ucfirst(strtolower($params['cookie_samesite'])); + in_array($params['cookie_samesite'], array('Lax', 'Strict', 'None'), TRUE) OR $params['cookie_samesite'] = 'Lax'; + } + else + { + $params['cookie_samesite'] = 'Lax'; + } + + if (is_php('7.3')) + { + session_set_cookie_params(array( + 'lifetime' => $params['cookie_lifetime'], + 'path' => $params['cookie_path'], + 'domain' => $params['cookie_domain'], + 'secure' => $params['cookie_secure'], + 'httponly' => TRUE, + 'samesite' => $params['cookie_samesite'] + )); + } + else + { + session_set_cookie_params( + $params['cookie_lifetime'], + $params['cookie_path'].'; SameSite='.$params['cookie_samesite'], + $params['cookie_domain'], + $params['cookie_secure'], + TRUE // HttpOnly; Yes, this is intentional and not configurable for security reasons + ); + } if (empty($expiration)) { @@ -415,9 +466,7 @@ protected function _ci_init_vars() { $_SESSION['__ci_vars'][$key] = 'old'; } - // Hacky, but 'old' will (implicitly) always be less than time() ;) - // DO NOT move this above the 'new' check! - elseif ($value < $current_time) + elseif ($value === 'old' || $value < $current_time) { unset($_SESSION[$key], $_SESSION['__ci_vars'][$key]); } @@ -725,7 +774,7 @@ public function sess_regenerate($destroy = FALSE) * * Legacy CI_Session compatibility method * - * @returns array + * @return array */ public function &get_userdata() { diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/SessionHandlerInterface.php b/application/vendor/codeigniter/framework/system/libraries/Session/SessionHandlerInterface.php index 240c5f54..eadb63c1 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/SessionHandlerInterface.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/SessionHandlerInterface.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,9 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ interface SessionHandlerInterface { diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php b/application/vendor/codeigniter/framework/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php new file mode 100644 index 00000000..fe4a321a --- /dev/null +++ b/application/vendor/codeigniter/framework/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php @@ -0,0 +1,56 @@ +_config['cookie_name']]) && ! $this->validateSessionId($_COOKIE[$this->_config['cookie_name']])) + if ($this->_success === 0 && isset($_COOKIE[$this->_config['cookie_name']]) && ! $this->validateId($_COOKIE[$this->_config['cookie_name']])) { unset($_COOKIE[$this->_config['cookie_name']]); } @@ -139,14 +140,28 @@ public function php5_validate_id() */ protected function _cookie_destroy() { + if ( ! is_php('7.3')) + { + $header = 'Set-Cookie: '.$this->_config['cookie_name'].'='; + $header .= '; Expires='.gmdate('D, d-M-Y H:i:s T', 1).'; Max-Age=-1'; + $header .= '; Path='.$this->_config['cookie_path']; + $header .= ($this->_config['cookie_domain'] !== '' ? '; Domain='.$this->_config['cookie_domain'] : ''); + $header .= ($this->_config['cookie_secure'] ? '; Secure' : '').'; HttpOnly; SameSite='.$this->_config['cookie_samesite']; + header($header); + return; + } + return setcookie( $this->_config['cookie_name'], - NULL, - 1, - $this->_config['cookie_path'], - $this->_config['cookie_domain'], - $this->_config['cookie_secure'], - TRUE + '', + array( + 'expires' => 1, + 'path' => $this->_config['cookie_path'], + 'domain' => $this->_config['cookie_domain'], + 'secure' => $this->_config['cookie_secure'], + 'httponly' => TRUE, + 'samesite' => $this->_config['cookie_samesite'] + ) ); } diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_database_driver.php b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_database_driver.php index 89afe345..4b475364 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_database_driver.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_database_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,9 +45,9 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ -class CI_Session_database_driver extends CI_Session_driver implements SessionHandlerInterface { +class CI_Session_database_driver extends CI_Session_driver implements CI_Session_driver_interface { /** * DB object @@ -343,16 +344,41 @@ public function gc($maxlifetime) // -------------------------------------------------------------------- + /** + * Update Timestamp + * + * Update session timestamp without modifying data + * + * @param string $id Session ID + * @param string $data Unknown & unused + * @return bool + */ + public function updateTimestamp($id, $unknown) + { + // Prevent previous QB calls from messing with our queries + $this->_db->reset_query(); + + $this->_db->where('id', $id); + if ($this->_config['match_ip']) + { + $this->_db->where('ip_address', $_SERVER['REMOTE_ADDR']); + } + + return (bool) $this->_db->update($this->_config['save_path'], array('timestamp' => time())); + } + + // -------------------------------------------------------------------- + /** * Validate ID * * Checks whether a session ID record exists server-side, * to enforce session.use_strict_mode. * - * @param string $id + * @param string $id Session ID * @return bool */ - public function validateSessionId($id) + public function validateId($id) { // Prevent previous QB calls from messing with our queries $this->_db->reset_query(); diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_files_driver.php b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_files_driver.php index 2899b7de..be0dc9ed 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_files_driver.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_files_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,11 +30,12 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource -*/ + */ defined('BASEPATH') OR exit('No direct script access allowed'); /** @@ -44,9 +45,9 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ -class CI_Session_files_driver extends CI_Session_driver implements SessionHandlerInterface { +class CI_Session_files_driver extends CI_Session_driver implements CI_Session_driver_interface { /** * Save path @@ -115,7 +116,7 @@ public function __construct(&$params) $this->_sid_regexp = $this->_config['_sid_regexp']; - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); } // ------------------------------------------------------------------------ @@ -196,6 +197,10 @@ public function read($session_id) $this->_fingerprint = md5(''); return ''; } + + // Prevent possible data corruption + // See https://github.com/bcit-ci/CodeIgniter/issues/5857 + clearstatcache(TRUE, $this->_file_path.$session_id); } // We shouldn't need this, but apparently we do ... // See https://github.com/bcit-ci/CodeIgniter/issues/4039 @@ -395,16 +400,32 @@ public function gc($maxlifetime) // -------------------------------------------------------------------- + /** + * Update Timestamp + * + * Update session timestamp without modifying data + * + * @param string $id Session ID + * @param string $data Unknown & unused + * @return bool + */ + public function updateTimestamp($id, $unknown) + { + return touch($this->_file_path.$id); + } + + // -------------------------------------------------------------------- + /** * Validate ID * * Checks whether a session ID record exists server-side, * to enforce session.use_strict_mode. * - * @param string $id + * @param string $id Session ID * @return bool */ - public function validateSessionId($id) + public function validateId($id) { $result = is_file($this->_file_path.$id); clearstatcache(TRUE, $this->_file_path.$id); diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_memcached_driver.php b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_memcached_driver.php index 854adf82..d1401630 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_memcached_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,9 +45,9 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ -class CI_Session_memcached_driver extends CI_Session_driver implements SessionHandlerInterface { +class CI_Session_memcached_driver extends CI_Session_driver implements CI_Session_driver_interface { /** * Memcached instance @@ -294,16 +295,32 @@ public function gc($maxlifetime) // -------------------------------------------------------------------- + /** + * Update Timestamp + * + * Update session timestamp without modifying data + * + * @param string $id Session ID + * @param string $data Unknown & unused + * @return bool + */ + public function updateTimestamp($id, $unknown) + { + return $this->_memcached->touch($this->_key_prefix.$id, $this->_config['expiration']); + } + + // -------------------------------------------------------------------- + /** * Validate ID * * Checks whether a session ID record exists server-side, * to enforce session.use_strict_mode. * - * @param string $id + * @param string $id Session ID * @return bool */ - public function validateSessionId($id) + public function validateId($id) { $this->_memcached->get($this->_key_prefix.$id); return ($this->_memcached->getResultCode() === Memcached::RES_SUCCESS); diff --git a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_redis_driver.php b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_redis_driver.php index df38174b..269dfcd6 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_redis_driver.php +++ b/application/vendor/codeigniter/framework/system/libraries/Session/drivers/Session_redis_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 @@ -44,9 +45,9 @@ * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ -class CI_Session_redis_driver extends CI_Session_driver implements SessionHandlerInterface { +class CI_Session_redis_driver extends CI_Session_driver implements CI_Session_driver_interface { /** * phpRedis instance @@ -354,16 +355,32 @@ public function gc($maxlifetime) // -------------------------------------------------------------------- + /** + * Update Timestamp + * + * Update session timestamp without modifying data + * + * @param string $id Session ID + * @param string $data Unknown & unused + * @return bool + */ + public function updateTimestamp($id, $unknown) + { + return $this->_redis->{$this->_setTimeout_name}($this->_key_prefix.$id, $this->_config['expiration']); + } + + // -------------------------------------------------------------------- + /** * Validate ID * * Checks whether a session ID record exists server-side, * to enforce session.use_strict_mode. * - * @param string $id + * @param string $id Session ID * @return bool */ - public function validateSessionId($id) + public function validateId($id) { return (bool) $this->_redis->exists($this->_key_prefix.$id); } diff --git a/application/vendor/codeigniter/framework/system/libraries/Table.php b/application/vendor/codeigniter/framework/system/libraries/Table.php index 06e8d709..35f456a6 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Table.php +++ b/application/vendor/codeigniter/framework/system/libraries/Table.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category HTML Tables * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/table.html + * @link https://codeigniter.com/userguide3/libraries/table.html */ class CI_Table { diff --git a/application/vendor/codeigniter/framework/system/libraries/Trackback.php b/application/vendor/codeigniter/framework/system/libraries/Trackback.php index 07f066d0..9246ec6e 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Trackback.php +++ b/application/vendor/codeigniter/framework/system/libraries/Trackback.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category Trackbacks * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/trackback.html + * @link https://codeigniter.com/userguide3/libraries/trackback.html */ class CI_Trackback { diff --git a/application/vendor/codeigniter/framework/system/libraries/Typography.php b/application/vendor/codeigniter/framework/system/libraries/Typography.php index e67138c1..108bc772 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Typography.php +++ b/application/vendor/codeigniter/framework/system/libraries/Typography.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/typography.html + * @link https://codeigniter.com/userguide3/libraries/typography.html */ class CI_Typography { diff --git a/application/vendor/codeigniter/framework/system/libraries/Unit_test.php b/application/vendor/codeigniter/framework/system/libraries/Unit_test.php index 631d583b..e1b94f0a 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Unit_test.php +++ b/application/vendor/codeigniter/framework/system/libraries/Unit_test.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category UnitTesting * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/unit_testing.html + * @link https://codeigniter.com/userguide3/libraries/unit_testing.html */ class CI_Unit_test { diff --git a/application/vendor/codeigniter/framework/system/libraries/Upload.php b/application/vendor/codeigniter/framework/system/libraries/Upload.php index 29f9f5ff..434b6b13 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Upload.php +++ b/application/vendor/codeigniter/framework/system/libraries/Upload.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -44,7 +45,7 @@ * @subpackage Libraries * @category Uploads * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/file_uploading.html + * @link https://codeigniter.com/userguide3/libraries/file_uploading.html */ class CI_Upload { @@ -867,7 +868,7 @@ public function is_image() $this->file_type = 'image/jpeg'; } - $img_mimes = array('image/gif', 'image/jpeg', 'image/png'); + $img_mimes = array('image/gif', 'image/jpeg', 'image/png', 'image/webp'); return in_array($this->file_type, $img_mimes, TRUE); } @@ -901,7 +902,7 @@ public function is_allowed_filetype($ignore_mime = FALSE) } // Images get some additional checks - if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png'), TRUE) && @getimagesize($this->file_temp) === FALSE) + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png', 'webp'), TRUE) && @getimagesize($this->file_temp) === FALSE) { return FALSE; } @@ -1227,7 +1228,7 @@ protected function _file_mime_type($file) if (function_exists('finfo_file')) { $finfo = @finfo_open(FILEINFO_MIME); - if (is_resource($finfo)) // It is possible that a FALSE value is returned, if there is no magic MIME database file found on the system + if ($finfo !== FALSE) // It is possible that a FALSE value is returned, if there is no magic MIME database file found on the system { $mime = @finfo_file($finfo, $file['tmp_name']); finfo_close($finfo); diff --git a/application/vendor/codeigniter/framework/system/libraries/User_agent.php b/application/vendor/codeigniter/framework/system/libraries/User_agent.php index a70511fc..6dfabda2 100644 --- a/application/vendor/codeigniter/framework/system/libraries/User_agent.php +++ b/application/vendor/codeigniter/framework/system/libraries/User_agent.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -46,7 +47,7 @@ * @subpackage Libraries * @category User Agent * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/user_agent.html + * @link https://codeigniter.com/userguide3/libraries/user_agent.html */ class CI_User_agent { @@ -498,7 +499,7 @@ public function is_referral() else { $referer_host = @parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); - $own_host = parse_url(config_item('base_url'), PHP_URL_HOST); + $own_host = parse_url((string) config_item('base_url'), PHP_URL_HOST); $this->referer = ($referer_host && $referer_host !== $own_host); } diff --git a/application/vendor/codeigniter/framework/system/libraries/Xmlrpc.php b/application/vendor/codeigniter/framework/system/libraries/Xmlrpc.php index 690b245b..a22841cc 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Xmlrpc.php +++ b/application/vendor/codeigniter/framework/system/libraries/Xmlrpc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -51,7 +52,7 @@ * @subpackage Libraries * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class CI_Xmlrpc { @@ -559,7 +560,7 @@ public function send_response($response) * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Client extends CI_Xmlrpc { @@ -780,7 +781,7 @@ public function sendPayload($msg) * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Response { @@ -1030,7 +1031,7 @@ public function iso8601_decode($time, $utc = FALSE) * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Message extends CI_Xmlrpc { @@ -1649,7 +1650,7 @@ public function decode_message($param) * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Values extends CI_Xmlrpc { @@ -1911,10 +1912,10 @@ public function scalarval() * @param int unix timestamp * @param bool * @return string - */ + */ public function iso8601_encode($time, $utc = FALSE) { - return ($utc) ? strftime('%Y%m%dT%H:%i:%s', $time) : gmstrftime('%Y%m%dT%H:%i:%s', $time); + return ($utc) ? date('Ymd\TH:i:s', $time) : gmdate('Ymd\TH:i:s', $time); } } // END XML_RPC_Values Class diff --git a/application/vendor/codeigniter/framework/system/libraries/Xmlrpcs.php b/application/vendor/codeigniter/framework/system/libraries/Xmlrpcs.php index e70b8039..b91d3fcb 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Xmlrpcs.php +++ b/application/vendor/codeigniter/framework/system/libraries/Xmlrpcs.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -56,7 +57,7 @@ * @subpackage Libraries * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class CI_Xmlrpcs extends CI_Xmlrpc { @@ -348,7 +349,7 @@ protected function _execute($m) return new XML_RPC_Response(0, $this->xmlrpcerr['unknown_method'], $this->xmlrpcstr['unknown_method']); } } - elseif (($objectCall && ! is_callable(array($method_parts[0], $method_parts[1]))) + elseif (($objectCall && ( ! method_exists($method_parts[0], $method_parts[1]) OR ! (new ReflectionMethod($method_parts[0], $method_parts[1]))->isPublic())) OR ( ! $objectCall && ! is_callable($this->methods[$methName]['function'])) ) { diff --git a/application/vendor/codeigniter/framework/system/libraries/Zip.php b/application/vendor/codeigniter/framework/system/libraries/Zip.php index c0a14023..6b508191 100644 --- a/application/vendor/codeigniter/framework/system/libraries/Zip.php +++ b/application/vendor/codeigniter/framework/system/libraries/Zip.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2019 - 2022, CodeIgniter Foundation * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -30,6 +30,7 @@ * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2019 - 2022, CodeIgniter Foundation (https://codeigniter.com/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 @@ -50,7 +51,7 @@ * @subpackage Libraries * @category Encryption * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/zip.html + * @link https://codeigniter.com/userguide3/libraries/zip.html */ class CI_Zip { @@ -119,7 +120,7 @@ class CI_Zip { */ public function __construct() { - isset(self::$func_overload) OR self::$func_overload = (extension_loaded('mbstring') && ini_get('mbstring.func_overload')); + isset(self::$func_overload) OR self::$func_overload = ( ! is_php('8.0') && extension_loaded('mbstring') && @ini_get('mbstring.func_overload')); $this->now = time(); log_message('info', 'Zip Compression Class Initialized'); @@ -406,13 +407,14 @@ public function get_zip() return FALSE; } - return $this->zipdata - .$this->directory."\x50\x4b\x05\x06\x00\x00\x00\x00" + // @see https://github.com/bcit-ci/CodeIgniter/issues/5864 + $footer = $this->directory."\x50\x4b\x05\x06\x00\x00\x00\x00" .pack('v', $this->entries) // total # of entries "on this disk" .pack('v', $this->entries) // total # of entries overall .pack('V', self::strlen($this->directory)) // size of central dir .pack('V', self::strlen($this->zipdata)) // offset to start of central dir ."\x00\x00"; // .zip file comment length + return $this->zipdata.$footer; } // -------------------------------------------------------------------- diff --git a/application/vendor/codeigniter/framework/user_guide/.buildinfo b/application/vendor/codeigniter/framework/user_guide/.buildinfo deleted file mode 100644 index bec16c4f..00000000 --- a/application/vendor/codeigniter/framework/user_guide/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 6b49d1813643817be290c380a3028e52 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/application/vendor/codeigniter/framework/user_guide/DCO.html b/application/vendor/codeigniter/framework/user_guide/DCO.html deleted file mode 100644 index d5c0a870..00000000 --- a/application/vendor/codeigniter/framework/user_guide/DCO.html +++ /dev/null @@ -1,517 +0,0 @@ - - - - - - - - - - Developer’s Certificate of Origin 1.1 — CodeIgniter 3.1.11 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -
-

Developer’s Certificate of Origin 1.1

-

By making a contribution to this project, I certify that:

-
    -
  1. The contribution was created in whole or in part by me and I -have the right to submit it under the open source license -indicated in the file; or
  2. -
  3. The contribution is based upon previous work that, to the best -of my knowledge, is covered under an appropriate open source -license and I have the right under that license to submit that -work with modifications, whether created in whole or in part -by me, under the same open source license (unless I am -permitted to submit under a different license), as indicated -in the file; or
  4. -
  5. The contribution was provided directly to me by some other -person who certified (1), (2) or (3) and I have not modified -it.
  6. -
  7. I understand and agree that this project and the contribution -are public and that a record of the contribution (including all -personal information I submit with it, including my sign-off) is -maintained indefinitely and may be redistributed consistent with -this project or the open source license(s) involved.
  8. -
-
- - -
-
- - - - -
- -
-

- © Copyright 2014 - 2019, British Columbia Institute of Technology. - Last updated on Sep 19, 2019. -

-
- - Built with Sphinx using a theme provided by Read the Docs. - -
-
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/application/vendor/codeigniter/framework/user_guide/_downloads/ELDocs.tmbundle.zip b/application/vendor/codeigniter/framework/user_guide/_downloads/ELDocs.tmbundle.zip deleted file mode 100644 index f7a11b36..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_downloads/ELDocs.tmbundle.zip and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_images/appflowchart.gif b/application/vendor/codeigniter/framework/user_guide/_images/appflowchart.gif deleted file mode 100644 index 422332c9..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_images/appflowchart.gif and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_images/smile.gif b/application/vendor/codeigniter/framework/user_guide/_images/smile.gif deleted file mode 100644 index bf092250..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_images/smile.gif and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/ajax-loader.gif b/application/vendor/codeigniter/framework/user_guide/_static/ajax-loader.gif deleted file mode 100644 index 61faf8ca..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/ajax-loader.gif and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/basic.css b/application/vendor/codeigniter/framework/user_guide/_static/basic.css deleted file mode 100644 index 6df76b0a..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/basic.css +++ /dev/null @@ -1,639 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox input[type="text"] { - width: 170px; -} - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -dl { - margin-bottom: 15px; -} - -dd p { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, .highlighted { - background-color: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: relative; - left: 0px; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/application/vendor/codeigniter/framework/user_guide/_static/ci-icon.ico b/application/vendor/codeigniter/framework/user_guide/_static/ci-icon.ico deleted file mode 100644 index 7ecfce21..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/ci-icon.ico and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/comment-bright.png b/application/vendor/codeigniter/framework/user_guide/_static/comment-bright.png deleted file mode 100644 index 15e27edb..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/comment-bright.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/comment-close.png b/application/vendor/codeigniter/framework/user_guide/_static/comment-close.png deleted file mode 100644 index 4d91bcf5..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/comment-close.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/comment.png b/application/vendor/codeigniter/framework/user_guide/_static/comment.png deleted file mode 100644 index dfbc0cbd..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/comment.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/css/badge_only.css b/application/vendor/codeigniter/framework/user_guide/_static/css/badge_only.css deleted file mode 100644 index 7e17fb14..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/css/badge_only.css +++ /dev/null @@ -1,2 +0,0 @@ -.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:0.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}} -/*# sourceMappingURL=badge_only.css.map */ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/css/citheme.css b/application/vendor/codeigniter/framework/user_guide/_static/css/citheme.css deleted file mode 100644 index a2a3b3e9..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/css/citheme.css +++ /dev/null @@ -1,88 +0,0 @@ -@import 'theme.css'; - -.highlighted { - padding: 0px !important; - font-weight: inherit !important; - background-color: #f1d40f !important; -} - -#nav { - background-color: #494949; - margin: 0; - padding: 0; - display: none; -} - -#nav2 { - background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAMgAzAwERAAIRAQMRAf/EAFkAAQADAQAAAAAAAAAAAAAAAAABBQcIAQEAAAAAAAAAAAAAAAAAAAAAEAABAgYDAAAAAAAAAAAAAAAAAVERAtMEFJRVBxgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMRAAAAAAAA7a87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wN/wJGAYEjAMCRgGBIwDAkYBgSMAwJGAsoIwCCMAgjAIIwCCMAgjAIIwEgAAAAAAAAAAAAAAAAAAAAAAAH//2Q==) repeat-x scroll left top transparent; - margin: 0; - padding: 0 310px 0 0; - text-align: right; - display: none; -} - -#nav_inner { - background-color: transparent; - font-family: Lucida Grande,Verdana,Geneva,sans-serif; - font-size: 11px; - margin: 0; - padding: 8px 12px 0 20px; -} - -div#pulldown-menu { - -moz-column-count: 5; - -moz-column-gap: 20px; - -webkit-column-count: 5; - -webkit-column-gap: 20px; - column-count: 5; - column-gap: 20px; - -webkit-column-rule: 1px groove #b8b8b8; - -moz-column-rule: 1px groove #b8b8b8; - column-rule: 1px groove #b8b8b8; -} - -#pulldown-menu > ul { - padding-top: 10px; - padding-bottom: 10px; - -webkit-column-break-inside: avoid; /*Chrome, Safari*/ - display: table; /*Firefox*/ - break-inside: avoid; /*IE 10+ theoretically*/ -} - -#pulldown-menu ul li.toctree-l2 { - font-size: 0.82em; - margin-left: 20px; - list-style-image: url(data:image/gif;base64,R0lGODlhCwAJALMJAO7u7uTk5PLy8unp6fb29t7e3vj4+Li4uIWFheTk5AAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAALAAkAAAQoMJ1JqTQ4Z3SI98jHCWSJkByArCyiHkMsIzEX3DeCc0Xv+4hEa5iIAAA7); -} - -#pulldown-menu ul li.toctree-l1 a { - color: #ffffff; - text-decoration: none; - font-size: 12px; - font-family: "Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif; - font-weight: 700; -} - -#pulldown-menu ul li.toctree-l2 a { - text-decoration: none; - font-size: 11px; - line-height: 1.4em; - font-weight: 300; - font-family: Lucida Grande,Verdana,Geneva,sans-serif; - color: #aaaaaa; -} - -/*hide pulldown menu on mobile devices*/ -@media (max-width: 768px) { /*tablet size defined by theme*/ - #closeMe { - display: none; - } - - #pulldown { - display: none; - } - - #openToc { - display: none; - } -} \ No newline at end of file diff --git a/application/vendor/codeigniter/framework/user_guide/_static/css/theme.css b/application/vendor/codeigniter/framework/user_guide/_static/css/theme.css deleted file mode 100644 index fe7e2cbc..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/css/theme.css +++ /dev/null @@ -1,5 +0,0 @@ -*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:0.2em 0;background:#ccc;color:#000;padding:0.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:1.5cm 0.5cm 2.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! - * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.1.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.pull-left.icon{margin-right:.3em}.fa.pull-right,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-square:before,.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .icon,.nav .fa,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .icon{display:inline}.btn .fa.fa-large,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .fa-large.icon{line-height:0.9em}.btn .fa.fa-spin,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.btn.icon:before{opacity:0.5;-webkit-transition:opacity 0.05s ease-in;-moz-transition:opacity 0.05s ease-in;transition:opacity 0.05s ease-in}.btn.fa:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo{padding:12px;line-height:24px;margin-bottom:24px;background:#dedede}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#8ba8af;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo{background:#dedede}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#8ba8af}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo{background:#dedede}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#dd4814}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a{color:#dd4814}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all 0.3s ease-in;-moz-transition:all 0.3s ease-in;transition:all 0.3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#dd4814}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.1s linear;-moz-transition:all 0.1s linear;transition:all 0.1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#dd4814 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#dd4814;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#97310e}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#dd4814;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#dd4814;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 0.3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.35765%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:0.3125em;font-style:italic}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}input[type="datetime-local"]{padding:0.34375em 0.625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:0.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#f3f6f6;color:#cad2d3}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:0.5em 0.625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fff;color:#cad2d3;border-color:transparent}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:0.5em 0.625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#dd4814}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em;display:block}.wy-form label{margin-bottom:0.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}a{color:#dd4814;text-decoration:none;cursor:pointer}a:hover{color:#97310e}a:visited{color:#97310e}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#dd4814 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.codeblock-example{border:1px solid #e1e4e5;border-bottom:none;padding:24px;padding-top:48px;font-weight:500;background:#fff;position:relative}.codeblock-example:after{content:"Example";position:absolute;top:0px;left:0px;background:#97310e;color:#fff;padding:6px 12px}.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5;margin-bottom:24px}.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5;padding:0px;overflow-x:auto;background:#fff;margin:1px 0 24px 0}.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none;background:none;margin:0}div[class^='highlight'] td.code{width:100%}.linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical header{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;color:#dd4814;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:0.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical .local-toc li ul{display:block}.wy-menu-vertical li ul li a{margin-bottom:0;color:#b3b3b3;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:0.4045em 1.618em;display:block;position:relative;font-size:90%;color:#b3b3b3}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:active{background-color:#dd4814;cursor:pointer;color:#fff}.wy-side-nav-search{z-index:200;background-color:#dd4814;text-align:center;padding:0.809em;display:block;color:#fcfcfc;margin-bottom:0.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#97310e}.wy-side-nav-search img{display:block;margin:auto auto 0.809em auto;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:0.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-nav .wy-menu-vertical header{color:#dd4814}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#dd4814;color:#fff}[data-menu-wrap]{-webkit-transition:all 0.2s ease-in;-moz-transition:all 0.2s ease-in;transition:all 0.2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:left repeat-y #fcfcfc;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);background-size:300px 1px}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:absolute;top:0;left:0;width:300px;overflow:hidden;min-height:100%;background:#343131;z-index:200}.wy-nav-top{display:none;background:#dd4814;color:#fff;padding:0.4045em 0.809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100x;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:#999}footer p{margin-bottom:12px}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-nav-content-wrap{margin-left:0!important}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}nav.stickynav{position:fixed;top:0}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#dd4814;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}}.rst-content img{max-width:100%;height:auto !important}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .line-block{margin-left:24px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto;display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;display:inline-block}.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink{display:inline-block}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:#999}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none;padding-top:5px}.rst-content table.field-list td>strong{display:inline-block;margin-top:3px}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left;padding-left:0}.rst-content tt{color:#000}.rst-content tt big,.rst-content tt em{font-size:100% !important;line-height:normal}.rst-content tt .xref,a .rst-content tt{font-weight:bold}.rst-content a tt{color:#dd4814}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:inline-block;margin:6px 0;font-size:90%;line-height:normal;background:#dedede;color:#dd4814;border-top:solid 3px #8ba8af;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#8ba8af}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:gray}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center} -/*# sourceMappingURL=theme.css.map */ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/doctools.js b/application/vendor/codeigniter/framework/user_guide/_static/doctools.js deleted file mode 100644 index 56549772..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/doctools.js +++ /dev/null @@ -1,287 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this); - }); - } - } - return this.each(function() { - highlight(this); - }); -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') - return string; - return (typeof translated == 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) == 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keyup(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); \ No newline at end of file diff --git a/application/vendor/codeigniter/framework/user_guide/_static/down-pressed.png b/application/vendor/codeigniter/framework/user_guide/_static/down-pressed.png deleted file mode 100644 index 5756c8ca..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/down-pressed.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/down.png b/application/vendor/codeigniter/framework/user_guide/_static/down.png deleted file mode 100644 index 1b3bdad2..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/down.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/file.png b/application/vendor/codeigniter/framework/user_guide/_static/file.png deleted file mode 100644 index a858a410..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/file.png and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/fonts/FontAwesome.otf b/application/vendor/codeigniter/framework/user_guide/_static/fonts/FontAwesome.otf deleted file mode 100644 index 8b0f54e4..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/fonts/FontAwesome.otf and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.eot b/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.eot deleted file mode 100644 index 7c79c6a6..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.svg b/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.svg deleted file mode 100644 index 45fdf338..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.ttf b/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.ttf deleted file mode 100644 index e89738de..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.woff b/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8c1748aa..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/images/ci-icon.ico b/application/vendor/codeigniter/framework/user_guide/_static/images/ci-icon.ico deleted file mode 100644 index c4246f8b..00000000 Binary files a/application/vendor/codeigniter/framework/user_guide/_static/images/ci-icon.ico and /dev/null differ diff --git a/application/vendor/codeigniter/framework/user_guide/_static/jquery-3.1.0.js b/application/vendor/codeigniter/framework/user_guide/_static/jquery-3.1.0.js deleted file mode 100644 index f2fc2747..00000000 --- a/application/vendor/codeigniter/framework/user_guide/_static/jquery-3.1.0.js +++ /dev/null @@ -1,10074 +0,0 @@ -/*eslint-disable no-unused-vars*/ -/*! - * jQuery JavaScript Library v3.1.0 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2016-07-07T21:44Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - - - - function DOMEval( code, doc ) { - doc = doc || document; - - var script = doc.createElement( "script" ); - - script.text = code; - doc.head.appendChild( script ).parentNode.removeChild( script ); - } -/* global Symbol */ -// Defining this global in .eslintrc would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.1.0", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = jQuery.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isFunction: function( obj ) { - return jQuery.type( obj ) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - - // As of jQuery 3.0, isNumeric is limited to - // strings and numbers (primitives or objects) - // that can be coerced to finite numbers (gh-2662) - var type = jQuery.type( obj ); - return ( type === "number" || type === "string" ) && - - // parseFloat NaNs numeric-cast false positives ("") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - !isNaN( obj - parseFloat( obj ) ); - }, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - // Convert dashed to camelCase; used by the css and data modules - // Support: IE <=9 - 11, Edge 12 - 13 - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.0 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2016-01-04 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - // Known :disabled false positives: - // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) - // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Check form elements and option elements for explicit disabling - return "label" in elem && elem.disabled === disabled || - "form" in elem && elem.disabled === disabled || - - // Check non-disabled form elements for fieldset[disabled] ancestors - "form" in elem && elem.disabled === false && ( - // Support: IE6-11+ - // Ancestry is covered for us - elem.isDisabled === disabled || - - // Otherwise, assume any non-