Crэker
19.10.2009 - 19:54
Сколько не искал, не смог найти хоть более или менее нормальной статьи, как сделать это.
идея такая - в цикле при выводе поста прегматчить его на предмет наличия тега more
а выглядеть он будет так [more] -> заменяться на читать далее, или [more=свой текст] -> ну тут понятно все.
нормальная идея прегматчить посты в цикле?
как я не боролся с регулярками, все никак не добью, поэтому помогите получить в переменную тот самый текст, который вместо "свой текст", либо его отсутствие и текст поста, до самого тега море, его-то я и буду выводить.
спасибо друзья энтузиасты молодцы
_____________
Если есть желание стать соразработчиком инновационного сервиса онлайн дневников, с нетерпением жду вас в личке)
Помучайся еще, регулярки это дело такое.. Покажи чем мучался, и объясни, почему ты мучался этим путем
Цитата (kirik @ 19.10.2009 - 22:50) |
Помучайся еще, регулярки это дело такое.. Покажи чем мучался, и объясни, почему ты мучался этим путем |
у него в аватарке блок схема как он мучался)))
Crэker
19.10.2009 - 21:25
Ну блин, я же серьезно
сделайте все за меня, не заставляйте мучаться:)
_____________
Если есть желание стать соразработчиком инновационного сервиса онлайн дневников, с нетерпением жду вас в личке)
FatCat
19.10.2009 - 21:28
Здесь это сделано просто:
PHP |
$txt = preg_replace( "#\[more=(.*?)\](.*?)\[\/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>\\1</u></b></div></div><div class='sp-body'><div class='sp-content'>\\2</div></div></div><!--spoilerstend-->", $txt ); |
HTML |
.sp-body { border: 1px solid Gray; display: none; font-weight: normal; background: #F5F5F5; border-top-width: 0; } .clickable { cursor: pointer; } .sp-content{margin-left: 10px;} .folded { display: block;text-align: left; background: transparent url(style_images/1/plus.gif) no-repeat left center; padding-left: 14px; } .unfolded { display: block; background: transparent url(style_images/1/minus.gif) no-repeat left center; padding-left: 14px; } |
Джаваскрипт взят из IQuery...
_____________
Бесплатному сыру в дырки не заглядывают...
Crэker
20.10.2009 - 15:46
Цитата |
Джаваскрипт взят из IQuery... |
а где здесь javascript?
_____________
Если есть желание стать соразработчиком инновационного сервиса онлайн дневников, с нетерпением жду вас в личке)
Crэker
20.10.2009 - 17:12
PHP |
$text = 'Hi. Hello begin [more] hiden end'; $txt = preg_replace( "#\[more=(.*?)\](.*)#is", "<ul><li><b>\\1</b></li></ul>", $text ); $txt = preg_replace( "#\[more\](.*)#is", "<ul><li><b>read more...</b></li></ul>", $txt ); echo $txt; |
я вот так сделал. в кто-нибудь может сделать это с одним прегматчем?
_____________
Если есть желание стать соразработчиком инновационного сервиса онлайн дневников, с нетерпением жду вас в личке)
glock18
20.10.2009 - 17:22
Код |
"#\[more=(.*?)\](.*)#is" "#\[more\](.*)#is" |
=> что-то типа
Код |
"#\[more(=(.*?))?\](.*)#is" |
Crэker
20.10.2009 - 17:27
Цитата |
"#\[more(=(.*?))?\](.*)#is" |
так дело в том, что если текста нет - вставлять надо читать далее
_____________
Если есть желание стать соразработчиком инновационного сервиса онлайн дневников, с нетерпением жду вас в личке)
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.