длина поля title

Аватар пользователя denisnikulin denisnikulin 29 мая 2008 в 17:21

Поскажите как задать максимальную дляну поля totle (заголовок новости). Чтобы при привыышении этого значения появлялось многоточие в конце строки.
т.е. был заголовок "Длинный заголовок" а стал "Длинный заго...".
в идеале же, хочется чтобы укорачивался заголовок только на главной странице. при входе на новость, заголовок отображался целиком. спасибо )

Комментарии

Аватар пользователя gorr gorr 29 мая 2008 в 17:55

В шаблоне нода :
if(count($node->title)>LIMIT && $_GET['q'] == 'MAIN') {
$node->title = substr($node->title, 0, LIMIT - 3). '...';
}

заменить LIMIT на максимальное количество символов, а MAIN на адрес главной страницы.
Можно так.

Аватар пользователя olk olk 29 мая 2008 в 18:09

Ну очевидно надо обработать title в page.tpl.php
найти строку что нибудь типа

 <?php if ($title): ?><h1 class="title"><?php print $title ?></h1><?php endif; ?>

ну и сделать что нибудт типа

<?php if ($title) { ?>
<h1 class="title">
<?php
if($is_front && mb_strlen($title)>20){
$title=mb_substr($title,0,20).'...';
}
print $title; ?>
</h1>
<?php } ?>


ps. наврал Smile конечно node.tpl.php Smile или лучше даже node-<тип-вашего-материала>.tpl.php

Аватар пользователя denisnikulin denisnikulin 29 мая 2008 в 20:09

что-то не получается первым способом.
файл /templates/тема/node.tpl.php был:

<?php
// $Id: node.tpl.php,v 1.1.1.1.2.2 2008/05/08 05:25:48 hswong3i Exp $
?>
<?php print $status ? '' : ' node-unpublished' ?>">
<?php if ($page == 0): ?>

"><?php print $title ?>

<?php endif; ?>

<?php if ($picture): print $picture; endif; ?>
<?php if (node_access('update', $node)): print l('', 'node/' . $node->nid . '/edit', array('class' => 'editlink', 'title' => t('Edit'))); endif; ?>
<?php if ($submitted): ?><?php print $submitted ?><?php endif; ?>
<?php if ($terms): ?><?php print $terms ?><?php endif; ?>

<?php print $content?>

<?php if ($links): ?><?php print $links ?><?php endif; ?>

и я в конец добавил:
<?php if(count($node->title)>9 && $_GET['q'] == 'http://localhost') {
$node->title = substr($node->title, 0, 6). '...';
}

изменений не замечено..

Аватар пользователя denisnikulin denisnikulin 29 мая 2008 в 21:05

всё, сделал! Спасибо!!

можно теперь еще вопросик?
как на главной урезать текст не title (как я просил выше) а body? добавить read more.. как бы чтобы <--break--> вставлялся автоматом.

Аватар пользователя gorr gorr 29 мая 2008 в 21:16

В том варианте, что я привел конечно надо было обрезать перед печатью и главной страницы адрес относительный имелся ввиду, например node или node/1

Аватар пользователя denisnikulin denisnikulin 29 мая 2008 в 21:20

1. я пользуюсь модулем views. для модуля embedded media field имеется view, подскажите где именно настроить break..
2. когда я админом захожу на /node/123/edit - у меня открывается не страница форматирования, а страница редактирования этого view, (Edit view tracker).. как вернуть первоначальный вариант?