Page 1 of 1
[Solved] News: Show Title in Child Categories In Browser
Posted: Wed May 01, 2013 10:59 am
by dinmix
Hi Guys
I have 2 news items but I like to show only the Sports news in a page. Currently, I am getting this when I use the browse category template:
General
Current News
Sports
- Swimming
- Running
- Cycling
What I'm trying to do it to show only the Sports Category and its content like the following:
Swimming
- Title of Story One
- Title of Story Two
- Title of Story Three
Running
- Title of Story One
- Title of Story Two
- Title of Story Three
Cycling
- Title of Story One
- Title of Story Two
How can I achieve this? Thanks
Re: News: Show Title in Child Categories In Browse Template
Posted: Wed May 01, 2013 11:49 am
by oliverseddon
Hi,
I would suggest using a regular Summary template rather than the browsecat option. Then do something like this:
Code: Select all
{assign var='currentCat' value=''}
{foreach from=$items item=entry}
{if $entry->category == 'Swimming'}
{if $currentCat != $entry->category}<h2>{$entry->category}</h2>{/if}
{assign var='currentCat' value=$entry->category}
<div class="NewsSummary">
{if $entry->postdate}
<div class="NewsSummaryPostdate">
{$entry->postdate|cms_date_format}
</div>
{/if}
<div class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>
{if $entry->author}
<div class="NewsSummaryAuthor">
{$author_label} {$entry->author}
</div>
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
<div class="NewsSummaryMorelink">
[{$entry->morelink}]
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{if isset($entry->extra)}
<div class="NewsSummaryExtra">
{eval var=$entry->extra}
{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}
</div>
{/if}
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
</div>
{else if $entry->category == 'Running'}
{if $currentCat != $entry->category}<h2>{$entry->category}</h2>{/if}
{assign var='currentCat' value=$entry->category}
<div class="NewsSummary">
{if $entry->postdate}
<div class="NewsSummaryPostdate">
{$entry->postdate|cms_date_format}
</div>
{/if}
<div class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>
{if $entry->author}
<div class="NewsSummaryAuthor">
{$author_label} {$entry->author}
</div>
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
<div class="NewsSummaryMorelink">
[{$entry->morelink}]
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{if isset($entry->extra)}
<div class="NewsSummaryExtra">
{eval var=$entry->extra}
{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}
</div>
{/if}
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
</div>
{else if $entry->category == 'Cycling'}
{if $currentCat != $entry->category}<h2>{$entry->category}</h2>{/if}
{assign var='currentCat' value=$entry->category}
<div class="NewsSummary">
{if $entry->postdate}
<div class="NewsSummaryPostdate">
{$entry->postdate|cms_date_format}
</div>
{/if}
<div class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>
{if $entry->author}
<div class="NewsSummaryAuthor">
{$author_label} {$entry->author}
</div>
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
<div class="NewsSummaryMorelink">
[{$entry->morelink}]
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{if isset($entry->extra)}
<div class="NewsSummaryExtra">
{eval var=$entry->extra}
{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}
</div>
{/if}
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
</div>
{/if}
{/foreach}
Re: News: Show Title in Child Categories In Browse Template
Posted: Wed May 01, 2013 11:59 am
by dinmix
Excellent! Thank you very much Oliver. The result is exactly what I want but with this I have to add the category name in the template every time I add new one. Is there a way to make automate this similar to the browsecat template?
Re: News: Show Title in Child Categories In Browse Template
Posted: Wed May 01, 2013 2:04 pm
by oliverseddon
Looks like this would do it:
Code: Select all
{assign var='currentCat' value=''}
{assign var='open' value=false}
{foreach from=$items item=entry}
{if $currentCat != $entry->category}
{if $open}</div>{/if}
<h2 class="category-title">{$entry->category}</h2>
<div class="items">
{assign var='currentCat' value=$entry->category}
{assign var='open' value=true}
{/if}
<div class="NewsSummary">
{if $entry->postdate}
<div class="NewsSummaryPostdate">
{$entry->postdate|cms_date_format}
</div>
{/if}
<div class="NewsSummaryLink">
<a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a>
</div>
{if $entry->author}
<div class="NewsSummaryAuthor">
{$author_label} {$entry->author}
</div>
{/if}
{if $entry->summary}
<div class="NewsSummarySummary">
{eval var=$entry->summary}
</div>
<div class="NewsSummaryMorelink">
[{$entry->morelink}]
</div>
{else if $entry->content}
<div class="NewsSummaryContent">
{eval var=$entry->content}
</div>
{/if}
{if isset($entry->extra)}
<div class="NewsSummaryExtra">
{eval var=$entry->extra}
{* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *}
</div>
{/if}
{if isset($entry->fields)}
{foreach from=$entry->fields item='field'}
<div class="NewsSummaryField">
{if $field->type == 'file'}
<img src="{$entry->file_location}/{$field->value}"/>
{else}
{$field->name}: {eval var=$field->value}
{/if}
</div>
{/foreach}
{/if}
</div>
{/foreach}
{if $open}</div>{/if}
Then your {news} call would need to look something like:
Code: Select all
{news sortby='news_category' category='Sport*'}
Re: News: Show Title in Child Categories In Browse Template
Posted: Wed May 01, 2013 4:36 pm
by dinmix
Thank you so much! Exactly what I was looking for and it work like a charm. I've have spend two days trying to do this and you did that in like a minute. You are a life saver! Thank you! Thank you!

Re: [Solved] News: Show Title in Child Categories In Browser
Posted: Wed May 01, 2013 6:12 pm
by oliverseddon
No problem, glad to help. Some inspiration was taken from the ListIt2 module's template.
Thanks
Oliver