It looks like you're new here. If you want to get involved, click one of these buttons!
Hello,
I have recently started using Fuel CMS, and I would like to create a new view without a data model. Have checked the documentation, but cannot find how to do this.
I started a new project and after setup logged in, everything is working as expected.
Then created a new advanced module with the command:
php index.php fuel/generate/advanced reports
So, now I have a "Reports" entry in the left menu and a reports folder in the fuel/modules/ folder.
After this, I have created fuel/modules/reports/config files and fuel/modules/reports/views/report1.php
I created a html form in report1.php and I can click on the report1 entry in Reports, in the left menu, to view it, but there are no Fuel menus or header, just the form on a white background.
Could only find this old example of a view with menus working, but in my new project I am getting php errors instead of the left menu entries and my form is not fully visible, as it is under the left menu.
This is my report1.php file:
`<?php
$this->load->module_view(FUEL_FOLDER, '_blocks/fuel_header');
// set some render variables based on what is in the panels array
$no_menu = (!$this->fuel->admin->has_panel('nav')) ? TRUE : FALSE;
$no_titlebar = (!$this->fuel->admin->has_panel('titlebar')) ? TRUE : FALSE;
$no_actions = (!$this->fuel->admin->has_panel('actions') OR empty($actions)) ? TRUE : FALSE;
$no_notification = (!$this->fuel->admin->has_panel('notification')) ? TRUE : FALSE;
?>
<?php if ($this->fuel->admin->has_panel('nav')) : ?>
<!-- LEFT MENU PANEL -->
<?php $this->load->module_view(FUEL_FOLDER, '_blocks/nav'); ?>
<?php endif; ?>
<div id="fuel_main_panel<?=($no_menu) ? '_compact' : ''?>">
<?php if ($this->fuel->admin->has_panel('titlebar')) : ?>
<!-- BREADCRUMB/TITLE BAR PANEL -->
<?php $this->load->module_view(REPORTS_FOLDER, '_blocks/titlebar_preactas')?>
<?php endif; ?>
<?php if ($this->fuel->admin->has_panel('actions') AND !empty($actions)) : ?>
<!-- ACTION PANEL -->
<div id="fuel_actions">
<?php /* ?><?=$this->form->open('action="'.$form_action.'" method="post" id="form_actions" enctype="multipart/form-data"')?><?php */ ?>
<?php if (!empty($actions)) : ?>
<?=$actions?>
<?php endif; ?>
<?php /* ?><?=$this->form->close()?><?php */ ?>
</div>
<?php endif; ?>
<?php if ($this->fuel->admin->has_panel('notification')) : ?>
<!-- NOTIFICATION PANEL -->
<div id="fuel_notification" class="notification">
<?php if (!empty($notifications)) : ?>
<?=$notifications?>
<?php endif; ?>
<?php if (!empty($pagination)): ?>
<div id="pagination"><?=$pagination?></div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php
$main_content_class = '';
if ($no_actions AND $no_notification) : $main_content_class = 'noactions_nonotification';
elseif ($no_actions AND $no_titlebar) : $main_content_class = 'noactions_notitlebar';
elseif ($no_titlebar) : $main_content_class = 'notitlebar';
elseif ($no_actions) : $main_content_class = 'noactions';
endif;
?>
<div id="fuel_main_content<?=($no_menu) ? '_compact' : ''?>"<?=(!empty($main_content_class)) ? ' class="'.$main_content_class.'"' : ''?>>
<!-- BODY -->
<?php $this->load->module_view(REPORTS_FOLDER, 'preactas_content'); ?>
<?=$this->form->hidden('fuel_inline', (int)$this->fuel->admin->is_inline())?>
</div>
<?=$this->form->close()?>
</div>
</div>
<div id="fuel_modal" class="jqmWindow"></div>
<div id="fuel_main_content_inner">
<div id="fuel_main_content_line" style='margin-bottom: 20px;'>
<h3>Report1:</h3>
</div>
<div id="fuel_main_content_line">
<form enctype="multipart/form-data">
My form
</form>
</div>
</div>
`
And this is the text I get instead of the left menu entries:
`A PHP Error was encountered
Severity: Warning
Message: Undefined variable $nav_selected
Filename: _blocks/nav.php
Line Number: 59
Backtrace:
File: /var/www/html/autoPIR/fuel/modules/fuel/views/_blocks/nav.php
Line: 59
Function: _error_handler`
I know a nav_selected option can be added to MY_fuel_modules.php so added following line to it, but produces other errors, as there is no model or tables related:
$config['modules']['reports'] = array();
Is it possible to get this kind of view working?
An example would be very useful.
Thanks for your help!
Comments
Try the following instead (feel free to change the value from 'reports' to what you need to appear selected in the admin when in the module):
Thanks for your answer!
I already tried that, I am getting this when setup that config:
`An uncaught Exception was encountered
Type: RuntimeException
Message: Unable to locate the model you have specified: Reports_model
Filename: /fuel/codeigniter/core/Loader.php
Line Number: 349`
If I create the Reports_model then I get an error about the table reports that does not exists, and when the table is created this:
`A PHP Error was encountered
Severity: Warning
Message: Undefined array key 1
Filename: libraries/Fuel_modules.php
Line Number: 774`
Anyways Fuel interface is not loaded correctly and my view is under the left menu, so cannot be used properly.
Thanks.
Actually, you created an "Advanced Module". Advanced modules are a way to sort of "name-space" your code and make it modular by not interfering as much with your
fuel/application
directory. They can contain "Simple Modules" (e.g. like the Blog and Forms module examples listed below):https://docs.getfuelcms.com/modules
https://docs.getfuelcms.com/modules/advanced
In your case, there should be a
fuel/modules/reports/controllers/Reports.php
file. Are you able to determine if that is the controller serving up the page? If so, you may need to pass it the 'nav_selected' variable upon rendering in the controller.It's a little unclear what you are trying to do with the code above. If you are wanting to create a simple form that houses report information, that sounds like you may want to create a "Simple Module".
Regarding examples, I'd recommend looking at some of the other Advanced modules:
Blog
https://docs.getfuelcms.com/modules/blog
https://github.com/daylightstudio/FUEL-CMS-Blog-Module
Forms
https://docs.getfuelcms.com/modules/forms
https://github.com/daylightstudio/FUEL-CMS-Forms-Module
I wanted a module/controller/view/form/whatever inside the CMS but without a model.
As it seems not possible (pages are too simple), I will think another way to do it.
Thanks for your help.
You can totally do it but you'll need to think of traditional CI controller view and routing. You may need to add your route to your
fuel/modules/reports/reports_routes.php
file and to get rid of the$nav_selected
error, you'll need to just make sure the variable is passed to the view.