Repository 32bit  Forum
Repository 64bit  Wiki

Menu in html ed effetto con php

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: Menu in html ed effetto con php

Messaggioda aschenaz » gio gen 17, 2008 7:21

Beh, un file da includere ci vuole!

Lo scopo è quello di mantenere intestazione, menu etc. in tutte le pagine e cambiare solo il contenuto?

Allora i contenuti li devi mettere su file separati e richiamarli col menu...

La index, quindi, rimane sempre la stessa e, nel punto in cui devono apparire i contenuti, inserisci l'include...

Offtopic: Per il nick l'ho spiegato altrove: ninobi mi aveva stufato e non significava nulla; aschenaz (non ashkenaz), anche se mi ha stufato subito pure quello :lol: , lo usavo già in altre community e significa qualcosa...
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: Menu in html ed effetto con php

Messaggioda samiel » ven gen 18, 2008 1:14

Ok, grazie!
Certo, l'idea di rifare il sito in php va accantonata subito...

Visto che la discussione in questo post è diventata assai dotta,
perché non considerate l'ipotesi (visto che nel forum stanno nascendo
iniziative di wiki sulla programmazione) di scrivere qualcosa
(possibilmente comprensibile) sui siti in php?

M.
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Menu in html ed effetto con php

Messaggioda aschenaz » ven gen 18, 2008 10:35

samiel ha scritto:Ok, grazie!
Certo, l'idea di rifare il sito in php va accantonata subito...

Guarda che non ci vuole molto!
E poi, ci guadagni in tempo per le modifiche successive: ad esempio, se devi cambiare una cosa del menu, la cambi una volta e non per n pagine...
Visto che la discussione in questo post è diventata assai dotta,
perché non considerate l'ipotesi (visto che nel forum stanno nascendo
iniziative di wiki sulla programmazione) di scrivere qualcosa
(possibilmente comprensibile) sui siti in php?

Io potrei anche scriverla, ma poi ci penserebbero bene nuitari e conraid a stroncarmela subito! :lol: :lol: :lol:
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: Menu in html ed effetto con php

Messaggioda conraid » ven gen 18, 2008 11:23

aschenaz ha scritto:Lo scopo è quello di mantenere intestazione, menu etc. in tutte le pagine e cambiare solo il contenuto?

Allora i contenuti li devi mettere su file separati e richiamarli col menu...

La index, quindi, rimane sempre la stessa e, nel punto in cui devono apparire i contenuti, inserisci l'include...


Io sinceramente per una cosa semplice come la sua farei il contrario.
Tante pagine che ora sono in html, fatte invece in php dove da ognuna chiamata header, footer e menù, dove questo è un semplice file html con quelle aggiunte per l'evidenziazione della pagina corrente.
NIente di più. Uno perché non gli serve. Due perché in questo modo può titolare le pagine come vuole e renderle più seo compliance di un index.php che chiama ogni volta un contenuto diverso.

Il tutto IMVHO
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Menu in html ed effetto con php

Messaggioda conraid » ven gen 18, 2008 11:27

aschenaz ha scritto:Io potrei anche scriverla, ma poi ci penserebbero bene nuitari e conraid a stroncarmela subito! :lol: :lol: :lol:


Eh certo, siamo qui in attesa ;-)

però dai, dove sono nate discussioni e stroncature, ne sono venuti fuori anche discussioni interessanti.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Menu in html ed effetto con php

Messaggioda aschenaz » ven gen 18, 2008 12:04

conraid ha scritto:
aschenaz ha scritto:Lo scopo è quello di mantenere intestazione, menu etc. in tutte le pagine e cambiare solo il contenuto?

Allora i contenuti li devi mettere su file separati e richiamarli col menu...

La index, quindi, rimane sempre la stessa e, nel punto in cui devono apparire i contenuti, inserisci l'include...


Io sinceramente per una cosa semplice come la sua farei il contrario.
Tante pagine che ora sono in html, fatte invece in php dove da ognuna chiamata header, footer e menù, dove questo è un semplice file html con quelle aggiunte per l'evidenziazione della pagina corrente.
NIente di più. Uno perché non gli serve. Due perché in questo modo può titolare le pagine come vuole e renderle più seo compliance di un index.php che chiama ogni volta un contenuto diverso.

Il tutto IMVHO

Si, anche questa è un'ottima soluzione.

Per un po' l'ho adottata, per poi preferire questa che uso adesso.
Non so perché, ma mi trovo meglio.

E poi, il classico index.php?page=etc.etc. a me non dispiace. :)
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: Menu in html ed effetto con php

Messaggioda nuitari » ven gen 18, 2008 13:56

Io spesso uso un content manager di questo tipo:

Codice: Seleziona tutto
<?php
require("sources/common.php5");

$content_root = $disk_path . "/contents";

$path_info = $_SERVER['PATH_INFO'];
$query_string = $_SERVER['QUERY_STRING'];
$script_name = $_SERVER['SCRIPT_NAME'];

// normalizzazione dell'url

$path_info = FormsCommon_url_normalize($path_info);
$path_info = FormsCommon_url_stripslashes($path_info);

if (!strlen($path_info) || $path_info == "/")
{
   $path_info = "/index";
   $_SERVER['PATH_INFO'] = $path_info;
}

$is_php = false;

// rileva il file giusto da caricare procedendo con test a ritroso
$tmp = $path_info;
do
{
   if (is_file($content_root . $tmp . ".php5"))
   {
      $path_info = substr($path_info, strlen($tmp));
      $script_name = $tmp . ".php5";
      $is_php = true;
      break;
   }
   elseif (is_file($content_root . $tmp . ".html"))
   {
      $path_info = substr($path_info, strlen($tmp));
      $script_name = $tmp . ".html";
      break;
   }
   if ($tmp == "/index")
      FormsTriggerError("404", E_USER_ERROR, NULL, get_defined_vars());;
   if ($tmp != "/index")
      $tmp = dirname($tmp);
   if ($tmp == "/")
   {
      $tmp = "/index";
      $path_info = "/index" . $path_info;
   }
} while (true);

$oPage = new cFormsPage($site_path, $disk_path, $page_path);
$oPage->title = APP_TITLE;
$oPage->theme = "public";
$oPage->on_load_template = "oPage_on_process_parts";
$oPage->on_load_template_layer = "oPage_on_process_parts";
$oPage->sections["topbar"]["on_load_template"] = "oPage_on_process_parts";
$oPage->sections["navbar"]["on_load_template"] = "oPage_on_process_parts";
$oPage->page_css = array();
$oPage->addCss("agenzia-immobiliare.css", $site_path . "/themes/" . $oPage->theme . "/parsecss.php5/css");

// leggo i settings dal db
$paths = "";
$tmp = $_SERVER['PATH_INFO'];
$tmp = FormsCommon_url_normalize($tmp);
$tmp = FormsCommon_url_stripslashes($tmp);
do
{
   if (strlen($paths))
      $paths .= " OR ";
   $paths .= "path = " . $FormsCommon_db->newToSql(new cFormsData($tmp));
} while($tmp != "/" && $tmp = dirname($tmp));

$sSQL = "SELECT
            *
         FROM
            layout
         WHERE
            " . $paths . "
         ORDER BY
            path DESC
      ";
$FormsCommon_db->query($sSQL);
if ($FormsCommon_db->next_record())
{
   $layer = $FormsCommon_db->getCFormsData("layer")->getValue();
   $topbar = $FormsCommon_db->getCFormsData("topbar")->getValue();
   $navbar = $FormsCommon_db->getCFormsData("navbar")->getValue();
   if (strlen($layer))
      $oPage->layer = $layer;
   if (strlen($topbar))
      $oPage->topbar = $topbar;
   if (strlen($navbar))
      $oPage->navbar = $navbar;
}

if ($is_php)
{
   require($content_root . $script_name);
}
else
{
   $tpl_content = new cTemplate($content_root);
   $tpl_content->load_file($script_name, "main");
   
   $loaded_modules = array();
   
   if (is_array($tpl_content->DVars["main"]) && count($tpl_content->DVars["main"]))
   {
      foreach ($tpl_content->DVars["main"] as $key => $value)
      {
         if ($tmp = preg_match('/\[(\w+)\]/U', $value, $matches))
         {
            if (!isset($loaded_modules[$matches[1]]))
            {
               $tpl_content->set_var($value, include_module($matches[1]));
            }
         }
      }
      reset($tpl_content->DVars["main"]);
   }
   
   $oPage->fixed_pre_content = $tpl_content->rpparse("main", false);
}

$oPage->process();

function include_module($modulename)
{
   global $oPage;
   global $disk_path;
   global $site_path;
   global $page_path;
   
   global $path_info;
   global $query_string;
   global $script_name;
   
   require($disk_path . "/modules/" . $modulename . "/index.php5");
   
   return $out_buffer;
}

function oPage_on_process_parts($oPage, $aTpl)
{
   global $loaded_modules;
   
   $oPage =& $oPage[0];
   $tpl_content =& $aTpl[0];
   
   if (is_array($tpl_content->DVars["main"]) && count($tpl_content->DVars["main"]))
   {
      foreach ($tpl_content->DVars["main"] as $key => $value)
      {
         if ($tmp = preg_match('/\[(\w+)\]/U', $value, $matches))
         {
            if (!isset($loaded_modules[$matches[1]]))
            {
               $tpl_content->set_var($value, include_module($matches[1]));
            }
         }   
      }
      reset($tpl_content->DVars["main"]);
//   FormsTriggerError("DEBUG", E_USER_ERROR, NULL, get_defined_vars());
   }
}
?>


La logica è che file php ed html vengono posizionati tutti dentro /content, accedendo a /content_manager.php5/percorso si ottiene in visualizzazione la pagina indicata, eventualmente passando la restante parte del percorso come parametro path_info.
Il tutto è un po' mischiato al codice del mio framework, ma dovrebbe essere chiaro comunque. Credo..
Avatar utente
nuitari
Linux 2.6
Linux 2.6
 
Messaggi: 777
Iscritto il: dom ott 14, 2007 11:51
Località: San Colombano al Lambro
Slackware: 12.0

Re: Menu in html ed effetto con php

Messaggioda samiel » sab gen 19, 2008 0:22

Tante pagine che ora sono in html, fatte invece in php dove da ognuna chiamata header, footer e menù, dove questo è un semplice file html con quelle aggiunte per l'evidenziazione della pagina corrente.

Ma allora dovrei creare tanti header quante sono le voci dei menu
per poter avere l'effetto activelink. Non è altrettanto antieconomico?
Avrebbe senso effettivamente solo sul footer, che no ncambia mai...
O no?

M.
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Menu in html ed effetto con php

Messaggioda aschenaz » sab gen 19, 2008 9:26

samiel ha scritto:
Tante pagine che ora sono in html, fatte invece in php dove da ognuna chiamata header, footer e menù, dove questo è un semplice file html con quelle aggiunte per l'evidenziazione della pagina corrente.

Ma allora dovrei creare tanti header quante sono le voci dei menu
per poter avere l'effetto activelink. Non è altrettanto antieconomico?
Avrebbe senso effettivamente solo sul footer, che no ncambia mai...
O no?

M.

:?: :?: :?:

Facciamo una cosa: io, appena ho un po' di tempo ( quando? Ormai non riesco nemmeno a leggere tutti i post del forum... :( ), un mini-tutorial lo comincio a scrivere.

Naturalmente, io farò per come la vedo io e secondo le mie conoscenze (semplice ed essenziale). Gli altri poi, se vogliono, possono dire la loro.

Ciao,
nino
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: Menu in html ed effetto con php

Messaggioda conraid » sab gen 19, 2008 12:03

samiel ha scritto:
Tante pagine che ora sono in html, fatte invece in php dove da ognuna chiamata header, footer e menù, dove questo è un semplice file html con quelle aggiunte per l'evidenziazione della pagina corrente.

Ma allora dovrei creare tanti header quante sono le voci dei menu
per poter avere l'effetto activelink. Non è altrettanto antieconomico?
Avrebbe senso effettivamente solo sul footer, che no ncambia mai...
O no?


Ma no, usa il codice che ti ho detto all'inizio in menu.php, o anche in header.php stesso.
Se la pagina si accorge di essere quella si attiva. Per questo esiste $_SERVER['PHP_SELF'] che funziona nel modo giusto se segui la strada che dico io.
Se invece fai un index.php che chiama un contenuto quella variabile sarà sempre index.php
Offtopic: Non dare retta ad i newsgroup dove confondono PHP_SELF con __FILE__
Puoi anche inizializzare una variabile ad ogni pagina e poi valutare quella. Le scelte sono molte.
Io sinceramente ti avevo indicato la regep perché più immediati per darti il suggerimento, ma uso l'inizializzazione della variabile

una pagina chisiamo.php sarà così per esempio
Codice: Seleziona tutto
<?php
$pag = 'chisiamo';
include 'header.php';
...
....
?>


e l'header o conterrà:
Codice: Seleziona tutto
...
...
<li><a href='chisiamo.php' <?php if $pag == 'chisiamo' echo 'class="activelink";  ?>>Chi Siamo</a></li>
...
...


Io lo uso anche per cambiare title, description ed altre cose importanti per i motori di ricerca
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Menu in html ed effetto con php

Messaggioda sir_alex » sab gen 19, 2008 13:13

giberg ha scritto:Io avevo trovato un codice di esempio in un sito (non conoscendo tantissimo di php) che poi ho modificato per me.

In sostanza c'erano i link con descrizione contenuti in un array. Poi veniva "passata al setaccio" un elemento alla volta dell'array e se il link corrispondeva alla pagina corrente veniva stampato in una maniera, se non corrispondeva veniva stampato in un altra. Per aggiungere nuovi link bastava modificare soltanto l'array aggiungendo la pagina più la descrizione (cioè il testo che poi veniva stampato).

Ora non ho in mano il codice. Appena riesco provo a pulirlo dalle mie modifiche (magari trovo anche quello originale).


Io ho fatto così... sett prox recupero il codice e lo metto!
sir_alex
Linux 2.6
Linux 2.6
 
Messaggi: 735
Iscritto il: lun mar 21, 2005 0:00
Località: Milano - Corbola (RO)
Kernel: 2.6.35-22
Desktop: KDE4
Distribuzione: Ubuntu

Re: Menu in html ed effetto con php

Messaggioda samiel » sab gen 19, 2008 21:42

Facciamo una cosa: io, appena ho un po' di tempo ( quando? Ormai non riesco nemmeno a leggere tutti i post del forum... :( ), un mini-tutorial lo comincio a scrivere.

Questa è un'ottima notizia. Mi raccomando, 4 dummies!


M.
samiel
Staff
Staff
 
Messaggi: 5500
Iscritto il: ven gen 16, 2004 0:00
Località: Venezia
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian

Re: Menu in html ed effetto con php

Messaggioda aschenaz » dom gen 20, 2008 15:14

Ecco qua: http://www.slacky.eu/wikislack/index.ph ... plice_Sito 8)

Mi raccomando: forza con le stroncature! :lol: :lol: :lol:
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: Menu in html ed effetto con php

Messaggioda conraid » dom gen 20, 2008 15:30

aschenaz ha scritto:Ecco qua: http://www.slacky.eu/wikislack/index.ph ... plice_Sito 8)

Mi raccomando: forza con le stroncature! :lol: :lol: :lol:


Codice: Seleziona tutto
echo "blah blah \".... \"blah";


non mi piace

Lo so che hai segnalato, ma quella più usata anche nella documentazione di php e zend è

Codice: Seleziona tutto
echo 'blah blah' . $var . 'blah "...." blah';


mettila anche negli esempi

Per il resto come sai io farei all'opposto di quanto hai indicato, ma mi sembra inutile sia ribadirlo sia starne a discutere
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12022
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Menu in html ed effetto con php

Messaggioda aschenaz » dom gen 20, 2008 15:40

Accetto il suggerimento e correggo subito... :)

Per quanto riguarda l'opposto, ho accennato che saranno contemplate soluzioni alternative...
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

PrecedenteProssimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Yahoo [Bot] e 2 ospiti