21491 Posts in 5783 Topics by 2622 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 1493 Views |
-
First word of $content bold...

28 October 2009 at 11:52pm
This is a long shot - but does anyone have a snippet of how to make the firast word of a returned $content bold.
Hope this makes sense.
-
Re: First word of $content bold...

29 October 2009 at 11:20pm Last edited: 29 October 2009 11:22pm
It depends on the HTML content of your $Content field, but you should achieve it quite easily with a combination of CSS pseudo-elements :first-child and :first-letter.
Hope it helps,
JuanEDIT: Sorry, this approach is useless, I read too fast… I thought you were talking about the first letter, not the first word.
-
Re: First word of $content bold...

29 October 2009 at 11:31pm
It is a shame there is no :first-word. Thanks for response though. I will remember this if I need to highlight first letter
-
Re: First word of $content bold...

3 November 2009 at 12:37pm
Its a bit over the top, but you could use javascript/jquery. I am pulling this out of ass a bit, but I imiagine it would be something like:
// Assuming your content container div has a class of Layout and
// your first element within that is a p tag. This returns the first para
// as an array split by a space character.
textString = $('div.Layout p:first').text().split(' ');// Now get the first word from that array and add strong tags
firstWord = '<strong>' + textString.slice(0,1) + '</strong>';// Create variable for reassembled para
reassemble = '';// Loop through each item in the array, and add you bold word in place of the first item.
for (i = 0; i < textString.length; i++) {
if(i == 0)
reassemble += firstWord + ' ';
else
reassemble += textString + ' ';
}$('div.Layout p:first').text(reassemble);
I am sure there is a more efficient way of doing this (probably involving a regex), but its far to late for that
. -
Re: First word of $content bold...

4 November 2009 at 3:10am
Thanks Mo. i will try this and let you know
-
Re: First word of $content bold...

15 September 2011 at 12:00pm Last edited: 15 September 2011 12:00pm
I found out a regex function that will work for Pages. Thanks to UC @ www.silverstripe.org/archive/show/4383
New Field on Class "Page" in page.php
Get the first word
function NewField_FirstWord(){
list($Field_Split) = explode(' ', $this->NewField); //Found on the PHP Manual Website
return $Field_Split;
}
Get everything but the first wordfunction NewField_AllButFirstWord(){
list($Field_Split) = explode(' ', $this->NewField);
return preg_replace("/$Field_Split/", '', $this->NewField, 1); //Preg includes a count at the end, for PHP 5.0+
}Your NewField can be Content, Title, or whatever new field.
Page.ss
just call
<span>$NewField_FirstWord</span>$NewField_AllButFirstWord
-
Re: First word of $content bold...

15 September 2011 at 7:38pm
If $Content is a HTMLText, you should consider strip_tags before.
function Content() {
$content = $this->Content;
$content_plain = trim(strip_tags($content));
$content_1st = current(explode(" ",$content_plain));
$content = preg_replace("/$content_1st/", "<strong>$content_1st</strong>", $content, 1);
return $content;
}
| 1493 Views | ||
|
Page:
1
|
Go to Top |




