NAPC Demo  

Essayez gratuitement NAPContent sur notre site demo !

Devenez membre

 et bénéficiez de toutes nos solutions!

Devenez membre

Découvrez les sites

qui utilisent NAPContent !

Voir
plus

Template affichage Form

 Structure du fichier XML

La structure est basée sur le modèle de base défini sur cette page.

Il existe deux paramètres techniques supplémentaires qui peuvent mettre en place afin de gérer l'intéraction avec la saisie en frontend. 

<field type="text" default="" name="return" label="Return URL"/>
<field type="text" default="" name="return_message" label="Return Message"/>

 Le paramètre return permet de définir l'URL de redirection après validation du formulaire.

Le paramètre return_message permet d'afficher un message après la validation du formulaire. 

Fichier du template

Le fichier form.php représetant le template HTML d'un formulaire de saisie. 

<?php
defined('_JEXEC') or die;
/** @var NapcItem $this */
JHtml::_('jquery.framework');
JHtml::_('script', 'system/html5fallback.js', false, true);
JHtml::_('behavior.formvalidation');
JHtml::_('behavior.keepalive');
JHtml::_('formbehavior.chosen', 'select:not(.select2,.chzn-disable)');
JHtml::_('bootstrap.popover');
JHtml::_('bootstrap.tooltip');
?>
<script type="text/javascript">
    Joomla.submitbutton = function (task) {
        if (task == 'form.cancel' || document.formvalidator.isValid(document.id('item-form'))) {
            Joomla.submitform(task, document.getElementById('item-form'));
        }
    }
</script>
<form action="<?= JRoute::_($this->id ? NapcHelperRoute::getEditItem($this->id,true):NapcHelperRoute::getaddItem($this->type,$this->cat,true)); ?>" method="post" name="adminForm" id="item-form" class="form-validate" enctype="multipart/form-data">
    <?php if (@$this->tpl['fields']): ?>
        <div class="form-inline form-inline-header">
            <?php foreach ($this->tpl['fields'] as $field) : ?>
                <?= $this->renderField($field, $field->layout); ?>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>
    <?php if (@$this->tpl['hidden']): ?>
        <div class="hidden-desktop hidden-tablet hidden-phone">
            <?php foreach ($this->tpl['hidden'] as $field) : ?>
                <?= $this->renderField($field, $field->layout); ?>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>
    <?= JHtml::_('form.token'); ?>
    <input type="hidden" name="task" value=""/>
    <?php if ($returnURL = $this->params->get('return')):?>
        <input type="hidden" name="return" value="<?= NapcHelper::base64url_encode($returnURL) ?>"/>
    <?php endif;?>
    <?php if ($returnMessage = $this->params->get('return_message')):?>
        <input type="hidden" name="returnMessage" value="<?= NapcHelper::base64url_encode($returnMessage) ?>"/>
    <?php endif;?>
    <button type="button" class="btn btn-large btn-success pull-right" onclick="Joomla.submitbutton('form.save')"><?= JText::_('COM_NAPC_SAVE')?></button>
    <button type="button" class="btn btn-danger pull-left" onclick="Joomla.submitbutton('form.cancel')"><?= JText::_('COM_NAPC_CANCEL')?></button>
    <div class="clearfix"></div>
</form>

 Il est impératif d'ajouter le script permettant la soumission du formulaire : 

<script type="text/javascript">
    Joomla.submitbutton = function (task) {
        if (task == 'form.cancel' || document.formvalidator.isValid(document.id('item-form'))) {
            Joomla.submitform(task, document.getElementById('item-form'));
        }
    }
</script>

 Structure HTML du formulaire : 

<form action="<?= JRoute::_('index.php?option=com_napc&id=' . (int)$this->id); ?>" method="post"
      name="adminForm" id="item-form" class="form-validate" enctype="multipart/form-data">
// affichage des champs
        <?= JHtml::_('form.token'); ?>
        <input type="hidden" name="task" value=""/>
</form>

Affichage des champs d'une position 

 

<?php if (@$this->tpl['position_name']): ?>
        <?php foreach ($this->tpl['position_name'] as $field) : ?>
            <?= $this->renderField($field, $field->layout); ?>
        <?php endforeach; ?>
<?php endif; ?>
×
Ce site utilise des cookies pour vous offrir le meilleur service. En continuant, vous acceptez de recevoir les cookies sur ce site.