!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/toba_editor/php/acciones/utilidades/   drwxr-xr-x
Free 14.46 GB of 61.93 GB (23.35%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     editor_estilos.php (10.17 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
    $plantilla 
toba::memoria()->get_parametro('plantilla');
    if (isset(
$_POST['elem_nueva_plantilla'])) {
        
$archivo_css toba::instalacion()->get_path().'/www/css/'.apex_proyecto_estilo.'.css';
        
$texto_css $_POST['elem_nueva_plantilla'];
        
$texto_css str_replace(';'";\n\t"$texto_css);
        
file_put_contents($archivo_css$texto_css);
    }
?>
<form name="editor_estilos" method="post" action="">    
<div style='padding-left: 5px;font-size: 10px;'>
    <fieldset style='padding: 5px'>
    <legend>Opciones</legend>
        <label for="elem_solo_item"><input id='elem_solo_item' type="checkbox" class="ef-checkbox" checked disabled> Aplicar a todo el proyecto </label><br>
        <label for="elem_sin_form"><input id='elem_sin_form' type="checkbox" class="ef-checkbox"  onClick="cambiar_formularios();"> Deshabilitar formularios</label><br>
        <label for="elem_sin_links"><input id='elem_sin_links' type="checkbox" class="ef-checkbox" disabled> Deshabilitar links</label>    <br>
    </fieldset>

    <fieldset style='padding: 5px; text-align:center;'>
        <legend>Editor</legend>
        <div id='elem_nombre_clase' style='text-align:center; font-weight: bold;'></div>
            <textarea id="elem_editor" cols="50" rows="15" class='ef-textarea' disabled>
            </textarea>
        <br>
    <input id='elem_aplicar' type='button' value='Vista Previa' onClick='aplicar()' class='ef-boton' disabled>
    &nbsp;    &nbsp;    &nbsp;
    <input id='elem_aceptar' type='button' value='Aceptar' onClick='aplicar(); aceptar();' class='ef-boton' disabled>    
    <input id='elem_cancelar' type='button' value='Cancelar' onClick='cancelar()' class='ef-boton' disabled>    
    &nbsp;    &nbsp;    &nbsp;
    <input id='elem_refrescar' type='button' value='Refrescar' onClick='refrescar()' class='ef-boton'>        
    </fieldset>
    <br>
    <fieldset  style='padding: 5px'>
    <legend>Estilos modificados</legend>
        <div id="elem_lista_modificadas"></div><br>
        <div style="text-align:center">
            <input  name="elem_nueva_plantilla" id="elem_nueva_plantilla" type="hidden" value="holasaa">
            <input id='elem_aplicar_todo' type='button' value='Aplicar Todos' onClick='aplicar_todo()' class='ef-boton' disabled>            
            <input id='elem_borrar_todo' type='button' value='Borrar Todos' onClick='borrar_todo()' class='ef-boton' disabled>
            &nbsp;    &nbsp;    &nbsp;
            <input id='elem_guardar' type='button' value='Guardar...' onClick='guardar();' class='ef-boton' disabled>    
        </div>        
    </fieldset>
    <fieldset  style='padding: 5px'><br>
    <legend>Ayuda</legend>    
    <ul>
        <li>Sólo funciona para IE (por ahora).</li>
        <li>Hacer click en el sector donde se quiere cambiar los estilos.</li>
        <li>Los sectores que se permiten editar son sólo aquellos que contienen estilos de la plantilla predeterminada del proyecto.</li>
        <li>Se puede seguir navegando por los items sin perder los cambios realizados (hay que 'Aplicar Todos' para cada página nueva).</li>
        <li>Una vez guardada la nueva plantilla debe refrescar el frame principal.</li>
        <li>Para desechar los cambios una vez guardada la plantilla, usar SVN:Revert sobre el archivo css del proyecto.</li>
    </ul>
    En <strong>BETA</strong>, usar bajo propio riesgo :P
    </fieldset>    
</div>
<!-- <link rel="stylesheet" href="csseditor/style/css.css" type="text/css" />
     <script type="text/javascript" src="csseditor/javascript/css.js"></script> -->
<script language="javascript" type="text/javascript">
    var frame_editado = top.<?php echo apex_frame_centro?>
    
    //----Recorrido del DOM
    function recorrer_nodo(nodo)
    {
        if (nodo.className) 
            nodo.onclick = elemento_cambiar_comportamiento;
        for (var i=0; i < nodo.childNodes.length; i++) {
            recorrer_nodo(nodo.childNodes[i])
        }
    }        
    function elemento_cambiar_comportamiento(e)
    {
        frame_editado.window.event.cancelBubble = true;
        var elemento = frame_editado.window.event.srcElement;
        var clase = elemento.className;
        
        if (puede_modificar() && clase != '')
        {        
            editado_recuperar_estado_anterior();
            elemento_editado = elemento;
            editado_guardar_estado();
            elemento.style.border = "solid red 4px";
            cargar_clase(clase);
        }
    }
    
    //----EDITADO
    var elemento_editado;
    var borde_anterior;    
    function elemento_estilo(el,styleProp)
    {
        var x = el;
        if (frame_editado.window.getComputedStyle)
            var y = frame_editado.window.getComputedStyle(x,null).getPropertyValue(styleProp);
        else if (x.currentStyle)
            var y = eval('x.currentStyle.' + styleProp);
        return y;
    }
    function editado_guardar_estado()
    {
        borde_anterior = new Object();
        borde_anterior['borderStyle'] = elemento_estilo(elemento_editado, 'borderStyle');
        borde_anterior['borderWidth'] = elemento_estilo(elemento_editado, 'borderWidth');
        borde_anterior['borderColor'] = elemento_estilo(elemento_editado, 'borderColor');
    }
    function editado_recuperar_estado_anterior()
    {
        if (elemento_editado) {
            elemento_editado.style.borderStyle = borde_anterior['borderStyle'];
            elemento_editado.style.borderWidth = borde_anterior['borderWidth'];
            elemento_editado.style.borderColor = borde_anterior['borderColor'];                                
        }
    }
    
    //----EDITOR    
    var clases_modificadas = new Array();
    var url_editada = '';
    var plantilla;    
    var estado_formularios = new Array();    
    var clase_cargada;
    
    function cambiar_formularios()
    {
        refrescar();
        var desactivado = document.getElementById('elem_sin_form').checked;
        if (!desactivado) {
            for (var i = 0; i<frame_editado.document.forms.length; i++)    {
                if (estado_formularios[i])
                    frame_editado.document.forms[i].onsubmit = estado_formularios[i];
            }
        }
        else {  //Desactivar
            for (var i = 0; i<frame_editado.document.forms.length; i++)    {
                estado_formularios[i] = frame_editado.document.forms[i].onsubmit;
                frame_editado.document.forms[i].onsubmit = function() {return false};
            }
        }
    }     
        
    function cargar_plantilla() {
        for (i =0; i < frame_editado.document.styleSheets.length; i++) {
            if (frame_editado.document.styleSheets[i].href == '<?php echo $plantilla?>')
                plantilla = frame_editado.document.styleSheets[i];
        }
    }
    
    function puede_modificar()
    {
        return true;
    }
    function modificar_clase() {
        var values = getStyle();
        var editor = document.all["editor"]; 
        
        nuevo_valor = "";
        for (i = 0; i < values.length; i++) {
            var splitted = values[i].split("=");
            nuevo_valor += splitted[0] + ": " + splitted[1] + ";\n";
        }
        editor.value = nuevo_valor;
    }
    function cargar_clase(clase)
    {
        refrescar();    
        clase_cargada = clase;
        if (clases_modificadas[clase]) {
            texto_css = clases_modificadas[clase]; 
        }
        else { //Hay que salir a buscarla
            for(j = 0; plantilla.rules.length > j; j++) {
                if(plantilla.rules[j].selectorText.toLowerCase().indexOf(clase) > -1) {
                    var texto_css = plantilla.rules[j].style.cssText.toLowerCase();
/*                    var reglas_texto = texto_css.split(";");
                    var nuevas_reglas = new Array()
                    for (i = 0; i < reglas_texto.length; i++)
                    {
                        var regla = reglas_texto[i].split(': ');
                        nuevas_reglas.push(trim(regla[0]) + '=' + trim(regla[1]));
                    }
                    setStyle(nuevas_reglas);*/
                }
           } 
         }
        document.getElementById('elem_nombre_clase').innerHTML = clase;
        document.getElementById('elem_editor').value = texto_css.reemplazar('; ', ';\n');
        document.getElementById('elem_aplicar').disabled = false;
        document.getElementById('elem_aceptar').disabled = false;        
        document.getElementById('elem_cancelar').disabled = false;
        document.getElementById('elem_editor').disabled = false;
       
    }
    function aplicar_clase(clase, valor)
    {
            for(j = 0; plantilla.rules.length > j; j++)
            {
                if(plantilla.rules[j].selectorText.toLowerCase().indexOf(clase) > -1)
                    plantilla.rules[j].style.cssText = valor;
           }     
    }
    function aplicar()
    {
        refrescar();    
        var editor = document.getElementById('elem_editor');
        if (clase_cargada)
            aplicar_clase(clase_cargada, editor.value);
    }
    
    function cancelar()
    {
        document.getElementById('elem_aplicar').disabled = true;
        document.getElementById('elem_aceptar').disabled = true;        
        document.getElementById('elem_cancelar').disabled = true;
        document.getElementById('elem_editor').value = '';
        document.getElementById('elem_editor').disabled = true;
        editado_recuperar_estado_anterior();
        document.getElementById('elem_nombre_clase').innerHTML ='';
        clase_cargada = null;
    }
    
    function aceptar()
    {
        refrescar();    
        var editor = document.getElementById('elem_editor');
        if (clase_cargada)
        {
            clases_modificadas[clase_cargada] = editor.value;
        }
        mostrar_clases_modificadas();
    }
    
    function borrar_clase(clase)
    {
        delete(clases_modificadas[clase]);
        mostrar_clases_modificadas();
    }

    function mostrar_clases_modificadas()
    {
        var img_ver = '<img src="<?php echo toba_recurso::imagen_toba('doc.gif'); ?>" border=0/>';
        var img_borrar = '<img src="<?php echo toba_recurso::imagen_toba('borrar.gif'); ?>" border=0/>';
        var html = '<ul>';
        var hay_uno = false;
        for (clase in clases_modificadas)
        {
            hay_uno = true;
            ver = ' <a href="javascript: cargar_clase(\'' + clase + '\');">' +  clase + '</a> ';
            borrar = ' <a href="javascript: borrar_clase(\'' + clase + '\');">' + img_borrar + '</a> ';            
            html += '<li>' +  borrar + ver +'</li>';
        }
        html += '</ul>';
        document.getElementById('elem_lista_modificadas').innerHTML = html;
        document.getElementById('elem_guardar').disabled = !hay_uno;
        document.getElementById('elem_borrar_todo').disabled = !hay_uno;
        document.getElementById('elem_aplicar_todo').disabled = !hay_uno;                        
    }
    function mostrar_ayuda()
    {

    }
    
    function refrescar()
    {
        if (url_editada != frame_editado.window.location.href)
        {
            url_editada = frame_editado.window.location.href;
            elemento_editado = null;
            cargar_plantilla();
            recorrer_nodo(frame_editado.document.body);
            cancelar();
            mostrar_ayuda();
        }            
    }
    function borrar_todo()
    {
        for (clase in clases_modificadas) {
            borrar_clase(clase);
        }
    }
    function aplicar_todo()
    {
        for (clase in clases_modificadas) {
            aplicar_clase(clase, clases_modificadas[clase]);
        }
    }
    function guardar()
    {
        document.getElementById('elem_nueva_plantilla').value = plantilla.cssText;
        document.forms['editor_estilos'].submit();
    }
    //--- INICIO
    refrescar();    
</script>
<!-- <div id="css" class="editor">Cargando el editor...</div> 
<script language="javascript" type="text/javascript">
    addChangesListener(modificar_clase);
    insertEditor(css)
</script>
-->
</form>    

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 1.0444 ]--