Ciao a tutti,
Volevo aggiungere un guest book al mio sito e mi è stato vivamente consigliata l'estensione in oggetto per la sua versatilità e la sua facilità di utilizzo. Purtroppo ho bisogno di personalizzare il guestbook in modo che l'utente che inserisce un nuovo messaggio nel guestbook non possa modificare il proprio nome ed email con cui si è registrato al sito cosa che invece risulta possibile attraverso la visualizzazione di una form proprio sopra al testo del messaggio. Ho trovato il codice che fa visualizzare questo form e si trova nel file default_legacy.php dalla riga 176 alla riga 197
<table id="vbFormTable">
<tr>
<td><?php echo $this->form->getLabel('name'); ?></td>
<td><?php echo $this->form->getInput('name'); ?></td>
</tr>
<tr>
<td><?php echo $this->form->getLabel('email'); ?></td>
<td><?php echo $this->form->getInput('email'); ?></td>
</tr>
<?php if($this->params->get('vbForm_site',1)) { ?>
<tr>
<td><?php echo $this->form->getLabel('site'); ?></td>
<td><?php echo $this->form->getInput('site'); ?></td>
</tr>
<?php } ?>
<?php if($this->params->get('vbForm_location',0)) { ?>
<tr>
<td><?php echo $this->form->getLabel('location'); ?></td>
<td><?php echo $this->form->getInput('location'); ?></td>
</tr>
<?php } ?>
</table>
Come potete notare nella prima riga (tag <tr>) della tabella si richiama la label (prima colonna tag <td>) e successivamente nella seconda colonna (secondo tag <td>) si inserisce un text-input contenente già il nome dell'utente registrato.
Ciò che effettivamente viene scritto nella pagina html, relativamente ad un ipotetico utente che si è registrato con nome "utente" a questa riga della tabella è
<tr>
<td>
<label id="jform_name-lbl" class="hasTip required control-label" title="" for="jform_name" aria-invalid="false">
Nome
<span class="star"> *</span>
</label>
</td>
<td>
<input id="jform_name" class="inputbox validate-name required" type="text" size="40" value="utente" name="jform[name]" aria-required="true" required="required" aria-invalid="false">
</td>
</tr>
e quello che vorrei fare io è, se possibile, modificare il codice inserendo l'attributo "disabled" nell'input in questo modo:
<tr>
<td>
<label id="jform_name-lbl" class="hasTip required control-label" title="" for="jform_name" aria-invalid="false">
Nome
<span class="star"> *</span>
</label>
</td>
<td>
<input id="jform_name" class="inputbox validate-name required" type="text" size="40" value="utente" name="jform[name]" aria-required="true" required="required" aria-invalid="false" disabled>
</td>
</tr>
se però inserisco questa riga di codice
<input id="jform_name" class="inputbox validate-name required" type="text" size="40" value="utente" name="jform[name]" aria-required="true" required="required" aria-invalid="false" disabled>
così com'è nel file default_legacy.php, ovviamente dato che c'è scritto value="utente", viene scritto il valore "utente" nel campo text-input per qualsiasi persona che è registrata al sito --> cosa che non voglio perchè ad ogni utente dovrebbe essere permesso di scrivere un mesaggio col nome con cui si è registrato (ad esempio per l'utente franco dovrebbe esserci scritto value="Franco"). si potrebbe modificare la riga mettendo il valore della variabile php che contiene il nome dell'utente corrente; Il problema è che non so qual'è la variabile php che contiene il nome dell'utente corrente e non sono in grado di capire cosa richiama la funzione getInput ("name") contenuta nella riga:
<?php echo $this->form->getInput('name'); ?>
Spero di essere stato chiaro, aiutatemi perchè sono in crisi.
Fede