<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Emailsettings extends CI_Controller
{
	public $viewFolder = "";

	public function __construct()
    {
        parent::__construct();
        $this->viewFolder = "emailsettings_v";
        $this->load->model("emailsettings_model");


        if (!get_active_user()){
            redirect(base_url("panel/login"));
        }
    }

	public function index ()
    {
        $viewData = new stdClass();

        /*Tablodan verilerin getirildiği satır*/

        if ($this->input->post("searchword") == "") {
            $items = $this->emailsettings_model->get_all(
                array()
            );
            $viewData->aramaVar = "hayir";
        }
        else {
            $viewData->aramaVar = "evet";
            $items = $this->emailsettings_model->get_all_like(
                array(
                    "userid"    => $this->input->post("searchword")
                )
            );
        }
        $viewData->viewFolder = $this->viewFolder;
        $viewData->viewTitle = "E-Mail Ayarları";
        $viewData->items = $items;
        //$viewData->subViewFolder = "list";
        $this->load->view("{$viewData->viewFolder}/index", $viewData);
    }



    /*EKRANA BASILAN YNİ KAYIT FORMU*/
    public function yenikayitFormu()
    {
        $viewData = new stdClass();
        $viewData->viewFolder = $this->viewFolder;
        $viewData->subViewFolder = "add";
        $viewData->viewTitle = "E-Mail Ayarları";
        $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);
    }

    /*yeni kayıt veritabanı ve form kontrol işlemleri yapılıyor*/
    public function formKaydet()
    {
        $this->load->library("form_validation");

        //kurallar yazılır
        $this->form_validation->set_rules("host", "E-Posta Sunucu Adresi", "required|trim");
        $this->form_validation->set_rules("protokol", "Protokol", "required|trim");
        $this->form_validation->set_rules("port", "Port Numarası", "required|trim");
        $this->form_validation->set_rules("eposta", "Kullanıcı E-Posta", "required|trim");
        $this->form_validation->set_rules("sifre", "E-Postaya Ait Şifre", "required|trim");
        $this->form_validation->set_rules("kimden", "Kimden", "required|trim");
        $this->form_validation->set_rules("kime", "Kime", "required|trim");
        $this->form_validation->set_rules("baslik", "Başlık", "required|trim");

        $this->form_validation->set_message(
            array(
                "required" => "<strong>{field}</strong> alanı boş bırakılamaz"
            )
        );
        //form validation çalıştırılı
        $validate = $this->form_validation->run();

        //başarılı ise kayıt işlemi başlar
        if ($validate) {

                $ekle = $this->emailsettings_model->add (
                    array
                    (
                       "protocol"   => $this->security->xss_clean($this->input->post("protokol")),
                       "host"       => $this->security->xss_clean($this->input->post("host")),
                       "port"       => $this->security->xss_clean($this->input->post("port")),
                       "user"       => $this->security->xss_clean($this->input->post("eposta")),
                       "password"   => $this->security->xss_clean($this->input->post("sifre")),
                       "fromm"      => $this->security->xss_clean($this->input->post("kimden")),
                       "too"        => $this->security->xss_clean($this->input->post("kime")),
                       "username"   => $this->security->xss_clean($this->input->post("baslik")),
                       "isactive"   => 1
                    )
                );

                if ($ekle)
                {
                    $alert = array
                    (
                        "text"  => "Kayıt İşlemi Başarı ile Yapıldı ",
                        "type"  => "success"
                    );
                }
                else {
                    $alert = array
                    (
                        "text"  => "İşlem Başarısız",
                        "type"  => "error"
                    );
                }
                //İşlemin sonucunu sessiona yazma işlemi...
                $this->session->set_flashdata("alert", $alert);
                redirect(base_url("backend/emailsettings"));
        }

        //formda boşluklar yada şarta uymayan bişey varsa ekrana hata basılır
        else
            {
                $viewData = new stdClass();
                $viewData->viewFolder = $this->viewFolder;
                $viewData->subViewFolder = "add";
                $viewData->form_hatasi = true;
                $viewData->viewTitle = "E-Mail Ayarları";
                $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);
            }
    }

    /*kayıt güncelleme formunu ekrana basan fonksiyon*/
    public function guncellemeFormu($id)
    {
        $viewData = new stdClass();

        $items = $this->emailsettings_model->get
        (
            array
            (
                "id"    => $id
            )
        );
        $viewData->viewFolder = $this->viewFolder;
        $viewData->subViewFolder = "update";
        $viewData->item = $items;
        $viewData->viewTitle = "E-Mail Ayarları";
        $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);
    }

    /*güncelleme islemleri*/
    public function guncellemeformKaydet($id)
    {
        $this->load->library("form_validation");

        $this->form_validation->set_rules("host", "E-Posta Sunucu Adresi", "required|trim");
        $this->form_validation->set_rules("protokol", "Protokol", "required|trim");
        $this->form_validation->set_rules("port", "Port Numarası", "required|trim");
        $this->form_validation->set_rules("eposta", "Kullanıcı E-Posta", "required|trim");
        $this->form_validation->set_rules("kimden", "Kimden", "required|trim");
        $this->form_validation->set_rules("kime", "Kime", "required|trim");
        $this->form_validation->set_rules("baslik", "Başlık", "required|trim");

        $this->form_validation->set_message(
            array(
                "required" => "<strong>{field}</strong> alanı boş bırakılamaz"
            )
        );
        //form validation çalıştırılı
        $validate = $this->form_validation->run();

        //başarılı ise kayıt işlemi başlar
        if ($validate)
        {
            $guncelle = $this->emailsettings_model->update(
                array (
                    "id" => $id
                ),
                array
                (
                    "protocol"   => $this->security->xss_clean($this->input->post("protokol")),
                    "host"       => $this->security->xss_clean($this->input->post("host")),
                    "port"       => $this->security->xss_clean($this->input->post("port")),
                    "user"       => $this->security->xss_clean($this->input->post("eposta")),
                    "fromm"      => $this->security->xss_clean($this->input->post("kimden")),
                    "too"        => $this->security->xss_clean($this->input->post("kime")),
                    "username"   => $this->security->xss_clean($this->input->post("baslik")),
                    "isactive"   => 1
                )
            );
            
            if ($this->input->post("userpass") <> "") 
            {
                $guncelle = $this->emailsettings_model->update(
                    array (
                        "id" => $id
                    ),

                    array (
                        "password" => md5($this->input->post("sifre"))
                    )
                );
            }

            if ($guncelle)
            {
                $alert = array
                (
                    "text"  => "Güncelleme işlemi başarı ile gerçekleştirildi ",
                    "type"  => "success"
                );
            }
            else {
                $alert = array
                (
                    "text"  => "Güncelleme esnasında bir hata meydana geldi",
                    "type"  => "error"
                );
            }
            //İşlemin sonucunu sessiona yazma işlemi...
            $this->session->set_flashdata("alert", $alert);
            redirect(base_url("backend/emailsettings"));
        }

        //formda boşluklar yada şarta uymayan bişey varsa ekrana hata basılır
        else
        {
            $viewData = new stdClass();
            $items = $this->emailsettings_model->get(
                array (
                    "id"        => $id
                )
            );
            $viewData->viewFolder = $this->viewFolder;
            $viewData->subViewFolder = "update";
            $viewData->form_hatasi = true;
            $viewData->item = $items;
            $viewData->viewTitle = "E-Mail Ayarları";
            $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);
        }
    }

    /*KAYIT SİLME İŞLEMLERİ*/
    public function veriSil ($id)
    {
        $delete = $this->emailsettings_model->delete(
            array(
                "id" => $id
            )
        );

        if ($delete)
        {
            $alert = array
            (
                "text"  => "Silme işlemi başarı ile gerçekleştirildi ",
                "type"  => "success"
            );
        }
        else
        {
            $alert = array
            (
                "text"  => "Silme işleminde bir hata meydana geldi",
                "type"  => "error"
            );
        }

        $this->session->set_flashdata("alert", $alert);
        redirect(base_url("backend/emailsettings"));
    }

    /*AKTİF PSAİF İŞLEMLERİ*/
    public function veriAktifPasif ($id)
    {
        if ($id)
        {
            $isActive = ($this->input->post("data") == "true") ? 1 : 0;
            $this->emailsettings_model->update(
                array (
                    "id" => $id,
                ),
                array (
                    "isactive" => $isActive
                )
            );
        }
    }
}
