You've asked question with multiple possible answers, dependent on a level of site configuration that's hard to debug remotely.
I usually debug this things bottom up. It looks like you're trying to add block to main content area in the admin interface.
$this->_addContent($this->getLayout()->createBlock('prefs/adminhtml_forms'));
So, the first two things I'd check are
The answers to these questions will move you along to the next step of your debugging workflow.
Re: adding a text block -- test that with the following
$this->_addContent(
$this->getLayout()->createBlock('core/text')->setText('<h1>Success</h1>')
);
You should see the word Success output to the content area.
Re: instantiating your block, test that with
$my_block = $this->getLayout()->createBlock('prefs/adminhtml_forms');
var_dump(get_class($my_block));
You should see your block's class name output to the screen. My guess is you'll see a boolean false
for the later, pointing to a misconfigured block and/or a class with the wrong name/location.
Assuming the two collections are correct and all you needed to do was join the two sets, from a purely hypothetical view point you could try:
$customersSubscribersLeftJoin
->getSelect()
->union(
array(
$customersSubscribersLeftJoin->getSelect()
)
);
I suspect however that you would have difficulty with the resulting collection. You would probably end up with something like "item with this id already exists", and that's assuming it even works, which I haven't actually tested.
Best Answer
You may add several grids to the page.
Otherwise you will need to create some sort of compound collection in _prepareCollection method. In this case, you'd better create some new model which would be dealing with data.