# Postazione Internet con Banner

## Apetrini

Ciao a tutti,

volevo chiedere se qualcuno ha mai avuto l'esigenza di creare una postazione internet pubblica con un banner.

Mi spiego meglio....mi Ã¨ stato chiesto di tirare su un pc per andare in internet, che starÃ  in un luogo "diciamo pubblico" . Il fatto Ã¨ che vogliono che ci sia un banner ben visibile(in alto o a destra) durante tutta la navigazione e in qualsiasi sito si vada.

Come potrei realizzare questo?

Un amico mi ha consigliato squid, sapreste darmi delle informazioni piu precise. So che puo togliere banner, ma aggiungerne uno?

Altri modi per eseguire la cosa?

Grazie a tutti.

----------

## .:deadhead:.

Esistono delle estensioni per firefox che permettono di fare ciò: la parola magica è kiosk mode.

Ora fatto ciò non so come potresti metterci il banner, ma magari è facilmente modificabile...

----------

## Apetrini

Avevo gia valutato questa possibilitÃ , ma...

1) Non penso di riuscire ad aggiungere i banner

2) Avere Firefox in fullscreen perenne non permette una comoda navigazione. I tab vanno bene, ma se uno ha bisogno di aprire piu finestre?

Sto cercando in rete...

----------

## .:deadhead:.

 *Apetrini wrote:*   

> 2) Avere Firefox in fullscreen perenne non permette una comoda navigazione. I tab vanno bene, ma se uno ha bisogno di aprire piu finestre?

 I tab rendono l'apertura di nuove finestre inutile. Poi ovvio dipende da che fine farà quella macchina. Cmq con squid hai sì la possibilità di fare robe simili: guarda il funzionamento di privoxy, tu anzichè levare aggiungi... e sei a cavallo..

----------

## Kernel78

 *Apetrini wrote:*   

> Avevo gia valutato questa possibilitÃ , ma...
> 
> 1) Non penso di riuscire ad aggiungere i banner
> 
> 2) Avere Firefox in fullscreen perenne non permette una comoda navigazione. I tab vanno bene, ma se uno ha bisogno di aprire piu finestre?
> ...

 

Sai che non ho mai e dico MAI avuto bisogno di più di una finestra ?

Cmq squid può fare tranquillamente quello che richiedi basta usare un redirect ad un piccolo script che tramite sed modifichi la pagina inserendo subito dopo il tag body il banner.

In questo modo ogni singola pagina avrà quel banner ...

----------

## Apetrini

Calma ragazzi,

la roba non Ã¨ per me, ma evidentemente sarÃ  fatta per gli utonti.

Ora proverÃ² le vostre proposte...

Vedo se riesco a fare quello che ho in mente.... l'idea Ã¨ di avere un frame a destra "sottile" con i banner, per ogni pagina caricata. Con uno schermo grande wide dovrebbe rubare giusto il lato destro.

P.s. dando un occhiata veloce a privoxy , sembra che non riesca ad inserire contenuti, solo rimpiazzarne di esistenti o bloccare.

----------

## Apetrini

 *Kernel78 wrote:*   

> 
> 
> Cmq squid puÃ² fare tranquillamente quello che richiedi basta usare un redirect ad un piccolo script che tramite sed modifichi la pagina inserendo subito dopo il tag body il banner.
> 
> In questo modo ogni singola pagina avrÃ  quel banner ...

 

Ok, cosi pare che riesca a farlo, ma se volessi invece che ogni pagina abbia un frame destro con li i banner? come dovrei fare?

Ã¨ possibile realizzare questo con sed?

----------

## drizztbsd

 *Apetrini wrote:*   

>  *Kernel78 wrote:*   
> 
> Cmq squid puÃ² fare tranquillamente quello che richiedi basta usare un redirect ad un piccolo script che tramite sed modifichi la pagina inserendo subito dopo il tag body il banner.
> 
> In questo modo ogni singola pagina avrÃ  quel banner ... 
> ...

 

Se non mi ricordo male redirect NON fa al caso tuo

----------

## Kernel78

 *drizztbsd wrote:*   

>  *Apetrini wrote:*    *Kernel78 wrote:*   
> 
> Cmq squid puÃ² fare tranquillamente quello che richiedi basta usare un redirect ad un piccolo script che tramite sed modifichi la pagina inserendo subito dopo il tag body il banner.
> 
> In questo modo ogni singola pagina avrÃ  quel banner ... 
> ...

 

Oibò e perchè mai ?

redirect viene usato anche per integrare squidGuard (per esempio) che va a modificare le pagine web richieste dal browser, se al posto di squidGuard ci metti un banalissimo script sed che modifica la pagina inserendo il frame dovresti poter ottenere l'effetto richiesto.

@Apetrini

sarà passata una decade dalla mia ultima pagina web con i frame ma non vedo motivi tecnici per cui sed non possa alterare una pagina inserendo un frame o meglio inserire la pagina richiesta in una struttura a due frame, quello laterale con i banner e quello principale con il contenuto originario.

----------

## Apetrini

Ho un problema con il redirect.

Ho provato ad usare il file di esempio di redirector in perl.

il codice Ã¨ questo 

```

#!/usr/bin/perl

$|=1;

while (<>) {

    s@Apetrini@Ape@;

    print;

}

```

in /etc/squid/squid.conf c'Ã¨ la voce " redirect_program (percorso script sopra)".

Quello che sto cercando di fare Ã¨ di sostituire tutte le stringhe "Apetrini" con "Ape".

Non lo fa!!

Se digito su google Apetrini, lo trasforma in Ape, ma se carico una pagina (per es questa) le scritte Apetrini non sono trasformate in Ape.

Lo script di per se funziona.... ho fatto un paio di prove:

Se salvo il sorgente di gesta pagina e lo metto in "gen.htm" e se batto un 

```

cat gen.htm | ./red.pl > out.txt

```

in out.txt ho tutte le occorrenze di Apetrini cambiate con Ape.

Ora la domanda da 100 mila euro Ã¨....perche diavolo squid non cambia le occorrenze...

Se qualcuno sa spiegarmi tutto cio gli sarei grato.

Grazie.

----------

## Kernel78

Parto con una lista di domande banali ma a me sono capitate quasi tutte nel tempo e producevano questo inconveniente ...

- dopo aver cambiato la configurazione di squid gli hai detto di ricaricarla (o l'hai riavviato)

- hai pulito la cache del browser

- hai controllato che l'utente usato da squid (normalmente si chiama squid) abbia i permessi per lanciare il tuo script

- hai controllato se cosa viene riportato nei log di squid ?

- prova a inserire un qualche debug nel tuo script così ti accorgi se viene eseguito ...

----------

## makoomba

non è così banale perchè squid, al redirector, passa l'url e non il contenuto della pagina.

il redirector, nel tuo caso, dovrebbe prelevare la pagina, processarla, e fornirla a squid tramite un redirect ad una risorsa locale

tipo : http://ip.squid/paginaModificata.html

----------

## drizztbsd

Io l'avevo detto che redirect non faceva al caso tuo

----------

## Kernel78

 *makoomba wrote:*   

> non è così banale perchè squid, al redirector, passa l'url e non il contenuto della pagina.
> 
> il redirector, nel tuo caso, dovrebbe prelevare la pagina, processarla, e fornirla a squid tramite un redirect ad una risorsa locale
> 
> tipo : http://ip.squid/paginaModificata.html

 

ahhh ... ma funziona anche se gli si passa qualcosa tipo file:///tmp/paginaModificata.html ?

In tal caso basta che lo script scriva la pagina modificata in un file temporaneo e siamo a cavallo ...

@drizztbsd

Un po' meno disfattismo e qualche consiglio costruttivo non guasterebbero, inoltre redirect può essere usato in questo caso, semplicemente non è una cosa banale come credevo inizialmente e visto che tu non proponi nulla di più immediato ...  :Wink: 

----------

## makoomba

 *Kernel78 wrote:*   

> ahhh ... ma funziona anche se gli si passa qualcosa tipo file:///tmp/paginaModificata.html ?

 

il redirect viene passato al browser, quindi la risorsa dev'essere accessibile dal client.

quindi se proxy e client sono sulla stessa macchina funziona.

tuttavia, la soluzione dell'iframe non è affatto semplice come sembra.

innanzi tutto, se il redirector modifica l'url relativo alla sorgente dell'iframe si genera un loop

ci sono pagine che fanno il detect del frame e forzano un reload della pagina (altro loop).

JS ed ajax costituiscono altre rogne da tenere in considerazione.

----------

## drizztbsd

 *Kernel78 wrote:*   

>  *makoomba wrote:*   non è così banale perchè squid, al redirector, passa l'url e non il contenuto della pagina.
> 
> il redirector, nel tuo caso, dovrebbe prelevare la pagina, processarla, e fornirla a squid tramite un redirect ad una risorsa locale
> 
> tipo : http://ip.squid/paginaModificata.html 
> ...

 

Beh basta farsi un mediator proxy su misura che faccia quello che deve fare, oppure (meglio) fare qualcosa a livello client

----------

## makoomba

per modificare l'html "on the fly" si possono usare i filtri di privoxy:

http://www.privoxy.org/user-manual/actions-file.html#FILTER

----------

## Apetrini

Ok... ho fatto un po' di prove. Ora la situazione Ã¨ la seguente:

1) Ho capito chiaramente che il redirect_program non fa al caso mio

2) UserÃ² direttamente privoxy e farÃ² il semplice banner in testa alla pagina. Il frame Ã¨ veramente complesso per quanto riguarda loop.

Ora perÃ² sorgono altri problemi.....

Per fare una prova ho provate a mettere l'immagine di google in alto su ogni pagina.

Il risultato Ã¨ parzialmente giusto. Parzialmente nel senso che se visito www.kernel.org o questo forum l'immagine Ã¨ visibile. Ma se vado su www.youtube.com o www.punto-informatico.it non viene visualizzato nulla.

qualcuno ne sa il motivo?

vi posto un po' di file:

default.filter:

```

FILTER: foo Cambia body

s/<body/<body><img src=\"http:\/\/www.google.it\/images\/firefox\/google.gif\"  \/>/g

```

default.action:

```

{+filter{foo}}

/

```

il "/" dovrebbe far macciare tutti i siti.

Vorrei ringraziare tutti per l'aiuto che mi state dando.

Grazie.

----------

## makoomba

se il sito utilizza elementi con posizionamento assoluto, il banner potrebbe essere coperto.

ma potrebbero esserci mille altre ragioni.

il problema di fondo è che, volendo risolvere il problema modificando il sorgente della pagina, 

vai in contro a tutta una serie di casi "particolari".

alcuni esempi che mi vengono in mente: 

- il banner altera la geometria del sito causando la scomparsa del menu di navigazione

- frames -> il banner viene visualizzato più volte.

- pagine html caricate dinamicamente tramite ajax

- ajax responses che contengono il tag "<body"

----------

## Apetrini

Non mi sono basato sull'aspetto della pagina, ma sul sorgente.

Nel sorgente non c'era il replace che avevo fatto.

E poi se disabilito java e javascript l'effetto Ã¨ lo stesso: niente filter.

Sembra quasi che per qualhce ragione non fa il match.

Direi quindi:

Non sono problemi di layout; neanche il sorgente Ã¨ modificato.

Non Ã¨ un problema di ajax e affini, poiche se disabilito javascript e java non fa lo stesso quello che deve fare.

Non so piu dove sbattere la testa...

----------

## makoomba

non mi riferivo, nello specifico, ai due siti che hai citato tu.

ho fatto considerazione più generali sui problemi che potresti incontrare modificando il sorgente della pagina.

io tenterei una modifica di browser.xul integrando il banner direttamente nell'interfaccia di firefox.

----------

## Apetrini

 *makoomba wrote:*   

> non mi riferivo, nello specifico, ai due siti che hai citato tu.
> 
> ho fatto considerazione piï¿½ generali sui problemi che potresti incontrare modificando il sorgente della pagina.
> 
> io tenterei una modifica di browser.xul integrando il banner direttamente nell'interfaccia di firefox.

 

Moolto interessante....non ho mai visto questa cosa. ProverÃ² a laggermi un po' di documentazione, vediamo se mi capisco come devo fare.

Grazie intanto.

----------

## Apetrini

Bene... ho fatto qualche passo in avanti.

Modificando il file browser.xul (che sta dentro browser.jar) sono riuscito a modificare l'interfaccia di Firefox.

Mi Ã¨ permesso inserire immagini; per creare un "link" sfrutto javascript e funziona tutto...

Molto bene, vorrei ringraziare tutti quanti per l'aiuto, un grazie speciale a makoomba per avermi indicato la retta via.

Aspetto ancora un po' a mettere il tag risolto, voglio prima provare il tutto per bene su strada.

----------

## Kernel78

 *Apetrini wrote:*   

> Bene... ho fatto qualche passo in avanti.
> 
> Modificando il file browser.xul (che sta dentro browser.jar) sono riuscito a modificare l'interfaccia di Firefox.
> 
> Mi Ã¨ permesso inserire immagini; per creare un "link" sfrutto javascript e funziona tutto...
> ...

 

fiko, non è che posteresti anche un diff in modo da farci vedere le tue modifiche ?

----------

## Apetrini

Non occorre un diff, non Ã¨ mica una soluzione pulita.... Ã¨ una cosetta veloce e sporca.

In pratica bisogna:

Farsi 1 copia del file /usr/lib/mozilla-firefox/chrome/browser.jar. Decomprimerlo, in realtÃ  Ã¨ un semplice file zip.

Andare nella cartella

```

content/browser

```

e cercare il file browser.xul. Apritelo con un editor di testi.

XUL Ã¨ un linguaggio xml e piu precisamente XML User Interface Language, ossia un linguaggio che descrive le interfacce.

Mi Ã¨ bastato aggiungere 

```
 <image src="http://www.miosito.com/banner/banner1.jpg"  onclick="window.open('http://www.miosito.com','Prova')" />
```

all'inizio dentro il tag <windows>.

Ora non resta che farsi una copia del file originale browser.jar. Zippare la directory content e rinominarla in browser.jar. Sovrascrivere

 /usr/lib/mozilla-firefox/chrome/browser.jar. Lanciare Firefox.

P.s volendo si possono usare anche tag html all'interno di file xul. Bisogna pero dire che un po di cose come i "href" non funzionano, motivo per cui ho usato javascript per aprire una nuova pagina.

Bisogna comunque includere il namespace delle definizioni dei tag html con

```

xmlns:html="http://www.w3.org/1999/xhtml"

```

e poi ovviamente fare lo scope dei tag con "html:", per esempio ...

```

<html:img id="gigi" src="gigi.gif"/>

```

Ora sono un po' di fretta, se ho tralasciato qualcosa, chiedete....

----------

