Ciao a tutti!
Dopo la "simulazione" in un mio post precedente... - http://www.drupalitalia.org/node/10954 - di una pagina di accesso negato 403 usando il modulo "Menu per Role" che mostrava contenuti diversi ad altrettante tipologie di utenti ma, senza di fatto "bloccare" l'accesso vero e proprio ai contenuti tramite i vari moduli (Taxonomy Access Control - Access Control etc etc...), ecco la soluzione definitiva.
L'esempio è sul tema Garland, il menu statico è in Flash, ma nessuno ci vieta di realizzarlo in CSS...
1. In "page.tpl.php" del tema Garland (riga 50...) sostituire:
<?php if (isset($primary_links)) : ?>
<?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>
<?php if (isset($secondary_links)) : ?>
<?php print theme('links', $secondary_links, array('class' => 'links secondary-links')) ?>
<?php endif; ?>
con:
<?php if (array_search('boss', $user->roles)): ?>
<?php if (isset($primary_links)) : ?>
<?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>
<?php if (isset($secondary_links)) : ?>
<?php print theme('links', $secondary_links, array('class' => 'links secondary-links')) ?>
<?php endif; ?>
<?php else: ?>
<div id='mio_menu_statico'>
<embed src='/dplstaticpslink/link_negato_demo.swf'
quality='high'
pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=S...
type='application/x-shockwave-flash'
wmode='transparent'
width='700'
height='61'
bgcolor='#0'>
</embed>
</div>
<?php endif; ?>
2. Inserire il codice *.css; in style.css o in uno style custom:
/**
* Mio menu statico.
*/
#mio_menu_statico {
margin-left: 500px;
padding-top: 15px;
}
3. Inserire (nel mio caso...) "/dplstaticpslink/link_negato_demo.swf" nella "root" principale del sito - notare che nel codice dell'oggetto flash ho inserito - wmode='transparent' - per rendere il background trasparente in modo da lasciar visibili solo i pulsanti...
Mah... mi sembra di non aver tralasciato nulla... eventualmente farò delle rettifiche...
Tutto questo mi è stato possibile grazie all'aiuto di Mr. John (jhl.verona) che ha elaborato praticamente tutto il codice dei Primary e Secondary Links in modo da visualizzare l'HTML statico (in questo caso il menu...) che avevo pensato di inserire per rendere indipendente/bypassare il meccanismo che faceva "scomparire" le voci di menu qualora la pagina a cui facevano riferimento/puntavano fosse bloccata da qualche modulo di controllo degli accessi, appunto...
Sembra ci siamo riusciti! ...credo
Ecco il link della demo:
http://www.giuliweb.com/dplstaticpslink
Ciao
Kipper
Works as advertised (funziona come da pubblicità)... ;-)
Più imparo, più dubito.
Eeeeevvvabeneeee Mr. John!
...d'ora in poi solo esempi senza pubblicità, non era mia intenzione... tolto contatti!
http://www.giuliweb.com/dplstaticpslink
Ciao
Giuliano
Mi hai frainteso - cioè non mi sono spiegato bene...
La frase "works as advertised" che io avevo bruttalmente tradotto in "funziona come da pubblicità" significa che fa esattamente quello che le specifiche dicono che fa - una cosa molto raro oggi giorno. In più avevi messo in pratica quello che dicevi, permettendoci di provarlo. Bravo davvero - hai fatto una cosa in più che è molto utile.
Devi fare due cose: 1. non prendermi per la lettera, 2. rimetti il sito come era. ;-)
Più imparo, più dubito.
OK John, tutto apposto come prima!
http://www.giuliweb.com/dplstaticpslink
Ciao
Giuliano
Mah... me ne esce sempre una nuova...
Il menu funziona però, tuttavia, mi sorge un'altro problema. L'ho già risolto però qualcosa mi dice che posso semplificarmi la vita ma come!?
Sarò il più breve possibile... se ci riesco...
Tenendo sempre presente che il tuo codice va inserito in "page.tpl.php", nella cartella del mio tema ho questo scenario (una parte...):
node-costruttori_italia.tpl.php
page-node-costruttori_italia.tpl.php
node-costruttori_europa.tpl.php
page-node-costruttori_europa.tpl.php
node-modelli_italia.tpl.php
page-node-modelli_italia.tpl.php
node-modelli_europa.tpl.php
page-node-modelli_europa.tpl.php
Come si può notare, ho creato un "page-node-ctype.tpl.php" per ogni "node-ctype.tpl.php" - Questo per richiamare eventuali "stili - jscript etc..." riferiti ad un "node-ctype.tpl.php" specifico... spero di riuscire a spiegarmi...
Mr. Bohz, venerdì al nostro ritrovo, mi ha giustamente fatto notare che non è necessario creare un "page-node-ctype.tpl.php" per ogni "node-ctype.tpl.php" (però si parlava solo a livello di CSS e, infatti, aveva ragione...) - Il codice CSS viene intercettato benissimo da tutti i CType semplicemente aggiungendolo allo "style.css" di default nella cartella del tema (o al limite aggiungerne altri "my_custom_style_01.css" sempre nella cartella del tema con l'aggiunta anche di "stylesheets[all][] = my_custom_style_01.css" nel file ".info del tema" per farglielo riconoscere...) e fin qui è OK ma, facendo dei test (prima di eliminare tutti i "page-node-ctype.tpl.php"), mi sono subentrati dei dubbi con relative conferme che mi "costringono" (credo...) a mantenere questo mio attuale setup!
Venendo al sodo, sempre stando sul discorso del codice del "menu statico", ho notato, che per farlo apparire in tutti i miei CType devo inserirlo in tutti i "page-node-ctype.tpl.php" altrimenti, se per es. NON lo inserisco in "page-node-modelli_italia.tpl.php", quando vado a visualizzare tale nodo (node-modelli_italia.tpl.php), mi si visualizzano i Primary e Secondary Links dinamici anzichè il menu statico!
Quindi a questo punto mi chiedo:
E' ragionevole creare tanti "page-node-ctype.tpl.php" per ogni "node-ctype.tpl.php" o esiste un modo per avere il solo "page.tpl.php" e riuscire in qualche modo a controllare il tutto!!!
Ripeto, a me sta funzionando tutto però, aggiungere codice a tutti i "page" ogni qualvolta devo apportare modifiche (anche se il menu statico non ne richiede molte...) sinceramente è un po una rottura di scatole!
Ciao
Giuliano
Buona la domanda - continuiamo qui http://www.drupalitalia.org/node/11065 ?
Più imparo, più dubito.