ด้วยฟอร์ม Drupal ที่กำหนดเองคุณจะแนบฟังก์ชัน WYSIWYG เข้ากับ textarea ด้วยโมดูล WYSIWYG ได้อย่างไร
ด้วยฟอร์ม Drupal ที่กำหนดเองคุณจะแนบฟังก์ชัน WYSIWYG เข้ากับ textarea ด้วยโมดูล WYSIWYG ได้อย่างไร
คำตอบ:
ทบทวนข้อบ่งชี้นี้เพื่อ Drupal 7 (ที่มีข้อบ่งชี้ที่เล็ก ๆ น้อย ๆ ที่จะ Drupal 6) http://drupal.org/node/1031160 โดยเฉพาะเกี่ยวกับวิธีการแสดงตัวแก้ไขใน textarea ใน drupal 7 ดังนั้นฉันเดาว่าอาจเป็นประโยชน์ในการเริ่มต้น (ดูเหมือนว่าความคิดเห็นสุดท้ายจะมีวิธีทดสอบ)
อาจเป็นทางเลือกในการทำสิ่งนี้แทน / ด้วย WYSIWYG
โมดูล wysiwyg เชื่อมโยงกับระบบรูปแบบอินพุต
ใช้'#type' => 'text_format'
เมื่อกำหนดพื้นที่ข้อความของคุณ
คุณควรใช้ type = 'text_format' แทนพื้นที่ข้อความ และ format = 'editor_format' รหัสจะมีลักษณะเช่นนี้
$form['description'] = array(
'#type' => 'text_format',
'#title' => t('Description'),
'#format' => 'full_html' //the format used for editor.
);
นี่คือของฉัน:
$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
สาเหตุมันก็ไม่ได้ถูกโหลดหลังจากที่บันทึกไว้
variable_get('foo', '')['value']
คำต่อท้ายนั้นจำเป็นจริงๆ
โมดูล 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 ในแถวสำหรับรูปแบบอินพุตที่คุณสนใจจากที่นี่ให้เลือกปุ่มที่คุณต้องการ
ดูเหมือนจะเป็นไปไม่ได้กับ 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" จะอนุญาตให้ตั้งค่าหน้าเว็บที่จะแสดงตัวแก้ไข แต่โมดูลไม่ได้จัดเตรียมฟิลด์ฟอร์มใด ๆ ไว้เพื่อเปลี่ยนรหัสนั้นและฟังก์ชันใด ๆ ก็ใช้ค่านั้นไม่ได้
อาจเป็นได้ว่ามีการใช้ค่าในเวอร์ชันก่อนหน้าและรหัสเพื่อจัดการยังอยู่ในพอร์ตหรือตัวเลือกนั้นได้รับการแนะนำในรุ่นถัดไปของโมดูล