Т.е. оно работает? хотя по идее тоже самое. а что за ошибку выдает? я тут ошибку поправил в своем предыдущем коде) точка с запятой не стояла. ну и так же в скобки взял row[content];
но "ходить" надо "вокруг" функции mb_strripos. она как раз возвращает длину строки по определенному символу, т.е. пробелу.
<?php
$jc='modx_jot_content';
$jf='modx_jot_fields';
$sc='modx_site_content';
$ua='modx_user_attributes';
$sql="SELECT $jc.content, $jc.id, $jc.uparent, $jc.createdon, (SELECT $jf.content FROM $jf WHERE $jf.label='name' AND $jc.id=$jf.id ORDER BY $jf.id) AS guestname, (SELECT $sc.pagetitle FROM $sc WHERE $jc.uparent=$sc.id ORDER BY $sc.id) AS pagetitle, (SELECT $ua.fullname FROM $ua WHERE $jc.createdby=$ua.id ORDER BY $ua.id) AS regname FROM $jc WHERE $jc.published=1 ORDER BY $jc.createdon DESC LIMIT 3";
$q=$modx->db->query($sql) or die(mysql_error());
while($row = mysql_fetch_array($q)){
$string = ($row[content]);
$maxlen = 20;
function cutString($string, $maxlen) {
mb_internal_encoding("UTF-8");
$len = mb_strlen($string);
if ($len > $maxlen) {
$cutStrD = mb_strripos(mb_substr($string, 0, $maxlen), ' ');
$cutStr = mb_substr($string, 0, $cutStrD);
echo $cutStr . '...';
} else {
$cutStr = mb_substr($string, 0, $len);
echo $cutStr;
}
echo '<div class="comment"><div class="ballbtm">';
echo '<div class="content_comm">'.cutString($string, $maxlen).'<a href="'.$modx->makeUrl($row[uparent]).'#'.$row[id].'">.....</a></div>';
echo '</div>';
echo '<div class="aboutpost_author">';
if ($row[guestname]==NULL)
{
echo $row[regname];
} else {
echo $row[guestname];
}
echo '</div></div>';
}
?>
если не найдешь, я еще узнаю у кого-нибудь) щас прост никого в он-лайне нет)
з.ы. либо может просто так?
<?php
$jc='modx_jot_content';
$jf='modx_jot_fields';
$sc='modx_site_content';
$ua='modx_user_attributes';
$sql="SELECT $jc.content, $jc.id, $jc.uparent, $jc.createdon, (SELECT $jf.content FROM $jf WHERE $jf.label='name' AND $jc.id=$jf.id ORDER BY $jf.id) AS guestname, (SELECT $sc.pagetitle FROM $sc WHERE $jc.uparent=$sc.id ORDER BY $sc.id) AS pagetitle, (SELECT $ua.fullname FROM $ua WHERE $jc.createdby=$ua.id ORDER BY $ua.id) AS regname FROM $jc WHERE $jc.published=1 ORDER BY $jc.createdon DESC LIMIT 3";
$q=$modx->db->query($sql) or die(mysql_error());
while($row = mysql_fetch_array($q)){
$maxlen = 97;
$str=($row[content]);
mb_internal_encoding("UTF-8"); // указываем кодировку
$cutStr = mb_strripos(mb_substr($str, 0, $maxlen), ' '); // находим длину строки до 97го символа где последний пробел.
$str =mb_substr($str,0,$cutStr); // обрезаем строку до полученного выше значения
if (mb_strlen($str)<$maxlen) {
$str.='...';}
echo '<div class="comment"><div class="ballbtm">';
echo '<div class="content_comm">'.$str.'<a href="'.$modx->makeUrl($row[uparent]).'#'.$row[id].'">.....</a></div>';
echo '</div>';
echo '<div class="aboutpost_author">';
if ($row[guestname]==NULL)
{
echo $row[regname];
} else {
echo $row[guestname];
}
echo '</div></div>';
}
?>
Сообщение отредактировал Олег Сартаков: 25 Август 2011 - 20:01