Làm cách nào để có được ngắt dòng khi sử dụng định dạng Văn bản thuần túy?


11

Tôi cảm thấy việc này thật đơn giản, nhưng nó làm tôi phát điên.

Tôi đã chọn 'văn bản thuần túy' cho tất cả các yếu tố Cơ thể của mình. Tôi không muốn bất cứ ai có thể đưa vào bất kỳ html nào khi điền vào biểu mẫu.

Tuy nhiên, tôi muốn ngắt dòng được bảo tồn. Trên trang cấu hình cho đồng bằng thực sự có 'hộp kiểm này để biến các ngắt dòng thành br và p, nhưng cho dù tôi có kiểm tra hay làm thế nào để sắp xếp lại trọng lượng của các bộ lọc, tôi không thể lấy nó để bảo toàn các ngắt.

Cấu hình chính xác để làm cho điều này hoạt động là gì để tôi có thể duy trì trả về trong các văn bản?


1
Lạ thật đấy. Tôi có cùng một thiết lập và nó hoạt động với tôi. Đây là một cài đặt sạch hoặc nâng cấp? Bạn đang sử dụng một mô-đun tùy chỉnh, có thể thực hiện một số ghi đè hoặc một cái gì đó khác?
Emil Orol

Nó đã cảm thấy như một lỗi hoặc giống như một cái gì đó không đúng chỗ. Những gì tôi đã xảy ra là tôi có thể trả về các thẻ br và p cho ngắt dòng, nhưng sau đó chúng được lọc ra để giữ nguyên 'văn bản đơn giản' Bạn đã kiểm tra gì và thứ tự các bộ lọc của bạn là gì?
blue928

Tôi vẫn gặp vấn đề đó với Plain text. Tôi cũng đã thêm các thẻ <p> và <br> nhưng không có may mắn. Tôi thiếu thứ gì ??
sokratis

Câu trả lời:



11

Điều này có vẻ như một lỗi Drupal 7.x. Thay đổi thứ tự của các bộ lọc không hoạt động trong trường hợp của tôi.

Giải pháp ngắn hạn của tôi là ném cái này vào trong template.php ( ref ) của chủ đề của tôi :

<?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']);
  }
}
?>

Đối với các trường trong chế độ xem, cần đặt riêng tùy chọn này trong phần "Viết lại kết quả" trong cài đặt trường.


3

Trên thực tế, nó nên hoạt động với cài đặt thứ tự bộ lọc này tại "admin / config / content / format / plain lòng"

  1. Hiển thị bất kỳ HTML dưới dạng văn bản thuần túy
  2. Chuyển đổi URL thành liên kết
  3. Chuyển đổi ngắt dòng thành HTML (tức là <br> và <p>)

Hãy thử các bộ lọc bên dưới bằng cách xóa "Hiển thị bất kỳ HTML nào dưới dạng văn bản thuần túy":

  1. Giới hạn các thẻ HTML được phép (chỉ đặt <a> và <br> cho danh sách thẻ HTML được phép)
  2. Chuyển đổi URL thành liên kết
  3. Chuyển đổi ngắt dòng thành HTML (tức là <br> và <p>)

2
điều này sẽ không hoạt động nếu định dạng đầu vào không phải là Văn bản được lọc.
artfulrobot

3

Giải pháp rất đơn giản. Chỉ cần hiển thị nội dung văn bản đơn giản với css sau.

white-space: pre-line;

2
Trên thực tế, white-space: pre-line;như đã đề cập trên drupal.org/node/1095838#comment-6679314 là tốt hơn.
Jeroen

Như một giải pháp tao nhã.
sephiith

Điều này không hoạt động, nhưng chỉ khi bạn muốn nhắm mục tiêu từng trường theo cách thủ công hoặc nếu tất cả các trường văn bản dài của bạn cần thực hiện điều này. Nếu bạn đã trộn các trường "văn bản thuần túy" với các loại trường khác và nếu bạn đang sử dụng trường này với mpdf để tạo tệp PDF, thì chỉ có giải pháp của Druvision hoạt động.
Richard

1

Tôi đã sử dụng mô đun Advanced Text Formatter để giải quyết nhanh vấn đề này mà không cần mã.

  1. Cài đặt và kích hoạt mô-đun.
  2. Nhấp vào 'Quản lý hiển thị' của loại nội dung của bạn.
  3. Thay đổi 'Văn bản thuần túy' trong định dạng của trường của bạn thành 'Văn bản nâng cao'
  4. Nhấp vào bánh răng bên phải (hoặc liên kết đến cài đặt định dạng)

    1. Đặt độ dài cắt thành 0
    2. Đặt bộ lọc thành 'Giới hạn thẻ HTML được phép'
    3. Xóa tất cả các mục khỏi 'Thẻ HTML được phép'
    4. Kiểm tra 'Chuyển đổi ngắt dòng thành HTML'
    5. Nhấp vào 'Cập nhật' và Lưu Hiển thị trường của bạn.

Định dạng Cài đặt của mô-đun Trình định dạng văn bản nâng cao để chỉ cho phép ngắt dòng


0

Tôi không nghĩ đó là bộ lọc đầu vào: có lẽ đó là cài đặt hiển thị cho trường. Nếu nó được đặt thành "Văn bản thuần túy", hãy đổi nó thành "Mặc định". Mặt khác, các thẻ được tạo cho ngắt dòng đầu vào bị tước trước khi trường được hiển thị.

Để rõ ràng, đây là trên bảng "Quản lý hiển thị" cho loại nội dung được đề cập. Tại Quản trị »Cấu trúc» Loại nội dung »MyContentType» Quản lý hiển thị. Dưới cột Định dạng cho trường.


0

Tôi không nghĩ đây là một lỗi nhưng kết quả của sự nhầm lẫn (không được hỗ trợ bởi cách Drupal được thiết lập) giữa một trường có định dạng nhập "văn bản được lọc" được đặt thành "văn bản thuần túy" và trường "văn bản thuần túy". Nếu khi bạn tạo trường bạn chọn "văn bản đã lọc", người dùng sẽ có tùy chọn để chọn từ "văn bản thuần túy" và mọi định dạng nhập khác có sẵn và sử dụng tùy chọn "văn bản thuần túy" ở đây khi tạo nội dung của bạn sẽ hiển thị dòng phá vỡ và liên kết ra khỏi hộp. Tuy nhiên, nếu tạo trường bạn chọn "văn bản thuần túy", sẽ không có thẻ nào được hiển thị / hiển thị, bất kể bạn định cấu hình định dạng nhập "văn bản thuần" như thế nào. Vì vậy, trước khi hoảng sợ rằng "văn bản thuần túy" không hoạt động, trước tiên hãy kiểm tra thiết lập loại nội dung của bạn rằng trường có "văn bản được lọc" đã chọn. Thật nghịch lý và phiền phức, nhưng, Drupal ...;)


0

"Định dạng văn bản thuần túy" dưới dạng "Xử lý văn bản" -method KHÔNG hỗ trợ bất kỳ Thẻ HTML nào, do đó ngắt dòng không thể hoạt động bình thường.

Tạo "định dạng văn bản" cho "Văn bản được lọc (người dùng chọn định dạng văn bản)" và đặt "Định dạng văn bản" thành "Văn bản thuần túy".


Điều giải quyết điều này cho tôi là thay đổi trường trong loại nội dung thành "văn bản được lọc - người dùng chọn" nhưng sau đó tôi đảm bảo rằng người dùng chỉ có quyền truy cập vào trình chỉnh sửa văn bản thuần túy. Bằng cách nào đó đã làm việc. Nếu người dùng có quyền truy cập vào các trình soạn thảo văn bản khác thì điều này sẽ không tốt lắm.
Christia

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.