PDA

View Full Version : Strip characters javascript


Jalo
06-03-2009, 10:00 PM
Hi all,

I use 3.8.2 and use this code to display latest threads on my portal:


<if condition="$vbulletin->options['externaljs']">
<script type="text/javascript" src="external.php?forumids=19&type=js"></script>
<script language="" type="text/javascript">
<!--
for (x = 0; x < 7; x++)
{
document.writeln("<li><a href=\"showthread.php?t="+threads[x].threadid+"\">"+threads[x].title+"</a></li>");
}
//-->
</script>

<script type="text/javascript" src="external.php?forumids=30&type=js"></script>
<script language="" type="text/javascript">
<!--
for (x = 0; x < 7; x++)
{
document.writeln("<li><a href=\"showthread.php?t="+threads[x].threadid+"\">"+threads[x].title+"</a></li>");
}
//-->
</script>
</if>


But when a thread title is too long it takes up two lines breaking my layout. So I would like to set a max characters for the title to show and end with ...

How can this be done?

Jan

Dylanblitz
06-03-2009, 11:43 PM
Not the best at javascript and I haven't tested it but I would try something like this. Might not get you there but it will give you an idea of what's needed. Just modify the length from 30 to whatever you want and if you want something other then ... at the end of a cropped string change that.

<if condition="$vbulletin->options['externaljs']">
<script type="text/javascript" src="external.php?forumids=19&type=js"></script>
<script language="" type="text/javascript">
<!--
max_title_len = 30;
string_term = "...";

for (x = 0; x < 7; x++)
{
if (threads[x].title.length > max_title_len)
{
thread_title = threads[x].title.substring(0, max_title_len) + string_term;
} else {
thread_title = threads[x].title;
}

document.writeln("<li><a href=\"showthread.php?t="+threads[x].threadid+"\">"+thread_title+"</a></li>");
}
//-->
</script>

<script type="text/javascript" src="external.php?forumids=30&type=js"></script>
<script language="" type="text/javascript">
<!--
max_title_len = 30;
string_term = "...";

for (x = 0; x < 7; x++)
{
if (threads[x].title.length > max_title_len)
{
thread_title = threads[x].title.substring(0, max_title_len) + string_term;
} else {
thread_title = threads[x].title;
}

document.writeln("<li><a href=\"showthread.php?t="+threads[x].threadid+"\">"+thread_title+"</a></li>");
}
//-->
</script>
</if>

Jalo
06-04-2009, 12:02 AM
Awesome Dylanblitz! Thank you very much man!!

Works!

Jan