แนบ WYSIWYG ไปยังแบบฟอร์ม Drupal


12

ด้วยฟอร์ม Drupal ที่กำหนดเองคุณจะแนบฟังก์ชัน WYSIWYG เข้ากับ textarea ด้วยโมดูล WYSIWYG ได้อย่างไร


ฉันพบวิธีแก้ปัญหาที่ส่งโดย moon.watcher และ Dylan Tack ทำงานได้อย่างสมบูรณ์แบบ

คำตอบ:


2

ทบทวนข้อบ่งชี้นี้เพื่อ Drupal 7 (ที่มีข้อบ่งชี้ที่เล็ก ๆ น้อย ๆ ที่จะ Drupal 6) http://drupal.org/node/1031160 โดยเฉพาะเกี่ยวกับวิธีการแสดงตัวแก้ไขใน textarea ใน drupal 7 ดังนั้นฉันเดาว่าอาจเป็นประโยชน์ในการเริ่มต้น (ดูเหมือนว่าความคิดเห็นสุดท้ายจะมีวิธีทดสอบ)

อาจเป็นทางเลือกในการทำสิ่งนี้แทน / ด้วย WYSIWYG


8

โมดูล wysiwyg เชื่อมโยงกับระบบรูปแบบอินพุต

ใช้'#type' => 'text_format'เมื่อกำหนดพื้นที่ข้อความของคุณ


7

คุณควรใช้ type = 'text_format' แทนพื้นที่ข้อความ และ format = 'editor_format' รหัสจะมีลักษณะเช่นนี้

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);

นี่คือตัวเลือกที่ถูกต้อง แต่ฉันไม่สามารถรับ safe_value ในแบบฟอร์ม
คุรุ

4

นี่คือของฉัน:

$form['my_module_my_form_my_field'] = array(
  '#type' => 'text_format',
  '#title' => t('Awesome title'),
  '#format' => isset($edit['format']) ? $edit['format'] : NULL,
  '#base_type' => 'textarea',
  '#default_value' => variable_get('my_module_my_form_my_field', '')['value'],
  '#description' => t("Awesome description."),
  '#required' => FALSE,
  '#maxlength' => 500,
);

ผมต้องเพิ่ม['value']ให้กับ#default_valueสาเหตุมันก็ไม่ได้ถูกโหลดหลังจากที่บันทึกไว้

การอ้างอิง API ของฟอร์ม 7x


1
ว้าวแน่นอนvariable_get('foo', '')['value']คำต่อท้ายนั้นจำเป็นจริงๆ
leymannx

0

โมดูล WYSIWYG เป็นเพียงวิธีการใช้หนึ่งในบรรณาธิการ wysiwyg จำนวนมากที่นั่น เมื่อคุณติดตั้งโมดูล wysiwyg ( http://drupal.org/project/wysiwyg ) ให้ไปที่การกำหนดค่าสำหรับโมดูล (admin / config / content / wysiwyg) จะมีคำแนะนำในการติดตั้งสำหรับเครื่องมือแก้ไข Wysiwyg จำนวนมาก ตัวอย่างเช่นสำหรับ FCKeditor จะระบุสิ่งต่อไปนี้:

แตกไฟล์เก็บถาวรและคัดลอกเนื้อหาลงในโฟลเดอร์ใหม่ในตำแหน่งต่อไปนี้: sites / all / libraries / fckeditor

ดังนั้นห้องสมุดจริงสามารถดูได้ที่: sites / all / libraries / fckeditor / fckeditor.js

ดังนั้นดาวน์โหลดตัวแก้ไขแยกการเก็บถาวรไปยังไดเรกทอรีที่กำหนด เมื่อคุณทำเช่นนี้ (สมมติว่าคุณทำอย่างถูกต้อง) คุณจะสามารถเปลี่ยนเครื่องมือแก้ไขสำหรับรูปแบบอินพุตที่กำหนดบนหน้าจอ Wysiwyg config จากนั้นคุณจะต้องกำหนดการดำเนินงานที่แตกต่างกันสำหรับแต่ละประเภท (HTML ที่กรองแล้ว, HTML เต็มรูปแบบ ฯลฯ ) คลิก "แก้ไข" ภายใต้การดำเนินการภายใน admin / config / content / wysiwyg ในแถวสำหรับรูปแบบอินพุตที่คุณสนใจจากที่นี่ให้เลือกปุ่มที่คุณต้องการ


CKEditor ยังสามารถติดตั้ง "สแตนด์อะโลน" โดยไม่ต้องใช้โปรแกรมแก้ไขแบบ WYSIWYG ดูdrupal.org/project/ckeditor
Jorrit Schippers

0

ดูเหมือนจะเป็นไปไม่ได้กับ Wysiwyg เวอร์ชัน 7.x-2 แต่ตัวสร้างฟอร์มสำหรับการตั้งค่าโปรไฟล์จะใช้อาร์เรย์ต่อไปนี้:

  $profile['settings'] += array(
    'default' => TRUE,
    'user_choose' => FALSE,
    'show_toggle' => TRUE,
    'theme' => 'advanced',
    'language' => 'en',
    'access' => 1,
    'access_pages' => "node/*\nuser/*\ncomment/*",
    'buttons' => array(),
    'toolbar_loc' => 'top',
    'toolbar_align' => 'left',
    // ...
  );

ดัชนีอาร์เรย์ "access_pages" จะอนุญาตให้ตั้งค่าหน้าเว็บที่จะแสดงตัวแก้ไข แต่โมดูลไม่ได้จัดเตรียมฟิลด์ฟอร์มใด ๆ ไว้เพื่อเปลี่ยนรหัสนั้นและฟังก์ชันใด ๆ ก็ใช้ค่านั้นไม่ได้

อาจเป็นได้ว่ามีการใช้ค่าในเวอร์ชันก่อนหน้าและรหัสเพื่อจัดการยังอยู่ในพอร์ตหรือตัวเลือกนั้นได้รับการแนะนำในรุ่นถัดไปของโมดูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.