Modificate articles creation date in front end - Joomla 1.5
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Avendo pubblicato questo post da poco tempo mi permetto di modificarlo aggiungendo una soluzione che mi è stata chiesta per limitare solo a certi utenti la presenza del campo per la modifica della data di creazione.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Cercando in giro su internet non ho trovato un guida in italiano o una guida completa che illustrasse come aggiungere la possibilità di
modificare la data di creazione agli utenti del
front end.
Prendendo spunto da questo articolo provo a fare un breve riassunto di come ho risolto io
http://www.blogging-it.com/override-created-date-im-frontend-eingeben-joomla-1-5/cms/joomla-1-5.htmlInnanzi tutto premetto che, ove possibile, verrà fatto un override in modo da non modificare i files originali di Joomla.
1)Cominciamo subito dal file del quale non possiamo fare l'override e che dovremo modificare in modo definitivo finché non verrà sovrascritto da un aggiornamento di Joomla.
Il file, per la lingua italiana, è:
/language/it-IT/it-IT.com_content.iniIn questo file bisogna aggiungere queste due righe
# Segue una riga aggiunta
CREATED DATE=Data di creazione
Preferibilmente in ordine alfabetico, quindi probabilmente lo inserirete dopo la riga già esistente
CREATED=Creato
2)Questa è la fase di override, che permette di no alterare il file originale.
2.1)Copiate il file form.php che trovate qui
/components/com_content/views/article/tmpl/form.phpin questa posizione
/templates/MIO-TEMPLATE/html/com_content/article/form.phpMIO-TEMPLATE è il nome del template che state utilizzando come default.
Create le altre cartelle se non esistono.
Fate queste modifiche al fiale appena copiato.
2.2)Dopo la riga
$publish_up = $publish_up->toFormat();
che è circa la settima del codice
aggiungete
// righe aggiunte - fase 1 di 2 - v 1.1
$created =& JFactory::getDate($this->article->created);
$created->setOffset($config->getValue('config.offset'));
$created = $created->toFormat();
// 2 righe seguenti - visualizzazione solo per utenti
$user =& JFactory::getUser();
if ($user->id != 0000) {echo "<style type=\"text/css\"> .created-date {display:none;} </style>";}
// fine righe aggiunte
In questo codice vedete 0000 che va sostituito con l'ID dell'utente al quale volete dare la possibilità di vedere il suddetto campo modificabile. Se gli utenti ai quali volete dare questa possibilità sono più di uno potete aggiungere dopo l'ID (quindi dopo il primo 0000) uno spazio e poi il codice che segue, ripetendolo una volta per ogni diverso utente, sostituendo poi 0000 con gli ID specifici.
&& $user->id != 0000
La logica sposata è quella di elencare gli ID degli utenti che potranno vedere e modificare il campo.
E' possibile riscrivere il codice per elencare gli utenti che NON devono vedere o modificare il campo, ma non è questo l'esempio.
2.3)Poi, a seguire, dopo le righe
<tr>
<td class="key">
<label for="created_by_alias">
<?php echo JText::_( 'Author Alias' ); ?>:
</label>
</td>
<td>
<input type="text" id="created_by_alias" name="created_by_alias" size="50" maxlength="100" value="<?php echo $this->escape($this->article->created_by_alias); ?>" class="inputbox" />
</td>
</tr>
che finiscono circa alla riga 159, tenendo conto anche delle aggiunte precedenti
aggiungete queste righe
<!-- righe aggiunte - fase 2 di 2 - v 1.1 -->
<tr class="created-date">
<td class="key">
<label for="created">
<?php echo JText::_( 'CREATED DATE' ); ?>:
</label>
</td>
<td>
<?php echo JHTML::_('calendar', $created, 'created', 'created', '%Y-%m-%d %H:%M:%S', array('class'=>'inputbox', 'size'=>'25', 'maxlength'=>'19')); ?>
</td>
</tr>
<!-- fine righe aggiunte -->
FINEL'articolo tedesco (santo google translate) dal quale ho preso spunto spiega anche come pubblicare la data di creazione, ma a me non serviva quindi non mi sono cimentato nell'operazione e non ne descrivo i passaggi.
Spero questo sia utile a chi ne ha bisogno.
Ciao