Разработка доски объявлений под ключ Boxcode Разное по движку Текст в анонсе объявления boxcode

Помечено: ,

В этой теме 8 ответов, 2 участника, последнее обновление  Zaicev 4 года/лет, 4 мес. назад.

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #888

    Zaicev
    Участник

    Здравствуйте.
    Подскажите пожалуйста, как обрезать текст в анонсе до переноса на новый рядок (в списке объявлений вывести дополнительное поле).
    Например содержимое объявления:
    “Продаю дешево:
    картошку
    клубнику
    ..”
    Если вывести анонс с обрезкой по количеству символов, то обрезка не учитывает перенос и добавляет лишние строки в объявление.

    [/crayon]

    На сайте разработчика я нашел инф., что можно обрезать функцией до символа переноса строки mb_strpos().
    Как эту функцию объединить с условием обрезкой по количеству символов я не знаю.
    Хотелось чтобы обрезало сначала по количеству символов и если встречается перевод строки то обрезать до него.
    Можете помочь с кодом?

    • Эта тема была изменена 4 года/лет, 4 мес. назад пользователем  Zaicev.
    • Эта тема была изменена 4 года/лет, 4 мес. назад пользователем  Zaicev.
    #891
    sarkis
    sarkis
    Хранитель

    Доброго времени.
    приведите мне конкретный текст и скажите до какого момента хотите, чтоб он обрезался и я вам постараюсь подсказать

    • Этот ответ был изменен 4 года/лет, 4 мес. назад от sarkis sarkis.
    #893

    Zaicev
    Участник

    В файле /templates/style/moduls/doska/mtemplates/forming_tab_synopsis_adv.html
    После строчки


    вставляю вывод описания с обрезкой до 200 символов:

    [/crayon]

    Если посетитель опубликовал объявление в таком виде:

    “Продаю дешево:
    картошку
    клубнику
    ..”

    то выводится краткое описание в 3 строки, что очень портит вид списка объявлений.
    Потому бы хотелось обрезать не только по количеству символов, а и по переносу строки.
    Функция mb_strpos() обрезает текст до определенного символа (например перенос строки)
    Как ее задействовать в коде?

    • Этот ответ был изменен 4 года/лет, 4 мес. назад от  Zaicev.
    #895
    sarkis
    sarkis
    Хранитель

    тогда еще один вопрос : для чего в анонсе вы используете добавление тега

    через функцию nl2br ? Ведь в таком случае можно каждое слово написать с новой строки и будет в корне неюзабельно и обрезка тут не поможет

    • Этот ответ был изменен 4 года/лет, 4 мес. назад от sarkis sarkis.
    #897

    Zaicev
    Участник

    тогда еще один вопрос : для чего в анонсе вы используете добавление тега

    <!– 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”>

    <!– [Format Time: 0.0003 seconds] –>

    через функцию nl2br ? Ведь в таком случае можно каждое слово написать с новой строки и будет в корне неюзабельно и обрезка тут не поможет

    Дело в том, что отдельной формы для анонса нет, я вывожу общее описание объявления и обрезаю его, а посетители пишут объявления с переносами, как выше в примере. В форме панели тегов вообще нет, они используют клавишу Enter для переноса на следующую строку.

    #898
    sarkis
    sarkis
    Хранитель

    это я все понял изначально. Я до вас доношу, что Для анонса не имеет смысла применять функцию добавления тега BR, т.к представьте, что будет, если человек будет нажимать ентер через каждое слово. И обрезать грамотно, в таком случае, не будет возможно.
    Просто уберите функцию nl2br и обрезайте текст, как это делали изначально

    #899

    Zaicev
    Участник

    это я все понял изначально. Я до вас доношу, что Для анонса не имеет смысла применять функцию добавления тега BR, т.к представьте, что будет, если человек будет нажимать ентер через каждое слово. И обрезать грамотно, в таком случае, не будет возможно.
    Просто уберите функцию nl2br и обрезайте текст, как это делали изначально

    Как это сделать?
    Если убрать функцию nl2br, то как будет выглядеть страница с объявлением?
    Форма одна для описания объявления. Посетитель пишет содержание своего объявления и он не знает, что этот текст будет использоваться для анонса.
    Потому порядок написания этого текста у каждого разный.

    • Этот ответ был изменен 4 года/лет, 4 мес. назад от  Zaicev.
    #900
    sarkis
    sarkis
    Хранитель

    вы уже сами написали код. Вам нужно только убрать функцию добавления тега к переносу . В итоге:

    #902

    Zaicev
    Участник
    {?$max_len = 200}
    {nl2br((mb_strlen($row[“text”]) > $max_len ? mb_substr($row[“text”],0,$max_len).”…” : $row[“text”])|codehtml)}

    Теперь я понял, спасибо все получилось.

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)

Для ответа в этой теме необходимо авторизоваться.