Back to top

Autore Topic: Modifica data di creazione di un articolo in front end - Joomla 1.5  (Letto 6864 volte)

Offline zack509

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
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.html

Innanzi 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.ini

In questo file bisogna aggiungere queste due righe
Codice: [Seleziona]
# Segue una riga aggiunta
CREATED DATE=Data di creazione

Preferibilmente in ordine alfabetico, quindi probabilmente lo inserirete dopo la riga già esistente
Codice: [Seleziona]
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.php

in questa posizione
/templates/MIO-TEMPLATE/html/com_content/article/form.php
MIO-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
Codice: [Seleziona]
$publish_up = $publish_up->toFormat();che è circa la settima del codice

aggiungete
Codice: [Seleziona]
// 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.
Codice: [Seleziona]
&& $user->id != 0000La 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
Codice: [Seleziona]
<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
Codice: [Seleziona]
<!-- 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 -->

FINE

L'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
« Ultima modifica: 22 Set 2011, 16:39:10 da zack509 »

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Esemplare il titolo, chiarissima la guida, molto utili il tutto.  :)
Compliments  :D
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline frank69

  • Appassionato
  • ***
  • Post: 250
    • Mostra profilo
Spiegato benissimo
 
l'unica cosa che non riesco a capire è questo punto
 
Citazione
in questa posizione
/templates/MIO-TEMPLATE/html/com_content/article/form.php
MIO-TEMPLATE è il nome del template che state utilizzando come default.
Create le altre cartelle se non esistono.

non riesco a capire quali sono le cartelle da creare e in che punto crearle

Offline zack509

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Nel backand, menu "Estensioni/Gestione template", vedi una stellina di fianco al template che stai utilizzando come predefinito.

A questo punto, con un programma tipo FTP o con un estensione come eXtplorer, devi raggiungere la cartella "templates", che è nella cartella principale del sito, individuare ed entrare nella cartella con il nome del template che stai usando come default (vedi sopra - nel mio esempio è MIO-TEMPLATE) e creare le cartelle del percorso che ho indicato, nel caso non ci fossero già (html, com_content, article).
Ora copi il file form.php, o lo crei come file vuoto e ci incolli dentro il contenuto del file /components/com_content/views/article/tmpl/form.php

Se non puoi creare cartelle c'è un problema di permessi. Devi rivolgerti a chi amministra il server nel quale c'è il tuo sito.

Offline frank69

  • Appassionato
  • ***
  • Post: 250
    • Mostra profilo
Il problema e che qualsiasi data inserisco in Data di creazione:  il sistema non la carica.
 
Difatti pubblico un articolo inserendo un'ora diversa alla voca Data di creazione: però quando salvo l'articolo mi viene pubblicato con la Data di creazione: effettiva ossia la data in cui ho creato l'articolo.
 
Insomma la Data di creazione: front-end non si comporta come quella back-end

Offline zack509

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Mi dispiace, se hai seguito gli stessi passaggi che ho fato io e non funziona, le mie limitate competenze non mi permettono di aiutarti  :-[

Offline frank69

  • Appassionato
  • ***
  • Post: 250
    • Mostra profilo
Ok grazie lo stesso
 
se funziona a te adesso rifaccio i passagi e vediamo dove sbaglio
 
Grazie e ciao

secoz

  • Visitatore
Il problema e che qualsiasi data inserisco in Data di creazione:  il sistema non la carica.
 
Difatti pubblico un articolo inserendo un'ora diversa alla voca Data di creazione: però quando salvo l'articolo mi viene pubblicato con la Data di creazione: effettiva ossia la data in cui ho creato l'articolo.
 
Insomma la Data di creazione: front-end non si comporta come quella back-end

Anche a me dava lo stesso problema. Cercando in giro ho trovato la soluzione (o almeno per me funziona utilizzando Joomla 1.5.25):

Aprire il file components/com_content/models/article.php e alla riga 282 sostituire:

Codice: [Seleziona]
$article->created       = gmdate('Y-m-d H:i:s');
con

Codice: [Seleziona]
if (!($article->created)) {
            $article->created       = gmdate('Y-m-d H:i:s');
         }

questo inserirà la data corrente se il campo "data di creazione" viene lasciato vuoto.

Offline rafagano

  • Esploratore
  • **
  • Post: 159
  • Sesso: Maschio
    • Mostra profilo
Grande Zak ! Ho risolto subito la faccenda, avevo lo stesso problema. Ed avevo anche lo stesso problema di secoz, quindi grazie anche a lui :)
Omnia sunt communia !

Offline voglia_di_j!

  • Nuovo arrivato
  • *
  • Post: 13
  • Sesso: Maschio
    • Mostra profilo
Ciao ragazzi,

ottime spiegazione che ho utilizzato per joomla 1.5.
Una domanda, sapete come si fa per joomla 1.7?

Grazie e buona giornata,

Daniele

 



Web Design Bolzano Kreatif