function generar_layout() { //El archivo original esta en formato Windows CR/LF $nombre = toba::proyecto()->get_path_php() . '/varios/line_endings/archivo_windows.php'; //Verifico que el archivo original tiene el CR assert(strrchr(file_get_contents($nombre), 13) !== false); $archivo = new toba_archivo_php($nombre); $archivo->edicion_inicio(); $codigo_actual = $archivo->contenido(); //Verifico que el codigo original no tiene CR al ser cargado en toba_archivo_php assert(strrchr($codigo_actual, 13) === false); $metodo = new toba_codigo_metodo_php('extender_objeto_js'); $metodo->set_contenido("alert('soy un alert nuevo'); \n alert(4);"); $nuevo_codigo = $archivo->codigo_agregar_metodo($codigo_actual, $metodo->get_codigo()); $archivo->insertar($nuevo_codigo); $archivo->insertar_al_final("function cargo_algo(\$id) \n { echo 'Ingrese \$id'; \n}"); //Verifico que el nuevo codigo que obtuve tampoco tiene CR antes de ser grabado assert(strrchr($archivo->contenido(), 13) === false); //Aca grabe el archivo $archivo->edicion_fin(); assert(strrchr(file_get_contents($nombre), 13) === false); assert(strrchr(file_get_contents($nombre), PHP_EOL) !== false); echo 'El test parece que funco!, revirtiendo archivo....'; $tsvn = new toba_svn(); $tsvn->revert($nombre); }
/** * Permite modificar la forma en que se grafica la pantalla, por defecto un componente sobre el otro */ function generar_layout() { $nombre = toba::proyecto()->get_path_php() . '/varios/line_endings/archivo_linux.php'; //Verifico que no tiene el CHR 13 de movida assert(strrchr(file_get_contents($nombre), 13) === false); $archivo = new toba_archivo_php($nombre); $archivo->edicion_inicio(); $codigo_actual = $archivo->contenido(); assert(strrchr($codigo_actual, 13) === false); $metodo = new toba_codigo_metodo_php('extender_objeto_js'); $metodo->set_contenido("echo \"alert('soy un alert nuevo');" . "\n" . "alert(4);\""); $nuevo_codigo = $archivo->codigo_agregar_metodo($codigo_actual, $metodo->get_codigo()); $archivo->insertar(toba_archivo_php::codigo_sacar_tags_php($nuevo_codigo)); //Verifico que el nuevo codigo que obtuve tampoco tiene CR antes de ser grabado assert(strrchr($archivo->contenido(), 13) === false); //Aca grabe el archivo $archivo->edicion_fin(); assert(strrchr(file_get_contents($nombre), 13) === false); assert(strrchr(file_get_contents($nombre), PHP_EOL) !== false); $archivo->mostrar(); echo 'El test parece que funco!, revirtiendo archivo....'; $tsvn = new toba_svn(); $tsvn->revert($nombre); }
function conf__pant_vista_previa() { $path = $this->s__path_archivo; $svn = new toba_svn(); if (!isset($this->comando_svn)) { $codigo = $this->get_codigo_vista_previa(); } else { switch ($this->comando_svn) { case 'blame': $codigo = $svn->blame($path); if ($codigo == '') { toba::notificacion()->error('No se pudo realizar el blame, posiblemente porque el repositorio tiene restricciones de permisos y el usuario de apache no tiene cargadas las credenciales'); } break; case 'diff': $codigo = $svn->diff($path); break; case 'revert': $svn->revert($path); $codigo = $this->get_codigo_vista_previa(); break; case 'add': $svn->add($path); $codigo = $this->get_codigo_vista_previa(); break; } } //-- Info del archivo $estado = $svn->get_estado($path); $svn_blame = true; $svn_diff = false; $svn_add = false; switch ($estado) { case 'unversioned': $svn_blame = false; $svn_add = true; $nombre = 'sin versionar'; $img = toba_recurso::imagen_proyecto('svn/unversioned.png', true, 16, 16, $nombre); break; case 'modified': case 'missing': $svn_diff = true; $nombre = 'modificado'; $img = toba_recurso::imagen_proyecto('svn/modified.png', true, 16, 16, $nombre); break; case 'added': $svn_blame = false; $nombre = 'agregado'; $img = toba_recurso::imagen_proyecto('svn/added.png', true, 16, 16, $nombre); break; case 'normal': $nombre = 'sin modificar'; $img = toba_recurso::imagen_proyecto('svn/normal.png', true, 16, 16, $nombre); break; case 'conflicted': $nombre = 'En Conflicto'; $img = toba_recurso::imagen_proyecto('svn/conflict.png', true, 16, 16, $nombre); break; case 'deleted': $nombre = 'borrado'; $img = toba_recurso::imagen_proyecto('svn/deleted.png', true, 16, 16, $nombre); break; case 'locked': $nombre = 'locked'; $img = toba_recurso::imagen_proyecto('svn/locked.png', true, 16, 16, $nombre); break; case 'ignored': $svn_add = true; $svn_blame = false; $nombre = 'ignorado'; $img = toba_recurso::imagen_proyecto('svn/ignored.png', true, 16, 16, $nombre); break; } $this->info_archivo = "{$path} <span style='font-size: 9px; color:gray'>({$nombre})</span>"; $this->previsualizacion = $codigo; $existe_archivo = file_exists($path); $ver_comandos_svn = $svn->hay_cliente_svn(); if (!$svn->hay_cliente_svn()) { $ver_comandos_svn = false; } //-- Oculta boton eliminar if (!$existe_archivo) { $this->pantalla()->eliminar_evento('eliminar'); $this->pantalla()->eliminar_evento('abrir'); } if (!$ver_comandos_svn || !$svn_blame) { $this->pantalla()->eliminar_evento('svn_blame'); } if (!$ver_comandos_svn || !$svn_diff) { $this->pantalla()->eliminar_evento('svn_diff'); $this->pantalla()->eliminar_evento('svn_revert'); } if (!$ver_comandos_svn || !$svn_add || !$existe_archivo) { $this->pantalla()->eliminar_evento('svn_add'); } if (!$ver_comandos_svn || !$existe_archivo || $svn_add) { $this->pantalla()->eliminar_evento('trac_ver'); } }