Regresar a la página www.ComoCrearTuWeb.com
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 21

Tema: Menu en documento txt

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11

    Menu en documento txt

    Buenas a todos:

    Nota: he creado un hilo nuevo dado que en el hilo que pregunte no obtengo respuesta.

    Quiero saber para aquellas personas que no trabajamos con ningún programa especializado para crear webs (dreamweaver, html-kit, etc) y que trabajamos con editores de texto (en mi caso Sublime Text) como podemos hacer para crear los enlaces del menú en un archivo separado, me explico; crear un documento con una extensión determinada (en este caso me refiero a la extensión txt) en la cual, sea en uno o varios archivos, definiremos los enlaces a usar dependiendo de la posición del archivo HTML.

    Explico esto de "dependiendo de la posición":

    - Si es el index, tendremos un archivo txt llamado "enlaces-index" donde definiremos los enlaces solo para el index.

    Si entramos en una carpeta, la situación o posición del archivo con respecto al index varia, es decir, para acceder a carpetas donde desde el index decíamos "ejemplo/ejemplo.html" ahora necesitamos "../ejemplo/ejemplo.html".

    - Entonces, para este caso (nos referimos al caso de que estemos dentro de una carpeta) definiremos otro txt con los enlaces para todos los archivos.

    Asi sucesivamente en caso de que entremos a mas carpetas.

    Después dentro de cada archivo HTML definiremos una regla para que recoja los enlace de un archivo txt u otro.


    P.D:

    Esto que coloco a continuación es una aclaración para aquellos que no saben como generar un código genérico para determinados archivos HTML. El código que coloco a continuación realiza la siguiente acción: imaginemos que definimos los enlaces para un HTML que esta dentro de una carpeta, tendríamos manualmente que copiar, pegar el código en otro archivo HTML (que este dentro de una carpeta después del index al igual que este) y cambiar los enlaces para que funcionen. Existe una manera de generalizar el código para no tener que estar modifican dolo todo el tiempo. Es el código que dejo a continuación:


    Código:
    <!-- Imaginemos que este es el menu del archivo 1 -->
    
    <ul>
       <li><a href="archivo_1.html">Enlace</a></li>
       <li><a href="carpeta_2/archivo_2.html">Enlace</a></li>
       <li><a href="carpeta_3/archivo_3.html">Enlace</a></li>
       <li><a href="carpeta_4/archivo_4.html">Enlace</a></li>
    </ul>
    
    <!-- Para el archivo 2 haríamos lo siguiente -->
    
    <ul>
       <li><a href="carpeta_1/archivo_1.html">Enlace</a></li>
       <li><a href="archivo_2.html">Enlace</a></li>
       <li><a href="carpeta_3/archivo_3.html">Enlace</a></li>
       <li><a href="carpeta_4/archivo_4.html">Enlace</a></li>
    </ul>
    
    <!--
     Asi sucesivamente para cada archivo
    
     Bueno, a mi ver creo que esto todo el mundo lo abra, pero siempre existe algún despistado como yo que no se da cuenta
    
     Podemos en lugar de ir modificando el menú para cada "archivo x" definir un menú general del siguiente modo
    
     -->
    
    <ul>
       <li><a href="carpeta_1/archivo_1.html">Enlace</a></li>
       <li><a href="carpeta_2/archivo_2.html">Enlace</a></li>
       <li><a href="carpeta_3/archivo_3.html">Enlace</a></li>
       <li><a href="carpeta_4/archivo_4.html">Enlace</a></li>
    </ul>
    
    <!-- 
    
     Abra gente que diga que menuda tontería, voy a coger pegarlo en cada archivo HTML y simplemente quitar la palabra "carpeta_x/" del archivo en el que me encuentre.
    
     Esta equivocado, en lugar de estar quitando ni añadiendo nada, el menú se queda de ese modo, la explicación es fácil. 
    
     En lugar de estar modificando cada enlace dependiendo del archivo, lo que hago es dejar definido que, aunque este en la "carpeta_x" voy a salir y volver a entrar en la misma
     carpeta para abrir el "archivo_x". De este modo dejo de estar modificando el menú para cada archivo porque el navegador volverá a entrar a la misma    carpeta. De este modo
     si estoy en la "carpeta_1" y hago clic en el enlace para recargar "archivo_1" el navegador interpretara lo siguiente: "estoy en carptea_1,
     salgo de esta, entro a carpeta_1, ejecuto archivo_1.html"
    
     Como podéis comprobar, el navegador vuelve a situarse en la misma carpeta que estaba y ejecuta el archivo correcto. Así que, al copiar el menú a otro archivo este ya tiene
     definido que debe salir de la carpeta en la que esta y entrar a otra carpeta diferente para ejecutar el "archivo_x", mientras que para su propio archivo ocurrirá lo mismo
     que en el ejemplo.
    
     Por si alguien cree que esto da error en el W3C, decir que no ve esto como un error de redundancia ni nada por el estilo.
    
    -->
    Puede parecer una tontería, pero aprovecho este ejemplo para aclarar lo siguiente, este código seria el que definiría dentro del txt para aquellos archivos que estén dentro de, 1, 2 o 3 carpetas, dejando definido dentro de este el menú con el código generalizado.

    Si alguien no entiende que es lo quiero hacer por favor decirlo e intentare explicarme de mejor forma.

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    Hola!

    ¿Qué has intentado hasta el momento y por qué no ha funcionado (algún error o algo por el estilo)?

    Para leer los contenidos del archivo, usa file_get_contents. Por otro lado, si necesitas leer los archivos que hay en una determinada carpeta, puedes usar scandir:

    Código PHP:
    $dir "mis_archivos/txt";
    $files_in_dir scandir ($dir);

    foreach (
    $files_in_dir as $file)
    {
        
    // Haces algo con $file. $file contiene la ruta completa hacia el archivo.
        // Por ejemplo:
        
    echo file_get_contents ($file);

    Una pregunta aparte: ¿por qué estas creando un gestor de contenidos si puedes usar Wordpress, Joomla, Drupal u otro gestor? Tal vez no estás creando un gestor de contenidos, pero estas utilizando todas las funciones que ya incorpora uno.

  3. #3
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Buenas skaparate:

    El programa que uso para programación web es el editor de texto "Sublime Text". Es un editor de texto que viene preparado para poder programar en bastantes lenguajes de programación. No uso wordpress, dreamweaver, html-kit, ni nada por el parecido dado que, hace un tiempo (cuando empece a programar páginas web), intente usar un par de programas y me daban algunos errores, después descubrí este programa y me es muy útil, no solo para las páginas web, pero defecto que tiene es que no me ofrece funciones como esta por la que pregunto.

    Con respecto al archivo del menú lo que pretendo es lo siguiente, introducir cierto código en HTML para obtener el contenido del archivo txt y que este sea introducido en el HTML, me explico y aclaro mejor.

    No tengo nada configurado hasta el momento, nunca he realizado nada de este estilo, entonces, lo que tengo en mente era si, a través de de algún lenguaje de programación como javascript, php o incluso el propio HTML, es posible introducir el contenido de un archivo txt dentro del HTML. Lo que contendría este archivo seria un menú programado para ciertos archivos, de este modo si necesito modificar el menú no tengo que archivo por archivo.

    Ejemplo:

    Documento txt:
    Código:
    <!-- Menú de los archivos 1, 5-7, 9 -->
    
    <ul>
    <li>Enlace 1</li>
    <li>Enlace 2</li>
    <li>Enlace 3</li>
    <li>Enlace 4</li>
    <li>Enlace 5</li>
    </ul>
    HTML:
    Código:
    <!-- Menu x -->
    
       Introduce aquí el contenido del documento txt
    Obviamente, para introducir el contenido del archivo txt dentro del HTML puede ser usando Javascript, php, cualquier código, pero no se como se hace. Así que lo que solicito en este hilo es la información para poder realizar esa acción.

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,079
    Poder de Reputación
    25
    Entiendo para que sirve Sublime Text :P, pero estas confundiendo los términos.

    Sublime text, Dreamweaver, HTML-Kit, Notepad++, bloc de notas u otro, son herramientas para crear páginas web o un sitio completo, mientras que Wordpress, Joomla y Drupal son CMS, que viene del inglés Content Management System, lo que se traduce como "Sistema de Administración de Contenidos". Te recomiendo que revises la definición de CMS y de los que he mencionado.

    Sobre lo que debes hacer:

    1.- Crear un formulario donde se ingrese la información.
    2.- Enviar los datos a un archivo que los procese y guarde donde deba. Usa file_put_contents para guardar la información en un archivo.
    3.- Dependiendo del archivo que se cargue (index.php, por ejemplo), leer el archivo que deseas (menu-index.txt) con las funciones que mencioné antes.

    Para leer el archivo, yo haría una función así:

    Código PHP:
    function leer_parte ($parte$seccion)
    {
        
    $file "/partes/$parte-$seccion.txt";
        return 
    file_get_contents ($file);

    Código PHP:
        // Así usarías leer_parte (en otro archivo)
        <nav>
            <ul id="menu-principal">
                <?php
                    $parte 
    "menup";
                    
    $seccion "index";
                    echo 
    leer_parte ($parte$seccion);
                
    ?>
            </ul>
        </nav>
    Esto se podría automatizar, pero ya es más complejo. Si quieres ahorrarte trabajo busca y aprende a usar un framework MVC (Model View Controller, Modelo Vista Controlador). CodeIgniter es uno de estos frameworks (no son herramientas para crear sitios web como Dreamweaver).

  5. #5
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    20
    Dejen meterme en su tema, mi pregunta principal seria que soluciona el adoptar este sistema de menus en archivo txt.

    Si lo que quieres son menus personalizados para cada seccion o parte de tu web, sin hacer algo tan elaborado, yo implementaria en un solo archivo php todos los links que quiero usar, y utilizar funciones para cada seccion, por ejemplo:

    Código PHP:
    <?php
    # Enlaces De La Web X


    function menu($seccion='index'){
        switch(
    $seccion){
            case 
    'seccio-x':
                
    /* links de la seccion X*/
                
    $links='<ul>
                            <li>Enlace 1</li>
                            <li>Enlace 2</li>
                            <li>Enlace 3</li>
                            <li>Enlace 4</li>
                            <li>Enlace 5</li>
                        </ul>'
    ;
            
            break;
            case 
    'seccio-y':
                
    /* links de la seccion Y*/
                
    $links='<ul>
                            <li>Enlace 1</li>
                            <li>Enlace 2</li>
                            <li>Enlace 3</li>
                            <li>Enlace 4</li>
                            <li>Enlace 5</li>
                        </ul>'
    ;
            
            break;
            case 
    'seccio-z':
                
    /* links de la seccion Z*/
                
    $links='<ul>
                            <li>Enlace 1</li>
                            <li>Enlace 2</li>
                            <li>Enlace 3</li>
                            <li>Enlace 4</li>
                            <li>Enlace 5</li>
                        </ul>'
    ;
                    
            break;
            default:
                
    /* links del index por default */
                
    $links='<ul>
                            <li>Enlace 1</li>
                            <li>Enlace 2</li>
                            <li>Enlace 3</li>
                            <li>Enlace 4</li>
                            <li>Enlace 5</li>
                        </ul>'
    ;
        }

        echo 
    $links;
    }

    ?>
    entonces para llamar a cualquier menu seria tan facil como incluir el archivo que contiene todos los menus y despues simplemente llamar a la funcion menu con la seccion indicada:

    Código PHP:
    <?php
    include('archivo_de_links_con_ruta_absoluta.php');
    # ruta Absuluta por ejemplo /home/usuario/public_html/links.php
    ?>

    <!DOCTYPE html>
    <html lang="es">
    <head>
    </head>
    <body>
        <nav>
          <?php 
            menu
    ('seccion-x');
          
    ?>
        </nav>
    </body>
    </html>
    Asi lo aria yo si tubiera que utilizar algo como lo que mencionas.

  6. #6
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Gracias por la información serverdns. Probare a ver si implemento el código y que funcione. ¿No daria problema el subir con la ruta absoluta al servidor? (dado que la ruta no es la misma cuando este se sube al servidor)

    Skaparate, el código que me facilitaste lo probe y no me funcion. Pongo las etiquetas del PHP de manera correcta pero el navegador cuando lo ejecuto (con un emulador de php) me coloca todo el contenido PHP como un comentario HTML.

  7. #7
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    20
    Mi recomendacion es que todas las pruebas cuando trabajes con PHP las realices en un servidor, y la ruta absoluta debe ser la del servidor donde se ejecuta de lo contrario no se encontrara el archivo, dado que utilizas directorios deberas utilizar rutas absolutas al incluir los archivos de PHP para evitar errores.

    No se que tan grande sea tu web, pero el hecho de utilizar directorios para las secciones, y dentro de estos los archivos de la seccion y su archivo de menu txt, se me hace muy complicado de entender y cuanto mas valla creciendo la web te llenaras de mas y mas archvios, si tu web sera grande y se actualizara constantemente lo mejor y mas recomendable es usar base de datos para todo el contenido de la web.

  8. #8
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Buenas:

    Decir que es una página web pequeña, pero intentare tener todos los consejos en mente para poco a poco ir mejorando.

    El código que me pasaste lo he probado (con el emulador de PHP). Me pasa lo mismo que con el código de skaparate, el emulador me coloca el código entre las etiquetas de comentario de HTML. Intentare subirlo al servidor y probar desde alli.
    Última edición por alex222en; 24/05/2015 a las 19:36

  9. #9
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Cita Iniciado por alex222en Ver Mensaje
    Buenas:

    Decir que es una página web pequeña, pero intentare tener todos los consejos en mente para poco a poco ir mejorando.

    El código que me pasaste lo he probado (con el emulador de PHP). Me pasa lo mismo que con el código de skaparate, el emulador me coloca el código entre las etiquetas de comentario de HTML. Intentare subirlo al servidor y probar desde alli.
    Hola:

    He probado el código que me has pasado, junto con el que me paso skaparate, los dos los he subido al servidor pero a la hora de ejecutarlos el servidor los devuelve entre comentarios de HTML

    Ej:

    Esta así: <?php mi código... ?>

    El servidor me devuelve: <!--?php mi código... ?-->

    ¿A que se puede deber esto?

  10. #10
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    20
    la principal causa es que el servidor no esta configurado para ejecutar php embebido en paginas html, y con extencion .html, esto se soluciona cambiando la extencion de .html a .php o añadir la directiva al archivo .htaccess para ejecutar el php en las paginas .html

    # Directiva para ejecutar PHP en HTML
    AddType application/x-httpd-php .html .htm

    Añadir la linea anterior a un archivo .htaccess y subirlo a la raiz de tu sitio deberia solucionar el problema, o cambiar la extencion de tus archivos a .php

  11. #11
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Agradecerte serverdns por la ayuda. Ahora tengo la siguiente duda, los enlaces se crean correctamente, pero los estilos no se aplican al menu; me imagino que sea por cosa de que los enlaces entran desde el php (y no como estaba antes directo en el HTML), ¿Como puedo hacer que los estilos se apliquen al menu?

  12. #12
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    20
    No, si los estilos no se aplican debe haber algo mal en el codigo html generado, ya que no tiene nada que ver como son generados los enlaces, algun detalle se te debe estar pasando, incluir la hoja de estilos quizas, quizas los identificadores o las clases de los enlaces deben estar erroneos.

    si copiaste y pegaste los enlaces de como estaban en el html al archivo php deberia funcionar, te sigiero que cuando realices una pregunta debes tantos datos he ifnormacion como sea posible, porque preguntas cosas en las que no se te puede ayudar con claridad porque desconocemos completamente la situacion, por ejemplo tu ultima pregunta sobre los estilos, mi respuesta para esa pregunta en particular seria hacerlos Bien, ya que desconosco completamente tu codigo como para decirte donde podria estar el error.

  13. #13
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    gracias, ya está mi error. no tengo el código delante ahora mismo para confirmar que es ese error, pero si no me acuerdo mal ya sé dónde estás muchas gracias por la ayuda prestada

  14. #14
    Me va gustando esto... Habitante
    Fecha de Ingreso
    26 jul, 13
    Mensajes
    116
    Poder de Reputación
    11
    Por cierto, al editar la extensión del archivo ¿el servidor sigue reconociendo que debe ejecutar el archivo con el nombre index o tengo que cambiar alguna configuración?

  15. #15
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    20
    Generalmente el servidor esta configurado para mostrar el archivo index.html, index.htm o index.php cualquiera que encuentre, y si existen los tres se ejecutara dependiendo del orden en la configuracion:

    DirectoryIndex index.html index.htm index.php

    El orden esta dado por la linea anterios en la configuracion, claro para un servidor con Apache, se buscara el index.html, si no se encuentra se busca el index.htm, si tampoco se encuentra se busca index.php y si tampoco se encuentra enconces se listara el directorio siempre y cuando no se especifique otra configuracion.

Página 1 de 2 12 ÚltimoÚltimo

Temas Similares

  1. link a un documento PDF
    Por santibareno en el foro Foro General
    Respuestas: 3
    Último Mensaje: 20/06/2012, 01:17
  2. CCTW en documento
    Por joma27 en el foro Tutoriales Varios
    Respuestas: 1
    Último Mensaje: 16/11/2009, 18:17
  3. Documento en mi página web
    Por Desconocido en el foro Foro General
    Respuestas: 13
    Último Mensaje: 31/07/2009, 13:17

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •