Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
pagine stile wikipedia mobile
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 09 Set 2012 15:08    Oggetto: pagine stile wikipedia mobile Rispondi citando

Salve a tutti,

ho delle pagine in html e php, contenenti varie voci e vorrei farle in stile wikipedia mobile, nel senso che si clicca sul titolo (topic) e sotto appare tutto il testo che vi appartiene, linko una pagina random da wikiepdia nel caso non fosse chiaro quello che intendo:
wikipedia

(se il browser vi rimanda sulla pagina non mobile dovete andare in basso a destra per lo switch)

Sulla pagina linkata potete cliccare su:
- Gameplay
- History
- Reception
- See also
- References
- External links
per far apparire e scomparire il testo, mi chiedevo se fosse possibile fare una cosa analoga in php, purtroppo cercando con termini "testo a scomparsa" si trovano solo guide in altri linguaggi per avere testo che appare e scompare in base al posizionamento del mouse, non quello che mi interessa quindi.


Un grazie in anticipo

Mozart2
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 09 Set 2012 18:01    Oggetto: Rispondi citando

Ciao, se lo vuoi fare SOLO in php si può ma viene una "vaccata" e scusa il termine.
Dovresti far ciclare la pagina su se stessa e decidere se quella voce è da visualizzare oppure no e tenere conto dello stato delle altre.
Per fare una cosa che abbia come effetto più o meno quello della pagina da te linkata devi per forza usare javascript.
Usando jquery (o altri framework) puoi anche ottenere qualche effetto carino senza diventare matto altrimenti basta anche solo javascript "secco".
Secondo me la libidine massima la otterresti non come wikipedia ma chiamare di volta in volta i chunk che contengono le varie parti in modo che quando apri la pagina la prima volta questa contiene solo quello che vedi e non parti nascoste in modo da essere più leggera.
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 09 Set 2012 18:11    Oggetto: Rispondi citando

Ecco, temevo una risposta come questa, che il php non basta...
La vaccata proposta la avevo pensata anche io, ma... è proprio una vaccata Razz

Allora, detto sinceramente non conosco niente di javascript, jquery e via dicendo, tenendo conto che il sito è piccolo, e che al momento è l'unico effetto che voglio aggiungere, se trovo una documentazione che parte dalle basi piena di esempi potrei anche farcela.

La tua proposta mi sembra iteressante, ma come fai a sapere che gia wikipedia non faccia così?

È buona la guida: w3c
oppure consigliate qualcos'altro?

Domanda scema (perché non conosco ancora javascript) che forse farei meglio a posticipare, ma i chunck da te nominati andrebbero su file terzi, oppure potrebbero stare sullo stesso file php?

Perché a questo punto, se possibile, mi piacerebbe scrivere il pezzo di javascript che da l'effetto voluto su un file terzo, che viene richiamato da ogni pagina php che lo necessità (visto che tutte le pagine php hanno la stessa struttura), in modo da tenere su file separati la forma della pagina (per il quale ho fatto un file css), il contenuto (attualmente su file php e html) e gli effetti grafici (da fare ora in javascript).
Il tutto per avere ordine, piccola mania personale Wink

Grazie per il consiglio!

edit:
ripensandoci, caricare a posteriori i chunck potrebbe non essere una buona idea. Se un utente disabilita javascript sul suo computer non sarebbe in grado di vedere i contenuti, mentre su wikipedia (appena testato disablitando javascript) i contenuti sono subito tutti visibili, e non si può cliccare per mostrarlo/nasconderlo.
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 09 Set 2012 19:01    Oggetto: Rispondi citando

Dunque, adesso non riesco ma domani provo a metterti giù due righe io; non è difficile quello che vuoi fare e usando un framework js la cosa diventa ancora più semplice.

Non ho passato al debugger la pagina che hai linkato ma visto che cliccando i link per aprire le sezioni non vedo ciclare la stessa ma solo apparire/scomparire il contenuto deduco che faccia come ho detto.

Il link verso w3c va bene però fa conto che sul quel sito i tutorial non sono proprio il top nel senso che servono solo a descrivere quello che è lo standard.
Su internet trovi di tutto sul javascript quindi non preoccuparti delle guide: ci sono di ogni tipo.

Per come strutturare i files: tu hai un db sotto oppure ogni pagina è a se?
Se ci fosse il db la cosa sarebbe veramente veloce perchè la pagina principale verrebbe generata dinamicamente con il contenuto di base e poi i chunk verrebbero pescati dal db in base all'id.
Se così non fosse non importa perchè a questo punti avresti tanti file php quanti sono i chunk (oppure uno per ogni pagina principale che con una if visualizza quello giusto).

Non c'è alcun problema nel avere del codice javascript riutilizzabile: si cra una funzione e la si mette in un file e poi dove serve si include il codice e lo si usa (come con tutti i linguaggi).
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 09 Set 2012 19:05    Oggetto: Rispondi citando

Grazie mille per l'aiuto.

No, non uso db, solo pagine php, html e il foglio di stile css al momento.
Alcune pagine php richiamano dei contenuti html per non dover riscrivere le stesse cose decine e decine di volte, come il header e il footer.

E all'interno di alcune pagine php, il cui contenuto è un po' lungo, vorrei appunto mettere questo 'effetto' per non presentare una pagine lunghissima al primo colpo, ma per raggiungere subito il contenuto interessato.


edit:
non so se hai visto l'edit precedente, ma credo che sia meglio caricare tutti i contenuti nell'eventualità un utente disabiliti javascript, no?
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 10 Set 2012 21:36    Oggetto: Rispondi citando

Allora, intanto ho guardato un po' in giro e mi è sembrato di capire che devo usare onclick visto che voglio che il tutto cambi quando clicko sul titolo.

Leggendo in rete ho estrapolato questo comando, inutile dire che non sono in grado di comprenderlo appieno e nemmeno dire se funziona...
ad esempio non mi è chiaro dove si debba posizionare il testo...

<div id="MyInfo" style="display:none;">Qui le informazioni</div>
<a href="#" title="Mostra Info" onclick="document.getElementById('MyInfo').style.display='block';">Mostra Info</a>

Mi sembra chiaro che nel div vada messo il testo, mentre onclick camuffato da link permette di far apparire (e sparire?) il testo richiesto, anche se non comprendo ancora il comando, come non mi è nemmeno chiaro dove debba apparire il testo.


Edit:
ho trovato e testato anche come nascondere il testo:

<a href="#" title="Nascondi Info"
onClick="document.getElementById('MYInfo').style.display='none';">Hide content again</a>

mi sono sorti però alcuni dubbi, nei codici postati ho sempre
href="#"
mentre da un'altra parte ho trovato
href="javascript:;"
una delle due espressioni è più corretta?

Inoltre non riesco a capire bene come riunire i due comandi sotto uno solo, potrei fare una funzione esterna, ma mi sembra esagerato, non riesco capire come, con javascript, vedere se il testo mostrato o meno.
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 11 Set 2012 08:12    Oggetto: Rispondi citando

Allora, sono riuscito nel 99% del mio intento, ecco il codice:
Codice:
<a href="javascript:toggle(testo1);">Titolo1</a><br>
<div id="testo1" style="display: none">testo1 da visualizzare</div>
<a href="javascript:toggle(testo2);">Titolo2</a><br>
<div id="testo2" style="display: none">testo2 da visualizzare</div>

<script language="javascript">
function toggle(ele) {
   if(ele.style.display == "block") {
          ele.style.display = "none";
      text.innerHTML = "show";
     }
   else {
      ele.style.display = "block";
      text.innerHTML = "hide";
   }
}
</script>


Ho testato il suo funzionamento usando questo editor online di w3school (link), e li il codice sembra funzionare senza problemi.

Anche se un poco da aggiustare, ho voluto provare ad applicarlo sulla mia pagina. Lo ho inserito nei file php (senza mettere su file js a parte il pezzo in javascript), nella pagina sono apparsi i due link, ma cliccandovi sopra non funzionava niente.
Allora ho provato a caricarli sul server (aruba), ma il pezzo in javascript sembra non funzionare.

Che tipo di errore posso aver commesso? Il codice non funziona quando aggiungo i tag html (sul sito w3school), indipendentemente se il codice javascript lo metto nel'head, body o addirittura prima o dopo l'html...
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 11 Set 2012 20:51    Oggetto: Rispondi citando

Sono abbastanza sicuro (usando onclick) che il codice sia corretto, se togliete i tag html funziona, altrimenti no...
Codice:

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<div id="MyInfo" style="display:none;">Qui le informazioni</div>


<a href="#" title="Mostra Info2"
onclick="javascript:toggle(MyInfo); return false;">Mostra Info2</a>


<script language="javascript">
function toggle(ele) {
   if(ele.style.display == "block") {
          ele.style.display = "none";
     }
   else {
      ele.style.display = "block";
   }
}
</script>



</body>
</html>


come posso risolvere il problema?

Inoltre è più conveniente questo codice (una volta corretto) che usa onclick, oppure quello precedente che non lo usa?
Top
Profilo Invia messaggio privato
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 12 Set 2012 06:42    Oggetto: Rispondi citando

Dopo lungho testare (scusa se non ho aspettato il codice bello e pronto, ma almeno così imparavo qualcosa), sono riuscito, in locale, ad avere del codice funzionante.

Codice:

<!DOCTYPE html>

<!-- mostra e nasconde testo usando funzione -->

<html>
   <head>
      <script type="text/javascript">
         function toggle(id) {
            if(document.getElementById(id).style.display == "block") {
               document.getElementById(id).style.display = "none";
            } else {
               document.getElementById(id).style.display = "block";
            }
         }
      </script>
   </head>
   <body>
      <a href="#"  onClick="toggle('testo1');">Titolo 1</a><br>
      <div id="testo1" style="display: none">Testo 1 da visualizzare</div>
      <a href="#" onClick="toggle('testo2');">Titolo 2</a><br>
      <div id="testo2" style="display: block">Testo 2 da visualizzare</div>
   </body>
</html>


A questo punto mi rimangono due cose da cambiare:
1)
Il comportamento nel caso javascript sia disabilitato (in tal caso vorrei che tutto il testo fosse visibile)
2)
Sempre in stile wikipedia, una immagine freccia, per far notare all'utente che può cliccare sopra per far apparire/sparire il testo.
Inoltre su wikipedia si può cliccare tutto lo spazio tra il testo e la freccia per far apparire/sparire il testo. Non mi dispiacerebbe nemmeno questo.

Qualcuno ha idee a riguardo?
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 12 Set 2012 08:42    Oggetto: Rispondi citando

secondo me dovresti mettere tutte le sezioni visibili, e via JavaScript nasconderle quando carica. Così dove JavaScript è disabilitato rimangono visibili.
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 12 Set 2012 13:49    Oggetto: Rispondi citando

Ottimo consiglio, lo ho appena applicato tramite la funzione onload all'interno del body:
Codice:
<body onLoad="Javascript:toggle('testo1'); Javascript:toggle('testo2');">


Il problema è che durante il caricamento (pochi attimi), i testi si vedono tutti, dopo parte lo script che li nasconde. Sarebbe ottimale non vederli del tutto, forse non è giusto il poszionemanro nel body?
Ovviamente tutti i testi interessati sono all'interno del body.

Con Javascript disabilitato in questo modo i testi si vedono e va bene cosìSmile
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 13 Set 2012 09:51    Oggetto: Rispondi citando

non saprei, forse via javascript si può cambiare il default nel css... così se javascript è disabilitato viene mostrato tutto, se invece è abilitato non devi esplicitamente fare il toggle di ognuno nell'onLoad...
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 13 Set 2012 15:02    Oggetto: Rispondi citando

Mhm

non conosco così bene i css per integrarli con javascript...
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11566
Residenza: Tokelau

MessaggioInviato: 13 Set 2012 15:53    Oggetto: Rispondi citando

scusa, intendo che probabilmente puoi cambiare direttamente gli stili via javascript... ma mi fermo perché qui sono già su terreno sconosciuto...
Top
Profilo Invia messaggio privato HomePage
mozart2
Mortale adepto
Mortale adepto


Registrato: 14/12/11 22:45
Messaggi: 30

MessaggioInviato: 13 Set 2012 17:20    Oggetto: Rispondi

A questo punto però devo comunque fare un controllo se l'utente ha javascript abilitato o meno, tanto vale rendere
Codice:
style="display: none"

variabile con
Codice:
style="display: block"

cioè, fare una variabile che assume il valore non o block a seconda che javascript sia abilitato o meno e inserirla nei div...

dovrebbe essere una cosa che andrebbe fatta onload? O forse è fattibile via php controllare se l'utente ha javascript abilitato o meno?
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi