Contatti Joomla e Privacy [per Joomla 1.5.x]

Proseguiamo la nostra personalizzazione di Joomla per adeguarlo alle normative sulla Privacy, occupandoci questa volta del componente CONTATTI.

Questo componente trasmette una email, quella dell’utente che compila i campi del modulo, e anche se non sarà memorizzata nel database di Joomla è pur sempre un dato personale e pertanto è opportuno indicare l’Informativa sulla Privacy e il box per la conferma dell’autorizzazione del trattamento dati.

1) Modificare il file \components\com_contact\views\contact\tmpl\default_form.php

Di seguito riporto tutto il codice del file già modificato:

ATTENZIONE: eseguite sempre un backup del file che andate a modificare!

<?php
/** $Id: default_form.php 11917 2009-05-29 19:37:05Z ian $ */
defined( '_JEXEC' ) or die( 'Restricted access' );

	$script = '<!--
		function validateForm( frm ) {
			var valid = document.formvalidator.isValid(frm);
			if (valid == false) {
				// do field validation
				if (frm.email.invalid) {
					alert( "' . JText::_( 'Please enter a valid e-mail address.', true ) . '" );
				} else if (frm.text.invalid) {
					alert( "' . JText::_( 'CONTACT_FORM_NC', true ) . '" );
				}
				return false;
			} else {
				frm.submit();
			}
		}
		// -->';
	$document =& JFactory::getDocument();
	$document->addScriptDeclaration($script);

	if(isset($this->error)) : ?>
<tr>
	<td><?php echo $this->error; ?></td>
</tr>
<?php endif; ?>

<div class="contact<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
	<?php if ($this->params->get('show_contact_list') && count($this->contacts) > 1) : ?>
	<form method="post" name="selectForm" id="selectForm">
		<?php echo JText::_('Select Contact'); ?>
		<br />
		<?php echo JHTML::_('select.genericlist', $this->contacts, 'contact_id', 'class="inputbox" onchange="this.form.submit()"', 'id', 'name', $this->contact->id); ?>
		<input type="hidden" name="option" value="com_contact" />
	</form>
	<?php endif; ?>

	<?php if ($this->contact->name && $this->contact->params->get('show_name')) : ?>
	<p>
		<?php echo $this->escape($this->contact->name); ?>
	</p>
	<?php endif; ?>

	<?php if ($this->contact->con_position && $this->contact->params->get('show_position')) : ?>
	<p>
		<?php echo $this->escape($this->contact->con_position); ?>
	</p>
	<?php endif; ?>

	<?php if ($this->contact->image && $this->contact->params->get('show_image')) : ?>
	<div style="float: right;">
		<?php echo JHTML::_('image', 'images/stories' . '/'.$this->escape($this->contact->image), JText::_( 'Contact' ), array('align' => 'middle')); ?>
	</div>
	<?php endif; ?>

	<?php echo $this->loadTemplate('address'); ?>

	<?php if ( $this->contact->params->get('allow_vcard')) : ?>
	<p>
		<?php echo JText::_('Download information as a'); ?>
		<a href="index.php?option=com_contact&amp;task=vcard&amp;contact_id=<?php echo (int)$this->contact->id; ?>&amp;format=raw">
			<?php echo JText::_('VCard'); ?></a>
	</p>
	<?php endif; ?>

<tr>
	<td colspan="2">
	<br /><br />
	<form action="<?php echo JRoute::_( 'index.php' );?>" method="post" name="emailForm" id="emailForm" class="form-validate" onsubmit="return checkPrivacyBox()">
		<div class="contact_email<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
			<label for="contact_name">
				&nbsp;<?php echo JText::_( 'Enter your name' );?>:
			</label>
			<br />
			<input type="text" name="name" id="contact_name" size="30" class="inputbox" value="" />
			<br />
			<label id="contact_emailmsg" for="contact_email">
				&nbsp;<?php echo JText::_( 'Email address' );?>:
			</label>
			<br />
			<input type="text" id="contact_email" name="email" size="30" value="" class="inputbox required validate-email" maxlength="100" />
			<br />
			<label for="contact_subject">
				&nbsp;<?php echo JText::_( 'Message subject' );?>:
			</label>
			<br />
			<input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value="" />
			<br /><br />
			<label id="contact_textmsg" for="contact_text">
				&nbsp;<?php echo JText::_( 'Enter your message' );?>:
			</label>
			<br />
			<textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox required"></textarea>
			<?php if ($this->contact->params->get( 'show_email_copy' )) : ?>
			<br />
				<input type="checkbox" name="email_copy" id="contact_email_copy" value="1"  />
				<label for="contact_email_copy">
					<?php echo JText::_( 'EMAIL_A_COPY' ); ?>
				</label>
			<?php endif; ?>
			<br />
			<br />

			<textarea style="font-family:Arial, Helvetica, sans-serif; font-size:10px"  readonly="readonly" cols="115" rows="5" name="privacy" id="privacy" class="inputbox">

<?php 

//echo srt_replace("<br/>", "\n", JText::_('PRIVACY_INFO')); 

$stringa = JText::_('PRIVACY_INFO');
$stringa = str_replace("<br>","\n",$stringa);

echo $stringa;
?>

			</textarea>
   <br /><br />
   <input type="checkbox" name="checkprivacy" id="checkprivacy" value="1" class="inputbox ">
   <label for="checkprivacy" id="checkprivacy">&nbsp;<?php 
   	 echo JText::_('PRIVACY_CSN');
   ?><br /><br />
			</label>
			<button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button>
		</div>

	<input type="hidden" name="option" value="com_contact" />
	<input type="hidden" name="view" value="contact" />
	<input type="hidden" name="id" value="<?php echo $this->contact->id; ?>" />
	<input type="hidden" name="task" value="submit" />
	<?php echo JHTML::_( 'form.token' ); ?>
	</form>

	<script type="text/javascript">
	function checkPrivacyBox() {

		if (document.emailForm.checkprivacy.checked==false)
		{
		 	alert("<?php echo JText::_('PRIVACY_CKD');?>")
			return false
		}
		return true
	}

	</script>
	<br />
	</td>
</tr>

 

2) file \language\it-IT\it-IT.com_contact.ini

Aggiungere al fondo le seguenti righe:

PRIVACY_INFO=Scrivere qui il proprio testo relativo alla INFORMATIVA RISERVATEZZA DATI \n
PRIVACY_CSN=Esprimo il consenso al trattamento dei miei dati personali al fine di consentire che venga fornito il servizio o eseguita la prestazione richiesta.
PRIVACY_CKD=Assicurati che il modulo sia completo e valido

 

Completare PRIVACY_INFO con il testo della propria informativa sulla privacy, scritto di seguito senza “a capo” (usare \n per andare a capo)

P.S.: Come sempre, eseguite dei test prima di metterlo online!

 

 

6 pensieri riguardo “Contatti Joomla e Privacy [per Joomla 1.5.x]

  • 1 Aprile 2012 in 14:25
    Permalink

    Ciao e complimenti per l’ottima soluzione.

    Ho un problema con la visualizzazione del testo privacy. Ho seguito tutto alla lettera (tutto di seguito) ma nel campo compare solo PRIVACY_INFO e lo stesso accade per PRIVACY_CSN.
    Ho provato a mettere tra ” il testo che si deve visualizzare ma è sempre lo stesso.

    Dove sbaglio?

    Grazie.

    P.S.
    Posso cambiare il testo inglese con l’Italiano?

    • 1 Aprile 2012 in 15:38
      Permalink

      Ciao, l’articolo vale per Joomla serie 1.5.x e non per quella più recente 2.5.x: mi confermi che hai apportato le modifiche su Joomla 1.5.x?

  • 1 Aprile 2012 in 16:10
    Permalink

    Azzzzz… no le ho inserite in J 2.5.3… 🙁 ora ripristino tutto.
    Qualche idea su come implementare questa funzione? Per la verità mi sarebbe più utile nel form di registrazione.

    Grazie per la pronta risposta,

Lascia un commento