вопрос
Я встречал пока только два способа.
1. через правку файлов движка.
2. Через css - overflow:hidden.
Есть ли еще способы работающие непосредственно с текстом?
1. через правку файлов движка.
2. Через css - overflow:hidden.
Есть ли еще способы работающие непосредственно с текстом?
Да, действительно есть два широко известных способа:
Первый способ - не годится, т.к. нужно править двиг, и ПС видят только обрезанный текст - а это плохо.
Открываем engine/modules/show.full.php
находим
И ниже вставляем:
Второй способ лучше, но недостаток в том, что не удаляется разметка, картинки, и т.д. и т.п. что тоже не очень хорошо влияет на восприятие материала.
Второй способ (CSS)
Задаём блоку определённую высоту, желательно чтобы она совпадала с окончанием строки, а не с её серединой
И добавляем блоку свойство overflow: hidden;
Выглядеть должно примерно так:
Но есть ещё и третий (возможно не последний) способ - на jquery, он лишён недостатков обоих первых способов, но и имеет свой - не терпит отключения jvascript
Для реализации этого метода нужно открыть файл main.tpl
перед
Всё, теперь все короткие новости будут обрезаны до 200 символов и в конец будет добавлено троеточие, при этом ПС будут видеть полный текст новости
Первый способ - не годится, т.к. нужно править двиг, и ПС видят только обрезанный текст - а это плохо.
Открываем engine/modules/show.full.php
находим
}
// Обработка дополнительных полей
И ниже вставляем:
$row['short_story'] = strip_tags(str_replace(array('<br>','<br />')," ",$row['short_story']));
if (strlen($row['short_story'])>130) $row['short_story'] = substr($row['short_story'],0,130)."...";
$tpl->set('{short-story}', stripslashes($row['short_story']));
Второй способ лучше, но недостаток в том, что не удаляется разметка, картинки, и т.д. и т.п. что тоже не очень хорошо влияет на восприятие материала.
Второй способ (CSS)
Задаём блоку определённую высоту, желательно чтобы она совпадала с окончанием строки, а не с её серединой
И добавляем блоку свойство overflow: hidden;
Выглядеть должно примерно так:
.news {height:108px; overflow:hidden;}
/*При условии что высота линии (line-height) равна 18px */
Но есть ещё и третий (возможно не последний) способ - на jquery, он лишён недостатков обоих первых способов, но и имеет свой - не терпит отключения jvascript
Для реализации этого метода нужно открыть файл main.tpl
перед
</head>вставить:
[not-aviable=showfull]
<script type="text/jvascript" >
$(function shorting_news () {
nShort = $("div[id^=news-id-]")
nShort.each(function (shortme) {
$(this).replaceWith("<span id='short-id"+shortme+"' class='shortme'>" + $(this).text().substr(0,200) + "…</span>");
});
});
</script>
[/not-aviable]
Всё, теперь все короткие новости будут обрезаны до 200 символов и в конец будет добавлено троеточие, при этом ПС будут видеть полный текст новости