Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

How to only show a more link if there's actually more content?


Go to End


2 Posts   1506 Views

Avatar
steffik

Community Member, 15 Posts

15 April 2011 at 9:09pm

I'm stuck with a little programming problem and don't know how to proceed.

I only want to show a more link on a news if there is actually more content than just the first paragraph. Something like
<% if Content > Content.FirstParagraph %>
but as i know that the templating language doesn't support comparisons just jet, i tried to write this in my NewsList Controller, but i think my function never gets called, so i wonder if i'm making anything wrong?

	
	function HasMoreContent() { 
		if ($this->obj('Content')->FirstParagraph()
			&& $this->Content > $this->obj('Content')->FirstParagraph()) {
			return true; 
			} else {
			return false;
		}
	}

and in the template:

<% if Content %>
   <% if HasMoreContent %>
	<a href="$Link" title="Mehr &uuml;ber &quot;{$Title}&quot;"> &gt;&gt; mehr</a>
   <% end_if %>
<% end_if %>

i also tried something like this, just to see if anything gets called at all

function HasMoreContent() { 
	print "test";
	return "Test";
}

and in the template:

$HasMoreContent 

Any hints on how to proceed would be greatly appreciated.

Avatar
JonoM

Community Member, 130 Posts

16 April 2011 at 12:01am

Regarding your function not getting called - I think it might be a context/scope thing. I'm guessing you have something like a NewsList page type and a NewsArticle page type? In that case I think the HasMoreContent() function should be on your NewsArticle controller instead of your NewsList controller.