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



class Manager extends MY_Controller

{



    private $error;



    public function __construct()

    {

        parent::__construct();



        if (in_array($this->session->rank, array(1, 2, 3)) == false && $this->router->fetch_method() != 'login') 

        {

            redirect('team/login');

        }



        $this->load->model('manager_model');

    }





    public function _validation_time($time)

    {

        $result = preg_match("/(0?\\d|1\\d|2[0-3]):[0-5]\\d/", $time);



        if(!$result)

        {

            $this->form_validation->set_message('_validation_time', 'Le format de l\\'heure précisé est invalide');        



            return false;    

        }



        return true;

    }



    /*** Gestion des messages auto **/

    public function auto_messages($method = '')

    {

        # Détails des visualisation par message automatique

        if($method == 'views')

        {

         

            $data['views'] = $this->manager_model->get_message_views();



            Ygg::manager_view('messages_auto/auto_messages_views', $data);

        

        }

        # Création d'un nouveau message automatique

        else if($method == 'new')

        {

            if($this->input->method() == 'post')

            {

                $config = array(

                    array(

                            'field' => 'auto_message_name',

                            'label' => 'nom',

                            'rules' => 'required|min_length[5]|max_length[255]|xss_clean'

                    ),

                    array(

                            'field' => 'auto_message_content',

                            'label' => 'contenu',

                            'rules' => 'required|min_length[20]'

                    )

                );



                if(($this->input->post('enable_ad_message') && $this->input->post('enable_ad_message') == 1))

                {

                    $message_type = 1;



                    $config[] = array(

                        'field' => 'auto_message_ad_day',

                        'label' => 'jour de (re)publication ',

                        'rules' => 'required|in_list[1,2,3,4,5,6,7]' 

                    );



                    $config[] = array(

                        'field' => 'auto_message_ad_hour',

                        'label' => 'heure de (re)publication ',

                        'rules' => 'required|callback__validation_time' 

                    );

                }



                $this->form_validation->set_rules($config);



                if($this->form_validation->run())

                {

                    $data_ad_message = false;



                    if($message_type == 1)

                    {

                        $periodicity = $this->input->post('auto_message_ad_day').'|'.$this->input->post('auto_message_ad_hour');



                        $data_ad_message = array(

                            'message_type' => 1,

                            'periodicity' => $periodicity,

                            'instant_publish' => (bool) ($this->input->post('enable_instant_publish') && $this->input->post('enable_instant_publish') == 1)

                        );

                    }



                    $this->manager_model->new_auto_message($this->input->post('auto_message_name'), htmlentities(purify($this->input->post('auto_message_content'))), $data_ad_message);



                    $this->session->set_flashdata('auto_message_inserted', true);



                    $this->cache->redis->delete('auto_messages');

                }



                $form_errors = array_values($this->form_validation->error_array());

                

                if(count($form_errors) > 0)

                {

                    $this->output->set_content_type('application/json')->set_output(json_encode(array('error' => $form_errors[0])))->set_status_header(403);

                }

            }

            else 

            {

                Ygg::manager_view('messages_auto/new_auto_message');

            }

        }

        # Listing des messages automatique

        else 

        {

            $flashdata = $this->session->flashdata('auto_message_inserted');



            if($flashdata)

            {

                $data['js_message'] = '<script>$(function(){ $.growl.notice({ message: \\'Message automatique ajouté\\', size: \\'large\\', location: \\'tc\\'}); });</script>';

            }



            $data['auto_messages'] = $this->manager_model->get_auto_messages(null, null);



            Ygg::manager_view('messages_auto/auto_messages', $data);

        }

    }



    public function edit_message() 

    {

        Ygg::manager_view('messages_auto/edit_auto_message');

    }



}