<?php

namespace app\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\web\Response;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
use app\models\Contact;
use yii\config\db;
use yii\config\thdb;
use yii\config\j4db;
use \yii\db\Query;

class SiteController extends Controller
{
    /**
     * {@inheritdoc}
     */
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['logout'],
                'rules' => [
                    [
                        'actions' => ['logout'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }

    /**
     * Displays homepage.
     *
     * @return string
     */
    public function actionIndex()
    {
        return $this->render('index');
    }

    /**
     * Login action.
     *
     * @return Response|string
     */
    public function actionLogin()
    {
        if (!Yii::$app->user->isGuest) {
            return $this->goHome();
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->login()) {
            return $this->goBack();
        }

        $model->password = '';
        return $this->render('login', [
            'model' => $model,
        ]);
    }

    /**
     * Logout action.
     *
     * @return Response
     */
    public function actionLogout()
    {
        Yii::$app->user->logout();

        return $this->goHome();
    }

    /**
     * Displays contact page.
     *
     * @return Response|string
     */
    /*public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');

            return $this->refresh();
        }
        return $this->render('contact', [
            'model' => $model,
        ]);
    }*/
    public function actionContact()
    {
        
        $formelemek = new ContactForm();
        $contactmodel = new Contact();
        //$contactmodel->getOtpConfig(Yii::$app->user->identity->id);
        /*if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');

            return $this->refresh();
        }*/
        $validate = Yii::$app->getRequest()->getQueryParam('validate');

        if(isset($validate) && $validate == 1)
        {
           
            $validated = $contactmodel->TOTPValidate();
            if($validated === TRUE)
            {
                Yii::$app->session->setFlash('message', 'Sikeres validáció!');
                Yii::$app->getResponse()->redirect('index.php?r=site%2Fcontact');
                echo 'Sikeres validáció!';
            }
            else
            {
                Yii::$app->session->setFlash('message', 'Sikertelen validáció!');
                Yii::$app->getResponse()->redirect('index.php?r=site%2Fcontact');
                 echo 'Sikertelen validáció!';
            }

        }
        
        return $this->render('contact', [
            'formelemek' => $formelemek,
        ]);
        
        
    }

    /**
     * Displays about page.
     *
     * @return string
     */
    public function actionAbout()
    {
        return $this->render('about');
    }

    public function actionMigrator()
    {
        /*$query = new Query();
        $query->select(['*']);
        $query->from(['gigkt_content']);
        $query->where('id > 0');
        $j3content = $query->all();

        $i = 1;
        foreach ($j3content as $key => $value) 
        {
            $query = new Query();
            $query->select(['id']);
            $query->from(['gigkt_assets']);
            $query->where('name = "com_content.category.'.$value['catid'].'"');
            $speckoid = $query->one();

            /*Régi assets*/
           /*Yii::$app->db->createCommand('INSERT INTO uok1r_assets (parent_id, lft, rgt, level, name, title, rules) VALUES ('.$speckoid['id'].', 19, 20, 3, "com_content.article.'.$value['id'].'", "'.$value['title'].'", "")')->execute();
            
            /*Vissza a régi assetsből*/
            /*$query = new Query();
            $query->select(['max(id) lastid']);
            $query->from(['uok1r_assets']);
            $lastid = $query->one();

            Yii::$app->db->createCommand('UPDATE gigkt_content SET asset_id = '.$lastid['lastid'].' WHERE id = '.$value['id'])->execute();

            
        }

        die('ende');*/
    }

    public function actionThmigrator()
    {
        

        
        
    }
    public function actionKkimigrator()
    {
        $content = Yii::$app->thdb->createCommand('SELECT id,`name`,lead_image_id FROM cms_biographies WHERE portal_id = 1 AND (lead_image_id IS NOT NULL)')->queryAll();
        $back = '';
        /*echo '<pre>';
        print_r($content);
        echo '</pre>';
        die();*/
        
        foreach ($content as $key => $value) 
        {
            $dir    = 'images/'.$value['lead_image_id'].'/';
            if ( is_dir( $dir ) ) 
            {
                $files = scandir($dir);
                $newfilename = $this->stripAccents($value['name']);
                $newfilename = str_replace(' ', '-', $newfilename);
                $newfilename = str_replace('(', '', $newfilename);
                $newfilename = str_replace(')', '', $newfilename);
                //echo $value['id'].'-'.$newfilename.'<br >';
                /*echo '<pre>';
                print_r($files);
                echo '</pre>';
                die();*/
                foreach ($files as $fkey => $fvalue) 
                {
                    /*if(strpos($fvalue, 'detail') !== FALSE)
                    {
                        $bumm = explode('_', $fvalue);
                    
                        $kiterjesztesbumm = explode('.', $bumm[1]);
                        $kiterjesztes = '';


                        copy($dir.'detail_'.$bumm[1],'images/kesz/'.$value['id'].'-'.$newfilename.'.'.$kiterjesztesbumm[1]);
                    }*/

                    /*if(strpos($fvalue, 'list') !== FALSE)
                    {
                        $bumm = explode('_', $fvalue);
                    
                        $kiterjesztesbumm = explode('.', $bumm[1]);
                        $kiterjesztes = '';


                        copy($dir.'list_'.$bumm[1],'images/kesz/'.$value['id'].'-'.$newfilename.'.'.$kiterjesztesbumm[1]);
                    }*/
                }

                $newimages = '{"image_intro":"images\\/komvez\\/intro\\/'.$value['id'].'-'.$newfilename.'.jpg","image_intro_alt":"","float_intro":"","image_intro_caption":"","image_fulltext":"images\\/komvez\\/full/'.$value['id'].'-'.$newfilename.'.jpg","image_fulltext_alt":"","float_fulltext":"","image_fulltext_caption":""}';

                echo 'UPDATE oe4p1_content SET images = \''.$newimages.'\' WHERE id = '.$value['id'].';<br>';

                
                //die();
                //Yii::$app->kkidb->createCommand("UPDATE oe4p1_content SET images = '{\"image_intro\":\"images\/komvez\/intro\/".$newfilename.".jpg\",\"image_intro_alt\":\"\",\"float_intro\":\"\",\"image_intro_caption\":\"\",\"image_fulltext\":\"images\/komvez\/".$newfilename.".jpg/",\"image_fulltext_alt\":\"\",\"float_fulltext\":\"\",\"image_fulltext_caption\":\"\"}' WHERE id = ".$value['id'])->queryAll();
            }
            else
            {
                echo 'nincs:'.$value['id'].'<br >';
            }
            
            
        }
        die();
    }

    public function stripAccents($str) 
    {
        return strtr(utf8_decode($str), utf8_decode('àáâãäçèéêëìíîïñòóôõöőùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ'), 'aaaaaceeeeiiiinoooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    }

    public function actionCorrector()
    {
        /*$articles_for_assets_array = Yii::$app->kkidb->createCommand('SELECT * FROM oe4p1_content')->queryAll();

        foreach ($articles_for_assets_array as $key => $value) 
        {
           $x = str_replace('.','',$value['title']);
           $x = str_replace('   ',' ',$x);
           $x = str_replace(' ','-',$x);
           $x = str_replace('---','-',$x);
           $x = $this->stripAccents($x);

           echo $x.'<br>';

           Yii::$app->kkidb->createCommand('UPDATE oe4p1_content SET alias = "'.$x.'" WHERE id = '.$value['id'])->execute();
        }*/

    }
}


