PHP Classes

File: aksara/Modules/Cms/Views/pages/form.php

Recommend this page to a friend!
  Packages of Aby Dahana   Aksara   aksara/Modules/Cms/Views/pages/form.php   Download  
File: aksara/Modules/Cms/Views/pages/form.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Aksara
A CodeIgniter based API and CRUD generator
Author: By
Last change:
Date: 15 days ago
Size: 5,064 bytes
 

Contents

Class file image Download
<?php
/**
 * @var mixed $results
 * @var mixed $forms
 */
?>
<style type="text/css">
    #title-wrapper, [role="meta"] { display: none !important; }
</style>
<div class="pb-form-wrapper">
    <form action="<?= current_page(); ?>" method="POST" class="--validate-form">
        <!-- Manually Placed Page Builder Toolbar -->
        <div class="pb-toolbar px-3 py-2 sticky-top bg-white border-bottom">
            <div class="pb-toolbar-group bg-light rounded-pill px-1 border">
                <button type="button" class="btn btn-sm btn-link text-dark pb-undo" data-bs-toggle="tooltip" title="<?= phrase('Undo'); ?>">
                    <i class="mdi mdi-undo"></i>
                </button>
                <div class="vr my-1"></div>
                <button type="button" class="btn btn-sm btn-link text-dark pb-redo" data-bs-toggle="tooltip" title="<?= phrase('Redo'); ?>">
                    <i class="mdi mdi-redo"></i>
                </button>
            </div>
            <div class="pb-toolbar-group bg-light rounded-pill px-1 border mx-auto">
                <button type="button" class="btn btn-sm pb-device-btn active rounded-pill" data-device="desktop" data-bs-toggle="tooltip" title="<?= phrase('Desktop'); ?>">
                    <i class="mdi mdi-monitor"></i>
                </button>
                <button type="button" class="btn btn-sm pb-device-btn rounded-pill" data-device="tablet" data-bs-toggle="tooltip" title="<?= phrase('Tablet'); ?>">
                    <i class="mdi mdi-tablet"></i>
                </button>
                <button type="button" class="btn btn-sm pb-device-btn rounded-pill" data-device="mobile" data-bs-toggle="tooltip" title="<?= phrase('Mobile'); ?>">
                    <i class="mdi mdi-cellphone"></i>
                </button>
            </div>
            <div class="pb-toolbar-group gap-2">
                <button type="button" class="btn btn-sm btn-outline-secondary rounded-pill px-3 click-on-invalid" onclick="window._pageBuilder.openSettings('#pb-settings-container')">
                    <i class="mdi mdi-cogs me-1"></i><?= phrase('Settings'); ?>
</button>
                <button type="button" class="btn btn-sm btn-outline-primary rounded-pill pb-preview-btn px-3">
                    <i class="mdi mdi-eye me-1"></i><?= phrase('Preview'); ?>
</button>
                <button type="button" class="btn btn-sm btn-success rounded-pill pb-save-btn px-4">
                    <i class="mdi mdi-content-save me-1"></i><?= phrase('Save Page'); ?>
</button>
            </div>
        </div>

        <div class="row g-0">
            <!-- Main: Page Builder Canvas -->
            <div class="col-12 bg-light">
                <div id="page-builder"></div>
                <?php
                    $page_content
= (isset($results->field_data->page_content->value) ? $results->field_data->page_content->value : '{"components":[]}');
               
?>
<input type="hidden" name="page_content" id="page_content" value="<?= htmlspecialchars($page_content, ENT_QUOTES); ?>" />
            </div>
        </div>

        <!-- Container: Page Metadata Settings (Hidden, will be moved to modal) -->
        <div id="pb-settings-container" style="display:none">
            <?= (isset($results->field_data->page_title) ? form_input($results->field_data->page_title) : null); ?>
<?= (isset($results->field_data->page_slug) ? form_input($results->field_data->page_slug) : null); ?>
<?= (isset($results->field_data->page_description) ? form_input($results->field_data->page_description) : null); ?>
<?= (isset($results->field_data->language_id) ? form_input($results->field_data->language_id) : null); ?>
<?= (isset($results->field_data->status) ? form_input($results->field_data->status) : null); ?>
<div role="validation-callback"></div>
        </div>
    </form>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        require.css('<?= get_module_asset('css/pagebuilder.css'); ?>');
        require.js([
            '<?= get_module_asset('js/sortable.min.js'); ?>',
            '<?= get_module_asset('js/pagebuilder.min.js'); ?>'
        ], function() {
            var builder = new AksaraPageBuilder({
                el: '#page-builder',
                input: '#page_content',
                preview_url: '<?= go_to('builder-preview'); ?>',
                components: <?= json_encode($builder_components ?? []); ?>,
                categories: <?= json_encode($builder_categories ?? []); ?>
});

            // Collapse main sidebar for more space
            setTimeout(function() {
                if(!document.body.classList.contains('sidebar-collapsed')){
                    var sidebarToggle = document.querySelector('[data-toggle="sidebar"]');
                    if(sidebarToggle) sidebarToggle.click();
                }
            }, 100);

            window._pageBuilder = builder;
        });
    });
</script>