Формируйте сылку по другому, прямо в шаблоне!
При обрезании текста (&truncLen) Ditto вместо нормального обрезания добавляет вопросик �
Кто нибудь знает как решить эту проблему?
<a href="[~[+id+]~]">подробнее<img src="img/podrob.gif" border="0" align="absbottom"></a>
Bu$ter link=topic=14802.msg98569#msg98569 date=1180427820]Дейтвительно работает! Нет этих грёбаных квадратиков. Вот код( где то на 376 строке в AjaxSearch вставил, после $search = explode(" ", $searchString) )
Есть альтернативное решение: http://www.phpinsider.com/smarty-forum/viewtopic.php?t=5487&highlight=truncate, должно работать, наверное, сам не пробовал.
function smarty_modifier_mb_truncate($string, $intEncode='UTF-8', $length = 80, $etc = '...', $break_words = false)
{
if ($length == 0) return '';
// Set the internal encoding
if (!$intEncode) $intEncode = "UTF-8";
mb_internal_encoding($intEncode);
if (mb_strlen($string) > $length) {
$length -= mb_strlen($etc);
if (!$break_words) $string = preg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1));
return mb_substr($string, 0, $length).$etc;
} else {
return $string;
}
}
foreach( $search as $string ){
smarty_modifier_mb_truncate($string, $intEncode='UTF-8', $length = 80, $etc = '...', $break_words = false);
}
<?php
if (strpos($options, '|')===false) $options .= '| ...';
list($anonslen, $anonsetc) = explode('|',$options);
$anonslen = (int)$anonslen;
$anonslen = empty($anonslen) ? 100 : $anonslen;
$anonsetc = empty($anonsetc) ? ' ...' : $anonsetc;
$length = $anonslen;
if (strlen($output) > $length) {
$length -= strlen($anonsetc);
$output = preg_replace('/\s+?(\S+)?$/', '', substr($output, 0, $length+1));
$output = substr($output, 0, $length).$anonsetc;
}
return $output;
?>