PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : substr befehl einbinden?!


Kartoffelmann
02.11.2005, 21:18:41
hi ich hätte mal eine frage.
leider bin ich ein absoluter neuling in sachen php deshalb wird sie hoffenlich schnell beantwortet sein.

vielleicht kennt ihr das cms xoops. das arbeitet mit sogenannten blöcken die man einzeln in die seite einfügen kann.
so gibt es auch ein block in dem man sich aktuelle kommentare, zu z.b. bildern, direkt auf der homepage in einem seiten oder centerblock anzeigen lassen kann.
leider steht dann immer der komplette titel des kommentares in dem block und nicht nur ein bestimmter teil mit einer bestimmten zeichenlängem, wenn der titel also zu lang ist versaut er mir immer mein komplettes bild der homepage.

ich habe mich also ein bisschen umgehört und habe den befehl "substr" bzw. "xoops_substr" gefunden, mit dem ich mich mal in einer php-datei versucht habe, von der ich denke das sie für die anzeige verantwortlich ist.
leider hat sich nix getan, was wohl ein meiner php-unwissenheit liegt. ich habe mich zu diesem thema auch schon in xoopsforen erkundigt aber keine lösung gefunden. vielleicht könnt ihr mir ja helfen.

hier ist der codeausschnitt:


function b_system_comments_show($options)
{
$block = array();
include_once XOOPS_ROOT_PATH.'/include/comment_constants.php';
$comment_handler =& xoops_gethandler('comment');
$criteria = new CriteriaCompo(new Criteria('com_status', XOOPS_COMMENT_ACTIVE));
$criteria->setLimit(intval($options[0]));
$criteria->setSort('com_created');
$criteria->setOrder('DESC');
$comments =& $comment_handler->getObjects($criteria, true);
$member_handler =& xoops_gethandler('member');
$module_handler =& xoops_gethandler('module');
$modules =& $module_handler->getObjects(new Criteria('hascomments', 1), true);
$comment_config = array();
foreach (array_keys($comments) as $i) {
$mid = $comments[$i]->getVar('com_modid');
$com['module'] = '<a href="'.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/">'.$modules[$mid]->getVar('name').'</a>';
if (!isset($comment_config[$mid])) {
$comment_config[$mid] = $modules[$mid]->getInfo('comments');
}
$com['id'] = $i;
$com['title'] = '<a href="'.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/'.$comment_config[$mid]['pageName'].'?'.
$comment_config[$mid]['itemName'].'='.$comments[$i]->getVar('com_itemid').'&com_id='.$i.'&com_rootid='.
$comments[$i]->getVar('com_rootid').'&'.$comments[$i]->getVar('com_exparams').'#comment'.$i.'">'.$comments[$i]->getVar('com_title').'</a>';
$com['icon'] = $comments[$i]->getVar('com_icon');
$com['icon'] = ($com['icon'] != '') ? "subject/".$com['icon'] : 'subject/icon1.gif';
$com['time'] = formatTimestamp($comments[$i]->getVar('com_created'),'m');
if ($comments[$i]->getVar('com_uid') > 0) {
$poster =& $member_handler->getUser($comments[$i]->getVar('com_uid'));
if (is_object($poster)) {
$com['poster'] = '<a href="'.XOOPS_URL.'/userinfo.php?uid='.$comments[$i]->getVar('com_uid').'">'.$poster->getVar('uname').'</a>';
} else {
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
}
} else {
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
}
$block['comments'][] =& $com;
unset($com);
}
return $block;
}


wie muss ich jetzt den "substr" befehl einbauen das er mir den COM_title mit z.b. einer zeichenlänge von 6 ausgibt?

dank im vorraus
alex

feuervogel
02.11.2005, 21:47:51
willkommen im forum!

von welcher variable willst du die ersten 6 zeichen haben?

Kartoffelmann
02.11.2005, 22:31:02
hi, danke für die schnelle antwort.

der 'com_title' soll gekürzt werden.

feuervogel
02.11.2005, 23:50:59
dann muss es so lauten:

echo substr( $com_title , 0 , 6 );

Kartoffelmann
03.11.2005, 12:21:25
muss der code an eine bestimmt stelle???

xabbuh
03.11.2005, 14:03:54
substr() musst du an der Stelle aufrufen, an der du die Variable kürzen willst.