Note the upgraded forum! If you are experiencing issues logging in, you may need to reset your password which should send an email. If the email doesn't arrive, be sure to check your spam folder just in case.

Advanced Module and Layout file.

Hi,
I'm really lost in how to render the content of an advanced module in my main layout ($vars['body'])

in:
/app/fuel/modules/partner/controllers/Partner.php

I got:

<?php
class Partner extends CI_Controller {

    var $partner_config;

    function __construct()
    {
        parent::__construct();

        $this->partner_config = $this->fuel->partner->config();
    }


    function index()
    {
        ddd('index');
    }

    /**
     * Submit a new Partner Entry
     * @return void
     */
    function submit()
    {

        $this->load->library(
            'form_builder',
            array(
                'id'=>'addPartner',
                'form_attrs' => array(
                    'method' => 'post',
                    'action' => '/partner/submit'
                ),
                'submit_value' => 'Neuen Eintrag hinzufügen',
                'textarea_rows' => '5',
                'textarea_cols' => '28',
                'render_format' => 'divs',
                'label_layout' => 'top'
            )
        );

        $fields = array(
            'name' => array(
                'label' => 'Full Name',
                'required' => true
            ),
            'comment' => array(
                'type' => 'text',
                'label' => 'Comment',
                'required' => true
            )
        );

        $this->form_builder->set_fields($fields);

        $vars = [
            'form' => $this->form_builder->render()
        ];
        // render `/app/fuel/modules/partner/views/submit.php`
        $vars['body'] = $this->load->module_view('partner', 'submit', $vars, true);

        // how to render the form in my main layout in /fuel/application/views/layouts/main.php ?


    }

}

I could do something like this the CI way: $output = $this->load->view('_layouts/main', $vars, TRUE); but what is the fuel way including all the vars/fields that I expect from my layout?

and second:

I use the fuel form_builder how can I utilize all the fuel validation etc. that's used in the backend, after I _POST the form here in the controller? I think about retrieving all DB Fields like I would in Partner_model->form_fields();

Thank you!

Comments

  • edited November 27

    Got it rendered this way.

    <?php
    class Partner extends CI_Controller {
    
        /**
         * Submit a new Partner Entry
         * @return void
         */
        function submit()
        {
    
            // ...
            $vars = [
                    'layout' => 'main',
                    'page_title' => ' Add Partner',
                    'form' => $this->form_builder->render(),
            ];
            // render /app/fuel/modules/partner/views/submit.php
            // in
            // /app/fuel/application/views/_layouts/main.php
            $output = $this->fuel->pages->render('submit', $vars,[
                'view_module' => PARTNER_FOLDER,
            ], True);
    
        }
    
    }
    

    I have no idea what this is doing behind the scenes :-(
    Ho do you keep track of all the places where to configure or set up thing, and which method to use?

    This helped a little bit: https://forum.getfuelcms.com/discussion/2977/using-the-application-views-layouts-main-php-in-advanced-modules/p1

    Now getting the form set up :)

Sign In or Register to comment.