일반 텍스트 형식을 사용할 때 줄 바꿈을 얻으려면 어떻게합니까?


11

나는 이것이 간단하게 간단해야한다고 생각하지만, 나를 미치게합니다.

모든 본문 요소에 대해 '일반 텍스트'를 선택했습니다. 양식을 작성할 때 누구나 HTML을 전혀 넣을 수 있기를 원하지 않습니다.

그러나 줄 바꿈을 유지하고 싶습니다. 일반 설정 페이지에는 실제로 '줄 바꿈을 br과 p로 바꾸려면이 상자를 선택하십시오.

텍스트의 수익을 유지하기 위해 이것이 작동하도록 올바른 구성은 무엇입니까?


1
이상하다. 나는 같은 설정을 가지고 있으며 그것은 나를 위해 작동합니다. 새로 설치입니까 아니면 업그레이드입니까? 사용자 정의 모듈을 사용하고 있습니까? 아마 덮어 쓰거나 다른 작업을 수행하고 있습니까?
Emil Orol

그것은 버그처럼 느껴지거나 무언가가 조금 벗어난 것처럼 느껴졌습니다. 내가 생각한 것은 줄 바꿈에 대해 br 및 p 태그를 반환 할 수 있지만 진정한 '일반 텍스트'를 유지하기 위해 필터링되었습니다. 무엇을 확인하고 필터의 순서는 무엇입니까?
blue928 5

나는 여전히 일반 텍스트와 관련된 문제가 있습니다. <p> 및 <br> 태그를 추가했지만 운이 없습니다.
sokratis

답변:



11

이것은 Drupal 7.x 버그처럼 보입니다. 필자의 경우 필터 순서를 변경해도 작동하지 않습니다.

내 단기 해결책은 이것을 테마의 template.php ( ref ) 안에 넣는 것입니다 .

<?php
/**
 * Implements template_preprocess_field().
 */
function THEMENAME_preprocess_field(&$vars, $hook) {
  // Add line breaks to plain text textareas.
  if (
    // Make sure this is a text_long field type.
    $vars['element']['#field_type'] == 'text_long'
    // Check that the field's format is set to null, which equates to plain_text.
    && $vars['element']['#items'][0]['format'] == null
  ) {
    $vars['items'][0]['#markup'] = nl2br($vars['items'][0]['#markup']);
  }
}
?>

보기의 필드의 경우 필드 설정의 "결과 다시 작성"섹션에서이 옵션을 별도로 설정해야합니다.


3

실제로 "admin / config / content / formats / plain_text"에서이 필터 순서 설정과 함께 작동해야합니다.

  1. HTML을 일반 텍스트로 표시
  2. URL을 링크로 변환
  3. 줄 바꿈을 HTML로 변환 (예 : <br> 및 <p>)

"HTML을 일반 텍스트로 표시"를 제거하여 아래 필터를 사용해보십시오.

  1. 허용 된 HTML 태그 제한 (허용 된 HTML 태그 목록에 대해 <a> 및 <br> 만 설정)
  2. URL을 링크로 변환
  3. 줄 바꿈을 HTML로 변환 (예 : <br> 및 <p>)

2
입력 형식이 필터링 된 텍스트가 아닌 경우 작동하지 않습니다.
artfulrobot

3

해결책은 간단합니다. 다음 CSS로 일반 텍스트 내용을 표시하십시오.

white-space: pre-line;

2
실제로 drupal.org/node/1095838#comment-6679314white-space: pre-line; 에서 언급했듯이 더 좋습니다.
Jeroen

그런 우아한 솔루션.
sephiith

각 필드를 수동으로 타겟팅하거나 모든 긴 텍스트 필드에서이를 수행해야하는 경우에만 작동합니다. "일반 텍스트"필드를 다른 유형의 필드와 혼합하고이를 mpdf와 함께 사용하여 PDF 파일을 만드는 경우 Druvision의 솔루션 만 작동합니다.
Richard

1

코드없이이 문제를 신속하게 해결하기 위해 Advanced Text Formatter 모듈을 사용했습니다 .

  1. 모듈을 설치하고 활성화하십시오.
  2. 콘텐츠 유형의 '디스플레이 관리'를 클릭하십시오.
  3. 필드 형식의 '일반 텍스트'를 '고급 텍스트'로 변경하십시오.
  4. 오른쪽의 톱니 바퀴 (또는 형식 설정 링크)를 클릭하십시오

    1. 트림 길이를 0으로 설정
    2. 필터를 '허용 된 HTML 태그 제한'으로 설정
    3. '허용 된 HTML 태그'에서 모든 항목 제거
    4. '줄 바꿈을 HTML로 변환'을 확인하십시오.
    5. '업데이트'를 클릭하고 필드 디스플레이를 저장하십시오.

줄 바꿈 만 허용하는 고급 텍스트 포맷터 모듈의 형식 설정


0

입력 필터링이라고 생각하지 않습니다. 아마도 필드의 디스플레이 설정 일 것입니다. "일반 텍스트"로 설정되어 있으면 "기본"으로 변경하십시오. 그렇지 않으면 입력 줄 바꿈에 대해 생성 된 태그가 필드가 표시되기 전에 제거됩니다.

명확하게하기 위해, 이는 해당 컨텐츠 유형의 "디스플레이 관리"패널에 있습니다. 관리»구조»컨텐츠 유형»MyContentType»디스플레이 관리에서. 필드의 형식 열에서


0

나는 이것이 버그라고 생각하지 않지만 "필터링 된 텍스트"입력 형식이 "일반 텍스트"로 설정된 필드와 "일반 텍스트"필드 사이의 혼란 (드루팔이 설정하는 데 도움이되지 않음)의 결과입니다. 필드를 만들 때 "필터링 된 텍스트"를 선택하면 사용자는 "일반 텍스트"및 사용 가능한 다른 입력 형식 중에서 선택할 수있는 옵션을 얻게되며 컨텐츠를 만들 때 여기에서 "일반 텍스트"옵션을 사용하면 선이 렌더링됩니다. 상자에서 끊어지고 연결됩니다. 그러나 필드 생성시 "일반 텍스트"를 선택하면 "일반 텍스트"입력 형식을 구성하는 방법에 관계없이 태그를 사용할 수 없거나 렌더링 할 수 없습니다. 따라서 "일반 텍스트"가 작동하지 않기 전에 먼저 컨텐츠 유형 설정에서 필드에 "필터링 된 텍스트"가 있는지 확인하십시오. 선택된. 역설적이고 성가 시지만 Drupal ...;)


0

"텍스트 처리"-방법 인 "일반 텍스트 형식"은 HTML 태그를 지원하지 않으므로 줄 바꿈이 정상적으로 작동하지 않습니다.

"필터링 된 텍스트 (사용자가 텍스트 형식을 선택)"에 대해 "텍스트 형식"을 작성하고 "텍스트 형식"을 "일반 텍스트"로 설정하십시오.


나를 위해 이것을 해결 한 것은 내용 유형의 필드를 "필터링 된 텍스트-사용자 선택"으로 변경하는 것이었지만 사용자가 일반 텍스트 편집기에만 액세스 할 수 있는지 확인했습니다. 어떻게 든 효과가있었습니다. 사용자가 다른 텍스트 편집기에 액세스 할 수 있다면 그렇게 좋지 않을 것입니다.
Christia

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.