Как получить HTML -объекты правильно отображаться в сообщениях BuddyPressHtml

Программисты Html
Ответить
Anonymous
 Как получить HTML -объекты правильно отображаться в сообщениях BuddyPress

Сообщение Anonymous »

В Buddypress окно предварительного просмотра сообщений усекает сообщение на одной строке (225 символов), а затем добавляет горизонтальный эллипс. не проанализирован для отображения в виде эллипса. Строки.
Функция, которая управляет этим в файле/plugins/bp-core/bp-gore-template.php (Start Line 878)
Кто -нибудь знает, как решить эту проблему? Многие, большое спасибо заранее. (Код ниже) < /p>

Код: Выделить всё

function bp_create_excerpt( $text, $length = 225, $options = array() ) {

// Backward compatibility. The third argument used to be a boolean $filter_shortcodes.
$filter_shortcodes_default = is_bool( $options ) ? $options : true;

$r = bp_parse_args(
$options,
array(
'ending'            => __(  ' [U+02026] '  , 'buddypress' ),
'exact'             => false,
'html'              => true,
'filter_shortcodes' => $filter_shortcodes_default,
'strip_tags'        => false,
'remove_links'      => false,
),
'create_excerpt'
);

// Save the original text, to be passed along to the filter.
$original_text = $text;

/**
* Filters the excerpt length to trim text to.
*
* @since 1.5.0
*
* @param int $length Length of returned string, including ellipsis.
*/
$length = apply_filters( 'bp_excerpt_length',      $length      );

/**
* Filters the excerpt appended text value.
*
* @since 1.5.0
*
* @param string $value Text to append to the end of the excerpt.
*/
$ending = apply_filters( 'bp_excerpt_append_text', $r['ending'] );

// Remove shortcodes if necessary.
if ( ! empty( $r['filter_shortcodes'] ) ) {
$text = strip_shortcodes( $text );
}

// When $html is true, the excerpt should be created without including HTML tags in the
// excerpt length.
if ( ! empty( $r['html'] ) ) {

// The text is short enough.  No need to truncate.
if ( mb_strlen( preg_replace( '//', '', $text ) )  $length ) {
$left = $length - $totalLength;
$entitiesLength = 0;
if ( preg_match_all( '/&[0-9a-z]{2,8};|&#[0-9]{1,7};|&#x[0-9a-f]{1,6};/i', $tag[3], $entities, PREG_OFFSET_CAPTURE ) ) {
foreach ( $entities[0] as $entity ) {
if ( $entity[1] + 1 - $entitiesLength = $length ) {
break;
}
}
} else {
// Strip HTML tags if necessary.
if ( ! empty( $r['strip_tags'] ) ) {
$text = strip_tags( $text );
}

// Remove links if necessary.
if ( ! empty( $r['remove_links'] ) ) {
$text = preg_replace( '#^\s*(https?://[^\s"]+)\s*$#im', '', $text );
}

if ( mb_strlen( $text ) /', $truncate, $_truncate_tags, PREG_OFFSET_CAPTURE );

// Rekey tags by the string index of their last character.
$truncate_tags = array();
if ( ! empty( $_truncate_tags[0] ) ) {
foreach ( $_truncate_tags[0] as $_tt ) {
$_tt['start'] = $_tt[1];
$_tt['end']   = $_tt[1] + strlen( $_tt[0] );
$truncate_tags[ $_tt['end'] ] = $_tt;
}
}

$truncate_length = mb_strlen( $truncate );
$spacepos = $truncate_length + 1;
for ( $pos = $truncate_length - 1; $pos >= 0; $pos-- ) {
// Word boundaries are spaces and the close of HTML tags, when the tag is preceded by a space.
$is_word_boundary = ' ' === $truncate[ $pos ];
if ( ! $is_word_boundary &&  isset( $truncate_tags[ $pos - 1 ] ) ) {
$preceding_tag    = $truncate_tags[ $pos - 1 ];
if ( ' ' === $truncate[ $preceding_tag['start'] - 1 ] ) {
$is_word_boundary = true;
break;
}
}

if ( ! $is_word_boundary ) {
continue;
}

// If there are no tags in the string, the first space found is the right one.
if ( empty( $truncate_tags ) ) {
$spacepos = $pos;
break;
}

// Look at each tag to see if the space is inside of it.
$intag = false;
foreach ( $truncate_tags as $tt ) {
if ( $pos > $tt['start'] && $pos < $tt['end'] ) {
$intag = true;
break;
}
}

if ( ! $intag ) {
$spacepos = $pos;
break;
}
}

if ( $r['html'] ) {
$bits = mb_substr( $truncate, $spacepos );
preg_match_all( '//', $bits, $droppedTags, PREG_SET_ORDER );
if ( !empty( $droppedTags ) ) {
foreach ( $droppedTags as $closingTag ) {
if ( !in_array( $closingTag[1], $openTags ) ) {
array_unshift( $openTags, $closingTag[1] );
}
}
}
}

$truncate = rtrim( mb_substr( $truncate, 0, $spacepos ) );
}
$truncate .= $ending;

if ( !empty( $r['html'] ) ) {
foreach ( $openTags as $tag ) {
$truncate .= '';
}
}

/** This filter is documented in /bp-core/bp-core-template.php */
return apply_filters( 'bp_create_excerpt', $truncate, $original_text, $length, $options );
}
add_filter( 'bp_create_excerpt', 'stripslashes_deep'  );
add_filter( 'bp_create_excerpt', 'force_balance_tags' );

Попытка получить окно предварительного просмотра сообщений для отображения коррекции объектов HTML, вместо фактических строк.


Подробнее здесь: https://stackoverflow.com/questions/761 ... s-messages
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»