Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449

    Titolo testuale in menu

    Dovrei inserire un titolo che spezza un menu, come per aprire una specifica sezione.
    Ma si capisce meglio vedendo. Nella pagina
    https://www.giovannifornero.net/inde...gina=andarsene
    dovrei inserire prima degli ultimi 4 link un titolo (pertanto non cliccabile)
    come "Articoli su riviste specialistiche", ma non posso spezzare
    la stringa degli array che compongono le voci di menu.
    Non so se queste informazioni siano sufficiente, in caso fatemi sapere.
    Grazie
    m

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Aggiungo qualche dettaglio.
    Ho creato la struttura dei menu inquesto modo:

    codice:
    $menu=array
        //andarsene
        "andarsene"=>array(
        "campostrini"=>array(),
        "benini"=>array(),
        "lalli"=>array(),
        "radioradicale"=>array(),
        "micromg"=>array(),
        "mastrofini"=>array(),
        "eco_andarsene"=>array(),
        "pianciola_scuola"=>array(),
        "sicp"=>array(),
        "nonmollare"=>array(),
        "maremosso"=>array(),
        "manna"=>array(),
        "risicato"=>array(),
        "adamo"=>array(),
        "dandrea"=>array(),
        ),
        
    );
    ?>(
    e quindi ho fatto stampare i titoli:
    codice:
    ?php
    // il menu sinistro e' dato dal valore della voce dell'array principale
    // corrispondente alla pagina:
    $menusinistro=$menu[$pagina];
    // creo i titoli lunghi del menu sinistro
    $titolimenusx=array(
        // andarsene
        "campostrini"=>"\"Fine vita, scelta di libertà\". <br /> Intervista rilasciata ad &laquo;Alto Adige&raquo;",
        "benini"=>"Recensione in &laquo;Domenica - Il Sole 24 Ore&raquo;",
        "lalli"=>"Recensione in &laquo;Corriere della Sera&raquo;",
        "radioradicale"=>"Intervista rilasciata a &laquo;Radio Radicale&raquo;",
        "micromg"=>"Segnalazione del volume in &laquo;Micromega&raquo;",
        "mastrofini"=>"Recensione in &laquo;settimananews&raquo;",
        "eco_andarsene"=>"Recensione in &laquo;L'Eco del Chisone&raquo;",
        "pianciola_scuola"=>"Recensione in &laquo;laicità della scuola&raquo;",
        "sicp"=>"Recensione in &laquo;SICP - Società Italiana di Cure Palliative&raquo;",
        "nonmollare"=>"Recensione in &laquo;nonmollare&raquo;",
        "maremosso"=>"Intervista rilasciata a &laquo;Mare<em>mosso</em>&raquo;",
        "manna"=>"Saggio di Adelmo Manna",
        "risicato"=>"Articolo di Lucia Risicato",
        "adamo"=>"Articolo di Ugo Adamo",
        "dandrea"=>"Articolo di Robero D'Andrea",
    );

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Nessuno spunto?
    O è la richiesta a essere poco chiara?
    Grazie
    m

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Quote Originariamente inviata da samiel
    O è la richiesta a essere poco chiara?
    Direi di sì.

    Non è per niente chiaro il contesto, per cui è difficile anche solo capire cosa ti si potrebbe consigliare.

    Stai usando qualche framework?
    Dove viene data in pasto quella roba con gli array?

    Quello che hai postato sono solo i contenuti che saranno inseriti poi in dei tag <a> per creare appunto il codice HTML che restituisce dei link.
    Bisogna quindi vedere il PHP che crea tale codice HTML per capire eventualmente come e se si può fare ciò che stai chiedendo.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Nessun framework, codice basilare e molto elementare.
    Allego l'intero index.php:
    https://we.tl/t-tk36oiFijh
    m
    Ultima modifica di samiel; 20-04-2024 a 15:32

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Quote Originariamente inviata da samiel
    Allego l'intero index.php:
    Ho scaricato il file index.php da quel link ma non mi pare abbia a che fare con la pagina che hai linkato inizialmente

    Sei sicuro di aver caricato il file corretto?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Scusa, hai ragione, sono proprio rincretinito
    https://we.tl/t-pgsnTFtBnC
    m

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Ho scaricato il file è dato uno sguardo al codice.
    Non ti nego che ho trovato il codice un po' caotico, sia nella stesura sia nell'impostazione logica della struttura.
    Capisco che sia frutto di un lavoro amatoriale e che sicuramente potrebbe essere meglio impostato e ottimizzato; ad ogni modo, senza andare a stravolgere il tutto, cerchiamo di capire come poter applicare ciò che chiedi col minimo sforzo e massimo rendimento.

    Come prima cosa consiglio di applicare una migliore indentazione così che risulti più leggibile e più semplice da modificare. Personalmente ho sottoposto il codice ad uno dei tanti servizi gratuiti online per applicare una formattazione/indentazione automatica, giusto per capire meglio dove poter mettere le mani.

    Riguardo la tua richiesta di inserire dei "titoli" per separare i vari argomenti del menu, penso non sia così difficile da effettuare.
    C'è da dire però che può essere fatto in svariati modi differenti; dal momento che si tratta di un elaborato "indipendente" (cioè libero da strutture preconfezionate) sarà necessario che il progettista stesso adotti una qualche convenzione propria per poter impostare opportunamente il sistema.

    Personalmente posso giusto consigliarti qualcosa ma dovrai valutare tu se può andare bene, soprattutto secondo le eventuali esigenze del caso.

    Una convenzione potrebbe essere quella di inserire direttamente degli elementi di tipo stringa nel tuo array $menu.
    Dal momento che tutti gli attuali elementi sono degli array, puoi porre una condizione dentro il ciclo foreach in cui viene iterato il menu, così da determinare se l'elemento è un titolo (verificando quindi se il valore è di tipo "stringa") e stamparlo quindi come semplice testo (magari dentro un <div>) piuttosto che come elemento <a>.

    Nell'array menu avrai una cosa del genere:
    Codice PHP:
    $menu = [
        
    // ...

        
    "andarsene" => [
            
    "campostrini" => [],
            
    "benini" => [],
            
    "lalli" => [],
            
    "radioradicale" => [],
            
    "micromg" => [],
            
    "mastrofini" => [],
            
    "eco_andarsene" => [],
            
    "pianciola_scuola" => [],
            
    "sicp" => [],
            
    "nonmollare" => [],
            
    "maremosso" => [],
            
    "Articoli su riviste specialistiche"// Questo elemento viene considerato come titolo
            
    "manna" => [],
            
    "risicato" => [],
            
    "adamo" => [],
            
    "dandrea" => [],
        ],
    ]; 
    Nota l'elemento inserito come testo. In questo caso sarà creato un elemento indicizzato il cui indice è 0. Se dentro lo stesso array aggiungi altri elementi del genere (per creare ulteriori titoli), l'indice numerico sarà impostato automaticamente in modo incrementale.

    Andrai quindi ad impostare in questo modo il ciclo che elabora il menu:
    Codice PHP:
    if (count($menusinistro) > 0) {
        echo 
    '<div id="leftmenu">' "\n" "<ul>";
        foreach (
    $menusinistro as $vocesx => $valoresx) {
            echo 
    "<li>";
            
    // se valoresx e' di tipo stringa considero questo elemento come titolo
            
    if (gettype($valoresx) == "string") {
               echo 
    "<div class=\"leftmenu_item_titolo\">$valoresx</div>";
            } else {
                
    // se vocesx e' diverso da pagina o se esiste una sottosezione
                
    if (!$sezione || $vocesx != $sezione || $sottosezione) {
                    
    // uso questa condizione se voglio colorare diversamente le parti parent
                    
    if ($sottosezione && $vocesx == $sezione) {
                        
    $addstyle2 "style='color:#424242; font-weight:bold;'";
                    } else {
                        
    $addstyle2 "";
                    }
                    echo 
    "<a href=\"index.php?pagina=$pagina&amp;sezione=$vocesx\" $addstyle2>";
                }
                echo 
    $titolimenusx[$vocesx];
                if (!
    $sezione || $vocesx != $sezione || $sottosezione) {
                    echo 
    "</a>" "\n";
                }
            }
            echo 
    "</li>" "\n";
        }
        echo 
    "</ul></div>" "\n";

    Nota la condizione (gettype($valoresx) == "string") che determina se il valore è una stringa, quindi lo applica come elemento di testo
    Ho voluto inserire tale elemento dentro un <div> con classe leftmenu_item_titolo, così da poter usare tale classe nel CSS per applicare ad esempio una qualche formattazione.

    Questa è giusto un'idea; valuta tu e vedi se può andare.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    449
    Il codice funziona!

    Colgo l'occasione per chiederti se ormai vale la pena di mantenere tutti gli array $descrizioni... e $keywords, visto che ormai mi pare l'indicizzazione faccia tutto da sola senza queste voci che appesantiscono molto il codice.

    Mille grazie!
    m
    Ultima modifica di samiel; 22-04-2024 a 18:01

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Quote Originariamente inviata da samiel
    Colgo l'occasione per chiederti se ormai vale la pena di mantenere tutti gli array $descrizioni... e $keywords
    E' un argomento che andrebbe trattato meglio nel forum dedicato: "Motori di Ricerca e Web Marketing";

    Personalmente non sono specializzato sull'argomento SEO ma dal mio piccolo posso dire che ad oggi i meta keyword e description restano ancora utili, se non essenziali, per una buona indicizzazione ed ottimizzazione dei risultati di ricerca. Oltre a questo è chiaramente necessario considerare tutta una serie di altri accorgimenti, come inserire adeguatamente le keyword anche nei contenuti delle singole pagine, impostare una struttura ben organizzata delle intestazioni (elementi <h>), avere degli URL"SEO friendly" e molto altro che andrebbe studiato a dovere sotto l'aspetto SEO.

    In parte vedo che diverse cose sono presenti nel tuo sito ma potrebbero essere ottimizzate ulteriormente. Se passi il tuo sito su un qualsiasi servizio di analisi SEO, otterrai presumibilmente un risultato sufficiente, ma sicuramente migliorabile.

    Tra le cose importanti da migliorare, vedo che ci sono diversi errori di validazione nelle varie pagine del sito. Anche questo influisce negativamente, sia per l'indicizzazione, sia per la corretta fruibilità del sito stesso.

    Passando al vaglio giusto la pagina che hai linkato nel primo post, attualmente sono rilevati 15 errori di validazione:
    https://validator.w3.org/check?uri=h...lidator%2F1.3+

    Anche nel resto delle pagine del sito sono rilevati vari errori.
    Sebbene siano nell'ordine della decina, è sempre consigliabile sistemare tutti gli errori.

    Per ora è tutto ma se ti interessa approfondire questi ulteriori argomenti, ti invito ad aprire delle specifiche discussioni nelle sezioni dedicate del forum, non prima di avere effettuato di tuo delle opportune ricerche.

    Buon proseguimento
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.