I have learned the basics of codeigniter and now learning the modules.
My problem : I have made two folders inside the modules folder, first_module and second_module.
In the first_module inside the controller my code :
<?php
class First_module extends MX_Controller {
public function index()
{
$this->load->view('first_module_view');
}
}
?>
first_module_view page code :
<html>
<body>
<h1> hey this is first module </h1>
<?php
echo Modules::run('second_module/second_module');
?>
</body>
</html>
second_module controller page :
<?php
class Second_module extends MX_Controller {
public function index()
{
$this->load->view('second_module_view');
}
}
?>
second_module_view page:
<html>
<body>
<h1> hey this is second module </h1>
</body>
</html>
I am trying to partially view the second module view in the first_module view using the second_module's controller, but that is not working.
Individually both codes are working fine but Modules::run() doesn't seems to work.
Am I missing something?
I am aware that you have found your solution and this does not answer the exact question that you asked, however, I would usually do something like that in this way:
<?php
class First_module extends MX_Controller {
public function index()
{
$content = array();
//send content array to 2nd view and return everything as a string to be added as content to the first view
$content["second_view"] = $this->load->view('second_module_view',$content,true);
$this->load->view('first_module_view',$content);
}
}
?>
First module view then becomes:
<html>
<body>
<h1> hey this is first module </h1>
<?php
echo $second_view;
?>
</body>
I've not worked with modules specifically, however this is how I would do it with controllers and views. I would do what I can to limit the calls to models and modules from within the view. Just pass in variables generated in the controller from your models.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With