Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- Content Header (Page header) -->
- <section class="content-header">
- <h1>
- Éditer une page
- </h1>
- </section>
- <!-- Main content -->
- <section class="content">
- <div class="nav-tabs-custom">
- <ul class="nav nav-tabs">
- <?php if ($superadmin):?>
- <li class="active"><a href="#module" data-toggle="tab">Module</a></li>
- <li><a href="#elements" data-toggle="tab">Éléments</a></li>
- <?php else:?>
- <li class="active"><a href="#elements" data-toggle="tab">Éléments</a></li>
- <?php endif?>
- </ul>
- <div class="tab-content">
- <?php if ($superadmin):?>
- <div class="active tab-pane" id="module">
- <div>
- <?php
- echo $this->Form->create($page);
- echo $this->Form->control('module[ordre]', ['value' => $page->ordre, 'label' => 'Ordre']);
- echo $this->Form->control('module[name]', ['value' => $page->name, 'label' => 'Nom']);
- echo $this->Form->control('module[slug]', ['value' => $page->slug, 'label' => 'Lien']);
- echo $this->Form->control('module[template]', [
- 'value' => $page->template,
- 'type' => 'textarea',
- 'style' => 'width: 80%; height: 50vh',
- 'label' => 'Contenu'
- ]);
- ?>
- </div>
- <div>
- <?php
- echo $this->Form->button(__('Sauvegarder le module'), ['class' => 'btn btn-primary']);
- echo $this->Form->end();
- echo $this->Form->postLink(
- 'Supprimer la page',
- ['action' => 'deletePage', 'page_id' => $page->id],
- ['confirm' => 'Êtes-vous sûr ?', 'class' => 'btn btn-danger', 'style' => 'margin-left: 3px'])
- ?>
- </div>
- </div>
- <div class="tab-pane" id="elements">
- <?php else:?>
- <div class="active tab-pane" id="elements">
- <?php endif?>
- <?= $this->Form->create($elements);?>
- <table style="width: 100%;">
- <thead>
- <tr>
- <th style="width: 15%">nom</th>
- <?php if ($superadmin):?>
- <th style="width: 10%">type</th>
- <?php endif;?>
- <th>contenu</th>
- <?php if ($superadmin):?>
- <th style="min-width:100px;width:10%;">actions</th>
- <?php endif;?>
- </tr>
- </thead>
- <tbody>
- <?php
- $i = 0;
- foreach($elements as $element):
- $i++;
- ?>
- <?= $this->Form->hidden('elements['.$i.'][id]', ['value' => $element->id]);?>
- <tr value="<?= $element->id?>" id="tr-element-<?=$i?>">
- <td>
- <?= $this->Form->control('elements['.$i.'][name]', [
- 'value' => $element->name,
- 'class' => 'elementInput',
- 'label' => false,
- 'placeholder' => 'vide'
- ]);?>
- </td>
- <td <?= !$superadmin ? "style=\"display:none\"" : ""?>>
- <?= $this->Form->select('elements['.$i.'][type]', [ 'text' => 'text', 'image' => 'image'], [
- 'value' => $element->type,
- 'label' => false,
- 'id' => 'custom-select-'.$i,
- 'onchange' => 'selectChange('.$i.')'
- ])?>
- </td>
- <td style="height:50px;">
- <div id="textForm-<?= $i?>" style="display:none">
- <?= $this->Form->control('elements['.$i.'][content]', [
- 'type' => 'textarea',
- 'value' => $element->content,
- 'class' => 'elementTextarea',
- 'label' => false,
- 'placeholder' => 'vide',
- 'onchange' => 'updateModal('.$i.')'
- ]);?>
- </div>
- <div id="imageForm-<?= $i?>" style="display:none">
- <!-- Button trigger modal -->
- <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#imageModal-<?= $i?>" style="padding:0;border:none;background-color:transparent">
- <img class="apercuImg" src="/img/upload/<?= $element->content?>" alt="<?= $i?>" onerror="this.src='/img/no-image.png'">
- </button>
- </div>
- </td>
- <?php if ($superadmin):?>
- <td>
- <button class="btn btn-danger" type="button" onclick="deleteElement(<?= $i?>);">Supprimer</button>
- </td>
- <?php endif;?>
- </tr>
- <?php endforeach;?>
- </tbody>
- <!-- /.box-body -->
- </table>
- <div style="margin-top: 15px">
- <div class="hidden" id="deleted-elements"></div>
- <?= $this->Form->button(__('Sauvegarder les élements'), ['class' => 'btn btn-primary']);?>
- <?php if ($superadmin):?>
- <button class="btn btn-primary" id="addElementButton" type="button">Ajouter un élément</button>
- <?php endif?>
- </div>
- <!-- /.box -->
- <?= $this->Form->end();?>
- <!-- Modals -->
- <div id="modalsDiv">
- <?php
- $i = 0;
- foreach($elements as $element):
- $i++;
- ?>
- <!-- Modal -->
- <div class="modal fade" id="imageModal-<?= $i?>" tabindex="-1" role="dialog" aria-labelledby="imageModalTitle-<?= $i?>" aria-hidden="true">
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <h5 class="modal-title" id="imageModalTitle-<?= $i?>"><?= $element->content?></h5>
- <button type="button" class="close" data-dismiss="modal" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </div>
- <div id="modal-body-<?= $i?>" class="modal-body" style="text-align:center;">
- <img src="/img/upload/<?= $element->content?>" alt="<?= $i?>" onerror="this.src='/img/no-image.png'" style="margin-bottom:20px;">
- <div>
- <?= $this->Form->create(null, ['type' => 'file']); ?>
- <?= $this->Form->hidden('elements['.$i.'][id]', ['value' => $element->id]);?>
- <?= $this->Form->hidden('elements['.$i.'][content]', ['class' => 'elementTextarea', 'value' => '']);?>
- <div class="imgForm" style="justify-content:center;border:none;">
- <?= $this->Form->file('submittedImage', ['class' => 'fileInput', 'onchange' => 'updateImage('.$i.')', 'required' => 'required']);?>
- <?= $this->Form->button('Uploader', ['class' => 'btn btn-primary', 'style' => 'margin-left: 20px;']);?>
- </div>
- <?= $this->Form->end();?>
- </div>
- </div>
- <div id="modal-footer-<?= $i?>" class="modal-footer">
- <?= $this->form->create(null)?>
- <?= $this->Form->hidden('elements['.$i.'][id]', ['value' => $element->id]);?>
- <?= $this->Form->hidden('elements['.$i.'][content]', ['value' => '']);?>
- <input type="hidden" name="deletedImg[]" value="<?= $element->content?>">
- <button style="float:left" class="btn btn-danger">Supprimer</button>
- <?= $this->form->end()?>
- <button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
- </div>
- </div>
- </div>
- </div>
- <?php endforeach?>
- </div>
- </div>
- </div>
- </div>
- <!-- /.nav-tabs-custom -->
- </section>
- <!-- /.content -->
- <script src="/plugins/jQuery/jquery-2.2.3.min.js"></script>
- <script type="application/javascript">
- //bouton "ajouter un élément"
- var i = <?= $i + 1?>;
- var superadmin = <?= json_encode($superadmin)?>;
- $('#addElementButton').on('click', function() {
- let element =
- '<tr value="" id="tr-element-'+i+'">'+
- '<td>'+
- '<div class="input text"><input class="elementInput" placeholder="vide" type="text" name="elements['+i+'][name]" style="width: 100%;"></div>'+
- '</td>'+
- '<td>'+
- '<select id="custom-select-'+i+'" name="elements['+i+'][type]" onchange="selectChange('+i+')">'+
- '<option value="text" selected="selected">text</option>'+
- '<option value="image">image</option>'+
- '</select>'+
- '</td>'+
- '<td style="height:50px;">'+
- '<div id="textForm-'+i+'" style="display: block;">'+
- '<div class="input textarea">'+
- '<textarea name="elements['+i+'][content]" class="elementTextarea" placeholder="vide" onchange="updateModal('+i+')" id="elements-'+i+'-content" rows="5"></textarea>'+
- '</div>'+
- '</div>'+
- '<div id="imageForm-'+i+'" style="display: none;">'+
- '<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#imageModal-'+i+'" style="padding:0;border:none;background-color:transparent">'+
- '<img src="" alt="'+i+'" onerror="this.src=\'/img/no-image.png\'" class="apercuImg">'+
- '</button>'+
- '</div>'+
- '</td>'+
- '<td>'+
- '<button class="btn btn-danger" type="button" onclick="deleteElement('+i+');">Supprimer</button>'+
- '</td>'+
- '</tr>';
- $('tbody').append(element);
- let modalelement =
- '<div class="modal fade" id="imageModal-'+i+'" tabindex="-'+i+'" role="dialog" aria-labelledby="imageModalTitle-'+i+'" aria-hidden="true">'+
- '<div class="modal-dialog modal-dialog-centered" role="document">'+
- '<div class="modal-content">'+
- '<div class="modal-header">'+
- '<h5 class="modal-title" id="imageModalTitle-'+i+'"></h5>'+
- '<button type="button" class="close" data-dismiss="modal" aria-label="Close">'+
- '<span aria-hidden="true">×</span>'+
- '</button>'+
- '</div>'+
- '<div id="modal-body-'+i+'" class="modal-body" style="text-align:center;">'+
- '<img src="/img/no-image.png" alt="'+i+'" style="margin-bottom:20px;" onerror="this.src=\'/img/no-image.png\'">'+
- '<div>'+
- '<form enctype="multipart/form-data" method="post" accept-charset="utf-8" action="/admin/editPage/8">'+
- '<div style="display:none;"><input type="hidden" name="_method" value="POST"></div>'+
- '<input type="hidden" name="elements['+i+'][name]" value="">'+
- '<input type="hidden" name="elements['+i+'][type]" value="image">'+
- '<input type="hidden" name="elements['+i+'][content]" class="elementTextarea" id="elements-'+i+'-content" value="">'+
- '<div class="imgForm" style="justify-content:center;border:none;">'+
- '<input type="file" name="submittedImage" class="fileInput" onchange="updateImage('+i+')" required="required">'+
- '<button class="btn btn-primary" style="margin-left: 20px;" type="submit">Uploader</button>'+
- '</div>'+
- '</form>'+
- '</div>'+
- '</div>'+
- '<div id="modal-footer-'+i+'" class="modal-footer">'+
- '<form method="post" accept-charset="utf-8" action="/admin/editPage/8"><div style="display:none;"><input type="hidden" name="_method" value="POST"></div>'+
- '<input type="hidden" name="deletedImg[]" value="">'+
- '<button style="float:left" class="btn btn-danger">Supprimer</button>'+
- '</form>'+
- '<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>'+
- '</div>'+
- '</div>'+
- '</div>'+
- '</div>';
- $('#modalsDiv').append(modalelement);
- i++;
- });
- //bouton "supprimer" élement
- function deleteElement(i) {
- if ($('#tr-element-'+i).attr('value')) {
- $('#deleted-elements').append('<input name="deletedElements[]" value="'+ $('#tr-element-'+i).attr('value') +'">');
- }
- $('#tr-element-'+i).remove();
- }
- //changement de type
- function selectChange(irow) {
- if ($('#custom-select-'+irow).val() === 'text') {
- $('#textForm-'+irow).css('display', 'block');
- $('#imageForm-'+irow).css('display', 'none');
- }
- else {
- $('#textForm-'+irow).css('display', 'none');
- $('#imageForm-'+irow).css('display', 'block');
- }
- }
- //initialisation du type
- for (var j = 1; j != i; j++) {
- selectChange(j)
- }
- //update des modals quand le textarea change
- function updateModal(irow) {
- newval = $('#textForm-'+irow).find('textarea').val();
- $('#modal-body-'+irow+' img').attr('src', '/img/upload/'+newval);
- $('#modal-body-'+irow+' .elementTextarea').val(newval);
- $('#modal-footer-'+irow+' input').val(newval);
- $('#imageForm-'+irow+' button .apercuImg').attr('src', '/img/upload/'+newval);
- $('#imageModalTitle-'+irow).html(newval);
- }
- function updateImage(irow) {
- newval = $('#modal-body-'+irow+' .fileInput').val();
- newvaltab = newval.split('\\');
- newval = newvaltab[2];
- $('#modal-body-'+irow+' .elementTextarea').val(newval);
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement