imagecms/ImageCMS

View on GitHub
application/modules/red_helper/red_helper.php

Summary

Maintainability
A
3 hrs
Test Coverage
<?php

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

/**
 * Image CMS
 * RedHelper
 * @property red_helper_model $red_helper_model
 */
class Red_helper extends MY_Controller
{

    public function __construct() {
        parent::__construct();
        $lang = new MY_Lang();
        $lang->load('red_helper');
        $this->load->model('red_helper_model');
    }

    public function index() {

    }

    public function validate() {

        $this->load->library('form_validation');
        $config = [
                   [
                    'field' => 'login1',
                    'label' => 'login',
                    'rules' => 'required|min_length[3]',
                   ],
                   [
                    'field' => 'pass',
                    'label' => 'pass',
                    'rules' => 'required',
                   ],
                   [
                    'field' => 'email',
                    'label' => 'email',
                    'rules' => 'required',
                   ],
                   [
                    'field' => 'phone',
                    'label' => 'phone',
                    'rules' => 'required|numeric',
                   ],
                  ];
        $this->form_validation->set_rules($config);
        $this->form_validation->run();
        $this->form_validation->set_error_delimiters('<p>', '</p>');
        $err = $res = [];
        preg_match_all('#<p>(.+?)</p>#is', validation_errors(), $err);
        //       var_dump($err);
        //       exit();
        $res = $this->parseErrors($err[0]);
        //echo json_encode(validation_errors());
        echo json_encode($res);
    }

    public function autoload() {
        $set = $this->red_helper_model->getSettings();
        if ($set['login']) {
            $this->template->registerJsScript(
                '<!-- RedHelper -->
                <script id="rhlpscrtg" type="text/javascript" charset="utf-8" async="async" 
                 src="https://web.redhelper.ru/service/main.js?c=' . $set['login'] . '">
                </script> 
                <!--/Redhelper -->'
            );
        }
    }

    public function _install() {
        /** We recomend to use http://ellislab.com/codeigniter/user-guide/database/forge.html */
        $this->load->dbforge();

        //        $fields = array(
        //            'id' => array('type' => 'INT', 'constraint' => 11, 'auto_increment' => TRUE,),
        //            'name' => array('type' => 'VARCHAR', 'constraint' => 50,),
        //            'value' => array('type' => 'VARCHAR', 'constraint' => 100,)
        //        );
        //
        //        $this->dbforge->add_key('id', TRUE);
        //        $this->dbforge->add_field($fields);
        //        $this->dbforge->create_table('mod_empty', TRUE);

        $this->db
            ->where('name', 'red_helper')
            ->update('components', ['autoload' => '1', 'enabled' => '1']);
    }

    public function _deinstall() {
        /**
          $this->load->dbforge();
          $this->dbforge->drop_table('mod_empty');
         *
         */
    }

    private function parseErrors($err) {
        $str = '';
        $tmp = [];
        foreach ($err as $v) {
            $str .= $v;
        }
        if (strpos($str, 'login')) {
            $tmp[0] = '<p>Поле login является обязательным.</p>';
        } else {
            $tmp[0] = '';
        }
        if (strpos($str, 'pass')) {
            $tmp[1] = '<p>Поле pass является обязательным.</p>';
        } else {
            $tmp[1] = '';
        }
        if (strpos($str, 'email')) {
            $tmp[2] = '<p>Поле email является обязательным.</p>';
        } else {
            $tmp[2] = '';
        }
        if (strpos($str, 'phone является')) {
            $tmp[3] = '<p>Поле phone является обязательным.</p>';
        } else if (strpos($str, 'phone должно')) {
            $tmp[3] = '<p>Поле phone должно содержать только цифры.</p>';
        } else {
            $tmp[3] = '';
        }
        return $tmp;
    }

}

/* End of file red_helper.php */