Разработка доски объявлений под ключ › Boxcode › Разное по движку › Текст в анонсе объявления boxcode
- В этой теме 8 ответов, 2 участника, последнее обновление 6 лет, 8 месяцев назад сделано
Zaicev.
-
АвторСообщения
-
24.05.2016 в 15:13 #888
Zaicev
УчастникЗдравствуйте.
Подскажите пожалуйста, как обрезать текст в анонсе до переноса на новый рядок (в списке объявлений вывести дополнительное поле).
Например содержимое объявления:
«Продаю дешево:
картошку
клубнику
..»
Если вывести анонс с обрезкой по количеству символов, то обрезка не учитывает перенос и добавляет лишние строки в объявление.12345[crayon-63df093f6330a550094008 ]<div class="paddingRight20">{?$max_len = 200}{nl2br((mb_strlen($row["text"]) > $max_len ? mb_substr($row["text"],0,$max_len)."..." : $row["text"])|codehtml)}</div>На сайте разработчика я нашел инф., что можно обрезать функцией до символа переноса строки mb_strpos().
Как эту функцию объединить с условием обрезкой по количеству символов я не знаю.
Хотелось чтобы обрезало сначала по количеству символов и если встречается перевод строки то обрезать до него.
Можете помочь с кодом?24.05.2016 в 16:57 #891sarkis
ХранительДоброго времени.
приведите мне конкретный текст и скажите до какого момента хотите, чтоб он обрезался и я вам постараюсь подсказать-
Ответ изменён 6 лет, 8 месяцев назад пользователем
sarkis.
25.05.2016 в 10:53 #893Zaicev
УчастникВ файле /templates/style/moduls/doska/mtemplates/forming_tab_synopsis_adv.html
После строчки
1<a href='{$url_one_advert}'>{$row["name_adv"]|codehtml}</a>
вставляю вывод описания с обрезкой до 200 символов:1234[crayon-63df093f79bd8695440819 ]<div class="paddingRight20">{?$max_len = 200}{nl2br((mb_strlen($row["text"]) > $max_len ? mb_substr($row["text"],0,$max_len)."..." : $row["text"])|codehtml)}</div>Если посетитель опубликовал объявление в таком виде:
“Продаю дешево:
картошку
клубнику
..”то выводится краткое описание в 3 строки, что очень портит вид списка объявлений.
Потому бы хотелось обрезать не только по количеству символов, а и по переносу строки.
Функция mb_strpos() обрезает текст до определенного символа (например перенос строки)
Как ее задействовать в коде?-
Ответ изменён 6 лет, 8 месяцев назад пользователем
Zaicev.
25.05.2016 в 12:21 #895sarkis
Хранительтогда еще один вопрос : для чего в анонсе вы используете добавление тега
1<br>через функцию nl2br ? Ведь в таком случае можно каждое слово написать с новой строки и будет в корне неюзабельно и обрезка тут не поможет
-
Ответ изменён 6 лет, 8 месяцев назад пользователем
sarkis.
25.05.2016 в 13:05 #897Zaicev
Участниктогда еще один вопрос : для чего в анонсе вы используете добавление тега
<!— Crayon Syntax Highlighter v2.7.1 —>
<link rel=»stylesheet» type=»text/css» href=»http://make-board.ru/wp-content/plugins/crayon-syntax-highlighter/themes/classic/classic.css»>
<link rel=»stylesheet» type=»text/css» href=»http://make-board.ru/wp-content/plugins/crayon-syntax-highlighter/fonts/arial.css»><textarea class=»crayon-plain print-no» data-settings=»dblclick» readonly=»» style=»tab-size: 4; font-size: 12px !important; line-height: 14px !important; z-index: 0; opacity: 0; overflow: hidden;»> <br></textarea><table class=»crayon-table»>
<tbody><tr class=»crayon-row»>
<td class=»crayon-nums » data-settings=»show»>1</td>
<td class=»crayon-code»><span class=»crayon-h»> </span><span class=»crayon-o»><</span><span class=»crayon-i»>br</span><span class=»crayon-o»>></span></td>
</tr>
</tbody></table><!— [Format Time: 0.0003 seconds] —>
через функцию nl2br ? Ведь в таком случае можно каждое слово написать с новой строки и будет в корне неюзабельно и обрезка тут не поможет
Дело в том, что отдельной формы для анонса нет, я вывожу общее описание объявления и обрезаю его, а посетители пишут объявления с переносами, как выше в примере. В форме панели тегов вообще нет, они используют клавишу Enter для переноса на следующую строку.
25.05.2016 в 13:09 #898sarkis
Хранительэто я все понял изначально. Я до вас доношу, что Для анонса не имеет смысла применять функцию добавления тега BR, т.к представьте, что будет, если человек будет нажимать ентер через каждое слово. И обрезать грамотно, в таком случае, не будет возможно.
Просто уберите функцию nl2br и обрезайте текст, как это делали изначально25.05.2016 в 15:09 #899Zaicev
Участникэто я все понял изначально. Я до вас доношу, что Для анонса не имеет смысла применять функцию добавления тега BR, т.к представьте, что будет, если человек будет нажимать ентер через каждое слово. И обрезать грамотно, в таком случае, не будет возможно.
Просто уберите функцию nl2br и обрезайте текст, как это делали изначальноКак это сделать?
Если убрать функцию nl2br, то как будет выглядеть страница с объявлением?
Форма одна для описания объявления. Посетитель пишет содержание своего объявления и он не знает, что этот текст будет использоваться для анонса.
Потому порядок написания этого текста у каждого разный.-
Ответ изменён 6 лет, 8 месяцев назад пользователем
Zaicev.
25.05.2016 в 15:13 #900sarkis
Хранительвы уже сами написали код. Вам нужно только убрать функцию добавления тега к переносу . В итоге:
1{(mb_strlen($row["text"]) > $max_len ? mb_substr($row["text"],0,$max_len)."..." : $row["text"])|codehtml}25.05.2016 в 15:23 #902Zaicev
Участник{?$max_len = 200}
{nl2br((mb_strlen($row[«text»]) > $max_len ? mb_substr($row[«text»],0,$max_len).»…» : $row[«text»])|codehtml)}Теперь я понял, спасибо все получилось.
-
Ответ изменён 6 лет, 8 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.