J'ai créé un plugin pour ajouter un champ personnalisé à la suite de cette réponse . Fonctionne bien lorsque je suis connecté au backend et que je modifie l'article, mais l'onglet ne s'affiche pas lorsque l'article est en cours de modification. Est-ce que je manque quelque chose ici ou dois-je le faire comme le mentionne la documentation ici
Plugin XML:
<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="attribs" >
<fieldset name="custom" >
<field name="full_article_image_overlay"
type="editor"
filter="safehtml"
buttons="true"
label="PLG_FULL_ARTILCE_IMAGE_TEXT"
/>
</fieldset>
</fields>
</form>
Plugin PHP:
function onContentPrepareForm($form, $data) {
$app = JFactory::getApplication();
$option = $app->input->get('option');
switch($option) {
case 'com_content':
if ($app->isAdmin()) {
JForm::addFormPath(__DIR__ . '/forms');
//Show specific forms based on categories
$form->loadFile('content', false);
}
return true;
}
return true;
}
}
Données stockées dans la colonne 'attribs'
{
"show_title": "",
"link_titles": "",
"show_tags": "",
"show_intro": "",
"info_block_position": "",
"show_category": "",
"link_category": "",
"show_parent_category": "",
"link_parent_category": "",
"show_author": "",
"link_author": "",
"show_create_date": "",
"show_modify_date": "",
"show_publish_date": "",
"show_item_navigation": "",
"show_icons": "",
"show_print_icon": "",
"show_email_icon": "",
"show_vote": "",
"show_hits": "",
"show_noauth": "",
"urls_position": "",
"alternative_readmore": "",
"article_layout": "",
"show_publishing_options": "",
"show_article_options": "",
"show_urls_images_backend": "",
"show_urls_images_frontend": "",
"full_article_image_overlay": "<p>Test Test<\/p>"
}
Dans le formulaire d'édition d'article avant, seuls les champs sélectionnés sont ajoutés. Si vous voulez ajouter quelque chose ici, vous devrez utiliser Template Overrides pour éditer ce fichier: /components/com_content/views/form/tmpl/edit.php
. Pour le moment, ce composant ne charge pas automatiquement les champs de formulaire personnalisés, contrairement à com_content.
Si vos données sont stockées dans le champ attribs (params fieldset in form), quelque chose comme ceci devrait fonctionner:
<?php echo $this->form->renderField('YOUR_FIEL_DNAME', 'params'); ?>
Pour ajouter un champ personnalisé à Article Form, vous pouvez utiliser ce didacticiel: https://docs.joomla.org/Adding_custom_fields_to_core_components_using_a_plugin Cependant, rappelez-vous qu'il vous reste à ajouter le champ approprié dans la vue.