Hi, I have to display part of the content of my module output in a sidebar.
1) In the template defined in the admin panel of CMSMS, I have something like this:
<div id="central_content">{content}</div>
and
<div id="sidebar">(here I want to display a form)</div>
2) In a CMSMS page I call my module
{cms_module module="mymodule"}
At the moment, all the output generated by "mymodule" is displayed in the "content" DIV, of course.
I need to display in the "sidebar" only a little part of the entire output (a form).
I have read the forum and found that the {content_module} tag could maybe solve my problem; but I didn't understand how to use it.
I know I can call, for example:
{content_module block='form' module='mymodule'}
in the template. But, how can assign, in my module's php code, the form to block='form'?
Is there another, maybe better, way to acheive this?
(I hope I clearly explained what I need).
thanks
Display module output portion
Re: Display module output portion
You could add assign to your module template for example:
And edit that module template to contain </div><div id="sidebar">form code</div>
Then in your page template on start of it add:
Now in your page tempalte where your content is:
Hope you get the point.
Code: Select all
{assign var='is_module' value='1'}
Then in your page template on start of it add:
Code: Select all
{content assign='my_content'}
Code: Select all
{if isset($is_module)}
<div id="central_content">{$my_content}
{else}
<div id="central_content">{$my_content}</div>
<div id="sidebar">Some other sidebar content that is shown when no module</div>
{/if}
Re: Display module output portion
I think so. So I have to edit the module template (.tpl under templates dir of my module).uniqu3 wrote: Hope you get the point.
I hoped there was another way to have the form displayed in the sidebar, just editing the main template of the cms.
I also tried to use {capture}, but without success:
in module's template:
{capture assign='myform'}THE FORM {/capture}
then, in the head of the main cms template, I put:
{capture}{content}{/capture}
and tried to display the form in this way in the body.
<div id="sidebar">{$myform}</div>
But doesn't work.
Thank you uniqu3!
Re: Display module output portion
What module do you try to use? Most of module templates can be edited in backend, no need to mess with original .tpl files these are used for sample templates.
Re: Display module output portion
It is a module I'm developing
Re: Display module output portion
nervino,
According to me it is better to prepare one php that displays the content. Yet another prepares the sidebar material. Next prepare a template (that will be connected to the page) and in the sidebar part of the template call your module using {cms_module module='MyModule' display=sidebar} and in the content part of the page use {cms_module module='MyModule' display=content}.
Duketown
PS. will it be a module for the community (or later on maybe)?
According to me it is better to prepare one php that displays the content. Yet another prepares the sidebar material. Next prepare a template (that will be connected to the page) and in the sidebar part of the template call your module using {cms_module module='MyModule' display=sidebar} and in the content part of the page use {cms_module module='MyModule' display=content}.
Duketown
PS. will it be a module for the community (or later on maybe)?
Re: Display module output portion
Thank you, I'll try your suggestions.
No, the module is an application for a customer of mine, very specific and of no interest for others.
No, the module is an application for a customer of mine, very specific and of no interest for others.