web-dev-qa-db-fra.com

Comment puis-je activer la date de création d'un article à éditer dans le frontal?

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?

1
Stuart

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.

1
Sharky