Back to top

Autore Topic: Come inserire due moduli in un solo contenuto senza andare a capo?  (Letto 2399 volte)

Offline rollsappletree

  • Nuovo arrivato
  • *
  • Post: 23
    • Mostra profilo
Buongiorno a tutti gli utilizzatori del forum,
E' il mio primo messaggio per cui inizio con il presentarmi. Mi chiamo Carmelo (aka RollsAppleTree) ed è da un pò che sto iniziando ad appassionarmi a Joomla.
Ho buone conoscenze di PHP, css e Html, ma c'è qualcosa che malgrado le tante prove, non riesco proprio a fare.

Vorrei inserire due moduli (che stanno su una sola linea) nello stesso contenitore, mettiamo "user1".

Facendo un esempio:
Ammettiamo che io abbia un modulo "cerca" (che mi fa solo vedere il box di ricerca, senza pulsanti ne niente) ed un modulo "login" (che mi mostra solamente i link alle pagine di login e registrazione). Ammettiamo pure che io abbia un contenitore "user1" lungo quanto la pagina e alto, diciamo 15px.

Vorrei mettere il modulo "cerca" dentro "user1" allineato all'estrema destra del contenitore e il modulo "login" (sempre in "user1") allineato all'estrema sinistra.
Mi interesserebbe sapere anche come metterli uno di seguito all'altro, magari con uno spaziatore di qualsiasi tipo.

Spero di essere riuscito a spiegarmi :D
Vi ringrazio in Anticipo.

C.

Offline lbo

  • Esploratore
  • **
  • Post: 192
    • Mostra profilo
Vorrei mettere il modulo "cerca" dentro "user1" allineato all'estrema destra del contenitore e il modulo "login" (sempre in "user1") allineato all'estrema sinistra.

aaah, dai, non la buttare in politica, lasciali uno sopra all'altro e buona notte, ah ah ah.

scherzi a parte, i moduli tipicamente sono resi dentro i loro bei div o table.  credo che l'unica sia giocare con la proprietà css float della parte più "esterna" dello specifico modulo, per così dire.

tra l'altro puoi specificare un suffisso per la classe css del modulo in modo da dare impostazioni specifiche per ogni (tipo di) modulo.

senonché, per verificare quello che ti ho detto e fare un esempio pratico, sono andato a vedere il sorgente del modulo del login form e con un certo stupore ho notato che è una semplice form, senza un id o una class che la contraddistingua, e non solo, se anche specifichi il suffisso di cui sopra , questo di fatto non viene usato, impedendo di settare un css specifico per il form del login.

(SBAGLIATO!  VEDI PROSSIMO POST!)

così ad occhio immagino che con un po' di conoscenza di php non sarà difficile modificare il codice di joomla affinché il form del login abbia anche un id cui riferirsi nella personalizzazione del css.

ad esempio, per la 1.0.12 io aprirei il file modules/mod_login.php (* @version $Id: mod_login.php 5866 2006-11-28 01:13:26Z friesengeist $), dalle parti della riga 40 aggiungerei una variabile che tenga conto dell'eventuale indicazione del suffisso per la classe css (basterà fare un copiaincolla delle righe lì sopra, simili, il cui funzionamento sarà chiarissimo), una cosa tipo:

$moduleclass_sfx = $params->get('moduleclass_sfx');

poi andrei alla riga 51 dove aggiungerei questo suffisso (che non sarà più un suffisso, ma a questo punto direttamente il nome della classe visto che non è stata indicata nessuna) alla dichiarazione di apertura del form, moficandola da così:

<form action="<?php...

a così:

<form class="<?php echo $moduleclass_sfx; ?>" action="<?php...

e farei la stessa cosa alla riga 77.  anzi, prima alla 77, che è il form di login, e poi alla 51, che è quello di log out.  non che cambi niente comunque.  solo per far vedere che me ne sono accorto.

volendo di potrebbe anche mettere a mano un #id per i form e buonanotte.

anche il form del cerca non ha id o class specifici (oh, ma te li sei propri oscelti bene, eh?), ma subito dentro il form c'è un div di id search.  purtroppo però credo che dovrai proprio modificare il codice php che genera la form anche in questo caso, perché se pure setti il float per il div#search poi comunque lui è inserito nel contenitore form.

in ogni caso come saprai cincischiare con float è qualcosa di rognoso, antiintuitivo e browser-dependant, quindi non va fatto a cuor leggero.

o se no, alla fine, invece di usare un solo blocco posizione ne usi due (tanto ce ne sono tanti...) e lo metti dentro una tabella che alla fine si fa sempre prima e farà schifo ai puristi, ma funziona sempre.
« Ultima modifica: 10 Ago 2007, 17:32:21 da lbo »

Offline lbo

  • Esploratore
  • **
  • Post: 192
    • Mostra profilo
senonché, per verificare quello che ti ho detto e fare un esempio pratico, sono andato a vedere il sorgente del modulo del login form e con un certo stupore ho notato che è una semplice form, senza un id o una class che la contraddistingua, e non solo, se anche specifichi il suffisso di cui sopra , questo di fatto non viene usato, impedendo di settare un css specifico per il form del login.

AAAAAAGH mi sono sbagliato!

non è che non usa la class personalizzata, è che nella funzione mosLoadModules che usavo io e nella quale avevo caricato il modulo login form e l'altro modulo che dicevi tu io avevo settato il secondo parametro a -1, che serve proprio a dire di non usare div per "avviluppare" i moduli.  se usi il parametro -2 funziona tutto bene.

Offline rollsappletree

  • Nuovo arrivato
  • *
  • Post: 23
    • Mostra profilo
alla fin fine ho creato una tabella e messo li' i contenitori ... ma almeno così funziona!! :D

 



Web Design Bolzano Kreatif