imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 21.05.2006, 12:31     # 1
alender
Junior Member
 
Регистрация: 12.12.2003
Сообщения: 91

alender Путь к славе только начался
Резка текста, read more

Как сделать ссылку "read more", в постах блога, чтобы тексты, на главной странице, были видны не целиком, а только первым параграфом?

Последний раз редактировалось alender; 21.05.2006 в 12:35.
alender вне форума  
Старый 21.05.2006, 14:50     # 2
Face
Junior Member
 
Аватар для Face
 
Регистрация: 09.08.2005
Адрес: Свердловская область
Сообщения: 112

Face Известность не заставит себя ждать
Есть несколько вариантов:
1. Хранить в базе 2 вида новости: полную и краткую. Если есть полная - показывать ссылку read more. Если нет - не показывать. При клике на read more показывать только полную новость.
2. Использовать [read_more] в тексте новости, по которой будет отделять краткая новость от полной.
PHP код:
<?
preg_match("/(.*)(\\[read_more\\])(.*)/is",$text,$match);
if (isset($match[2])) {
    // Показываем $match[1] и ссылку read more
} else {
    // Показываем $text без ссылки
}
?>
При клике на read more, необходимо также удалить [read_more] из текста:
PHP код:
$text=str_replace("[read_more]","",$text); 
Face вне форума  
Старый 21.05.2006, 18:30     # 3
alender
Junior Member
 
Регистрация: 12.12.2003
Сообщения: 91

alender Путь к славе только начался
Face,
можешь подробней объяснить.
В моем в блоге, тексты, большие по объему. Хочется уменьшить их до 2-3 первых предложений, на главной странице. А полный текст, читать при клике на комментировать или "read more" как у других.
Таг [read_more] пробывал, не работает.

Последний раз редактировалось alender; 21.05.2006 в 18:33.
alender вне форума  
Старый 21.05.2006, 21:19     # 4
Face
Junior Member
 
Аватар для Face
 
Регистрация: 09.08.2005
Адрес: Свердловская область
Сообщения: 112

Face Известность не заставит себя ждать
Необходимо чтобы показывалось допустим только 3 предложения или как то указывать откуда обрезать текст?
Вот пример работы скрипта с [read_more]:
PHP код:
<?
$text="Есть несколько вариантов:
1. Хранить в базе 2 вида новости: полную и краткую. Если есть полная - показывать ссылку read more. Если нет - не показывать. При клике на read more показывать только полную новость.[read_more]
2. Использовать read_more в тексте новости, по которой будет отделять краткая новость от полной.";
if (@$_GET['act']=='read_more') {
  $text=str_replace("[read_more]","",$text);
  echo $text;
} else {
    preg_match("/(.*)(\\[read_more\\])(.*)/is",$text,$match);
    if (isset($match[2])) {
        echo $match[1]."<br><a href='?act=read_more'>Читать дальше</a>";
    } else {
        echo $text;
    }
}
?>

Последний раз редактировалось Face; 21.05.2006 в 21:27.
Face вне форума  
Старый 21.05.2006, 22:08     # 5
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
alender:
Таг [read_more] пробывал, не работает.
[read_more] - это не тэг в данном случае И вообще, то, что реализует Face пишется на php, т.е. должен сервер поддерживать....
А так есть несколько путей реализации:
1. Если есть пхп:
а) Храним кусочек текста, и весь текст (неважно где), у обоих текстов должно быть какое-то уникальное имя (id например), соответственно на главной странице показываем кусочек, при нажатии на ссылку показываем полный текст, узнаем, что показывать по уникальному id....
б) Можно хранить весь текст, но тогда после краткой части нужно написать какой-нибудь указатель на конец краткой части ([read_more] например), при выводе краткого текста выводим текст только до указателя, при выводе полного текста просто убираем этот указатель (как написано в постах выше).
2. Без пхп можно реализовать на JavaScript'е тоже самое тока текст уже нужно будет хранить в переменных яваскрипта, а не в базах, как это возможно на пхп. А система та же, что и в пхп
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 21.05.2006, 22:19     # 6
Face
Junior Member
 
Аватар для Face
 
Регистрация: 09.08.2005
Адрес: Свердловская область
Сообщения: 112

Face Известность не заставит себя ждать
Об отсутствии PHP я и не подумал Вот реализация на JavaScript:
Код HTML:
<script>
function view_note(note) {
    if (document.getElementById(note).style.display == "none"){
	   document.getElementById(note).style.display="block";
    } else {
	   document.getElementById(note).style.display="none";
    }
    return;
}
</script>
Текст первый<br>
<a href=# onclick=view_note('text1')>Читать дальше...</a>
<div style='display:none' id='text1'>Первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст, первый текст</div><br>
Текст второй<br>
<a href=# onclick=view_note('text2')>Читать дальше...</a>
<div style='display:none' id='text2'>Второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст, второй текст</div>
Face вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:29.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.