Je ne sais pas comment activer la modification de la date de création d'un article dans le frontal, après la mise à jour vers Joomla 3.8.10.
Jusqu'ici, j'avais l'habitude de remplacer le formulaire d'édition de l'article
com_content -> form> edit #line 120:
<?php echo $this->form->renderField('created'); ?>
comme suggéré dans cet article: Comment modifier la "date de création" du début, et tout s'est bien passé.
Cependant, cela ne fonctionne plus avec la version 3.8.10.
Comment puis-je le faire?
Le champ Created
dans le formulaire d'article frontal contient le filtre unset
. Ce filtre empêche la sauvegarde de la valeur du champ. Vous pouvez changer le filtre avec un plugin de contenu. L'exemple ci-dessous définit également showtime
attribut sur true
si vous souhaitez entrer l'heure comme dans les autres champs de date.
defined('_JEXEC') or die;
use Joomla\CMS\Form\Form;
use Joomla\CMS\Plugin\CMSPlugin;
class PlgContentExample extends CMSPlugin
{
protected $app;
public function onContentPrepareForm(Form $form, $data)
{
if ($this->app->isClient('site') && $form->getName() === 'com_content.article')
{
$form->setFieldAttribute('created', 'filter', 'user_utc');
$form->setFieldAttribute('created', 'showtime', 'true');
}
return true;
}
}
Notez que le remplacement du modèle est toujours requis pour rendre le champ.