ปรับแต่งแถบเครื่องมือ Collabora CODE โดยไม่ต้องแก้ไขซอร์สโค้ด
ลดความซับซ้อนของ Collabora CODE ด้วยโหมดกะทัดรัดหรือโหมดแท็บ และตัวควบคุม WOPI PostMessage เพื่อซ่อนปุ่ม คำสั่ง และแท็บที่เลือกได้อย่างปลอดภัย
เพื่อให้การใช้งานโปรแกรมแก้ไข Collabora Online Development Edition (CODE) ง่ายขึ้น ให้เลือกรูปแบบ CompactหรือTabbedสำหรับเค้าโครงโดยรวม จากนั้นใช้การผสานรวม PostMessage ของโฮสต์ WOPI เพื่อซ่อนคำสั่ง ปุ่ม หรือแท็บ Notebookbar แต่ละรายการ การยุบแถบเครื่องมือเป็นการเปลี่ยนแปลงมุมมองที่สะดวก แต่การซ่อนตัวควบคุมผ่านโฮสต์นั้นเหมาะสมกว่าเมื่อคุณต้องการอินเทอร์เฟซที่สม่ำเสมอสำหรับทุกเซสชันการแก้ไข
CODE มีเลย์เอาต์แบบกะทัดรัดพร้อมเมนูและแถบเครื่องมือแบบดั้งเดิม และเลย์เอาต์แบบแท็บพร้อมแถบสมุดบันทึก เริ่มต้นด้วยการระบุว่าผู้ใช้ของคุณเห็นเลย์เอาต์แบบใด: รหัสปุ่มบนแถบเครื่องมือและรหัสแท็บบนแถบสมุดบันทึกไม่สามารถใช้แทนกันได้ คำแนะนำการสนับสนุนของ Collabora ระบุว่าชื่อเดิมถูกยกเลิกclassicและ แทนที่ด้วยชื่อ ใหม่ตั้งแต่เวอร์ชัน 21.11 เป็นต้นไป โปรดดูคำแนะนำการกำหนดค่าอินเทอร์เฟซของ Collaboranotebookbarcompacttabbed


เปลี่ยนค่าเริ่มต้นของเซิร์ฟเวอร์เฉพาะเมื่อผู้ใช้ส่วนใหญ่ควรเริ่มต้นด้วยเค้าโครงเดียวกัน ในการติดตั้งแบบจัดการเองuser_interface.modeการตั้งค่าcoolwsd.xmlจะยอมรับdefault, compact, หรือtabbedสำรองข้อมูลการกำหนดค่า จากนั้นเปลี่ยนmodeค่าที่มีอยู่แทนที่จะเพิ่มองค์ประกอบ XML อีกตัว:
<user_interface>
<mode>tabbed</mode>
</user_interface>XML ฉบับย่อนี้แสดงการตั้งค่า ไม่ใช่การแทนที่ส่วนการกำหนดค่าทั้งหมด ให้ทำการเปลี่ยนแปลงผ่านกระบวนการกำหนดค่าและการรีสตาร์ทบริการตามปกติของการใช้งานของคุณ จากนั้นเปิดเอกสารอีกครั้ง การใช้งานคอนเทนเนอร์อาจส่ง--o:user_interface.mode=tabbedผ่านการตั้งค่าการเริ่มต้น CODE ที่มีอยู่แล้วแทนได้ แอปพลิเคชันที่ฝังตัวอยู่ยังสามารถมีอิทธิพลต่อโหมดการเริ่มต้นผ่านui_defaultsค่า WOPI ได้อีกด้วย การตั้งค่าของโฮสต์อาจมีความสำคัญเมื่อเซิร์ฟเวอร์ใช้defaultดังนั้นอย่าคิดว่าการแก้ไขเซิร์ฟเวอร์จะแทนที่ตัวเลือกเฉพาะของการรวมระบบ
เพื่อให้มีพื้นที่มากขึ้นขณะอ่าน การคลิกแท็บที่เลือกอยู่ในปัจจุบันจะย่อแถบ Notebookbar การคลิกอีกครั้งจะขยายแถบ Notebookbar Collabora อธิบายพฤติกรรมนี้ไว้ในบทนำอย่างเป็นทางการเกี่ยวกับ Notebookbarนอกจากนี้ API ของ PostMessage ยังได้บันทึกCollapse_Notebookbarการซ่อนปุ่ม Notebookbar หรือแถบปุ่มแบบกะทัดรัดไว้ด้วย นี่เป็นสถานะการแสดงผลที่สามารถย้อนกลับได้ ไม่ใช่นโยบายถาวรของผู้ดูแลระบบ
เพื่อการควบคุมที่ละเอียดขึ้น ให้เลือกแอ็กชัน PostMessage ที่ตรงกับองค์ประกอบนั้น การแมปต่อไปนี้แสดงอยู่ในคู่มือ Collabora Online SDK :
| สิ่งที่จะซ่อน | การดำเนินการ PostMessage | รูปแบบ ID |
|---|---|---|
| ปุ่มแถบเครื่องมือหนึ่งปุ่ม | Hide_Button | รหัสปุ่ม |
| คำสั่งที่ใช้ได้กับเมนูและแถบเครื่องมือทุกเมนู | Hide_Command | คำสั่ง UNO เช่น.uno:ThemeDialog |
| แท็บหนึ่งในรูปแบบการจัดวางแบบแท็บ | Hide_NotebookTab | รหัสแท็บ เช่นHelp |
| รายการเมนูแบบกะทัดรัด | Hide_Menu_Item | รหัสรายการเมนู |
การทำงานเฉพาะแท็บได้รับการบันทึกไว้ตั้งแต่เวอร์ชัน24.04.11.1 SDK ยังระบุถึงการครอบคลุมเมนูบริบทที่ขยายเพิ่มเติมHide_Commandในเวอร์ชัน 24.04.11.2ด้วย โปรดตรวจสอบบิลด์ CODE ที่คุณใช้งานก่อนที่จะเชื่อถือพฤติกรรมใดๆ เหล่านี้
การกระทำเหล่านี้ถูกส่งโดยแอปพลิเคชันที่ฝังโค้ดไว้ใน iframe ไม่ใช่โดยการพิมพ์ลงในกล่องโต้ตอบการตั้งค่าโค้ด คุณต้องควบคุมการผสานรวมโฮสต์นั้นCheckFileInfoการตอบสนอง WOPI ที่ใช้งานได้ และPostMessageOriginค่าที่ตรงกับต้นทางของเว็บแอปพลิเคชันโฮสต์ของคุณ หากคุณใช้การผสานรวม Nextcloud หรือ ownCloud ที่มีแพ็กเกจ อาจไม่เปิดเผยฮุก PostMessage แบบกำหนดเอง ในกรณีนั้น ให้ทำการเปลี่ยนแปลงในการผสานรวมนั้นเอง หรือใช้การตั้งค่าที่รองรับ
ลงทะเบียนตัวรับฟังข้อความในหน้าโฮสต์ ตรวจสอบทั้งหน้าต่างผู้ส่งและต้นทาง เมื่อ CODE รายงานApp_LoadingStatusด้วยStatus: Document_Loadedให้ส่งHost_PostmessageReadyก่อนข้อความปรับแต่ง หากไม่มีการจับมือกันนั้น CODE อาจเพิกเฉยต่อคำสั่งโฮสต์ ซึ่งเป็นข้อผิดพลาดที่อธิบายไว้ในปัญหา Collabora # 13224
โค้ด JavaScript ฝั่งโฮสต์ต่อไปนี้ สมมติว่าหน้าเว็บของคุณมี iframe ที่มี ID อยู่แล้วcollabora-frameตั้งeditorOriginค่า ID ให้เป็นที่อยู่ HTTPS ที่ให้บริการโปรแกรมแก้ไขโค้ดของคุณ ไม่ใช่เซิร์ฟเวอร์จัดเก็บข้อมูล WOPI ลงทะเบียนตัวรับฟังก่อนการเริ่มต้นเอกสารในแอปพลิเคชันจริงของคุณ:
const frame = document.getElementById('collabora-frame');
const editorOrigin = 'https://office.example.com';
function sendToCode(MessageId, Values = {}) {
frame.contentWindow.postMessage(JSON.stringify({
MessageId, SendTime: Date.now(), Values
}), editorOrigin);
}
window.addEventListener('message', (event) => {
if (event.source !== frame.contentWindow ||
event.origin !== editorOrigin) return;
let message;
try {
message = typeof event.data === 'string'
? JSON.parse(event.data) : event.data;
} catch { return; }
if (message?.MessageId !== 'App_LoadingStatus' ||
message?.Values?.Status !== 'Document_Loaded') return;
sendToCode('Host_PostmessageReady');
sendToCode('Hide_NotebookTab', { id: 'Help' });
sendToCode('Hide_Command', { id: '.uno:ThemeDialog' });
});
นี่Helpคือเป้าหมายแท็บ Notebookbar ซึ่ง.uno:ThemeDialogระบุคำสั่ง LibreOffice UNO นักพัฒนา Collabora อธิบาย ID ดังกล่าวอย่างเฉพาะเจาะจงในคำแนะนำเกี่ยวกับการซ่อนองค์ประกอบ UNOหากต้องการซ่อนปุ่มแถบเครื่องมือ Compact ที่เฉพาะเจาะจง ให้แทนที่การกระทำด้วยHide_Buttonและระบุ ID ปุ่มที่ได้รับการตรวจสอบแล้ว อย่าเดา ID จากคำบรรยายที่มองเห็นได้ ตรวจสอบซอร์สโค้ดที่ติดตั้งไว้หรือคำแนะนำเกี่ยวกับ ID แถบเครื่องมือของ SDK
ตรวจสอบคอนโซลของเบราว์เซอร์และกิจกรรมเครือข่ายก่อนแก้ไขไฟล์ CODE สาเหตุที่พบบ่อยที่สุดคือHost_PostmessageReadyการเชื่อมต่อไม่สำเร็จ การตั้งค่าไม่ตรงกันPostMessageOriginการส่งข้อความก่อนเวลาDocument_Loadedหรือการกำหนดเป้าหมายไปที่รายการเมนูแบบกะทัดรัดในขณะที่ตัวแก้ไขอยู่ในโหมดแท็บ การเปิดไฟล์ใหม่จะเริ่มเซสชันใหม่ ดังนั้นควรใช้การซ่อนข้อความทุกครั้ง
ข้อบกพร่องเฉพาะเวอร์ชันก็มีอยู่เช่นกัน ตัวอย่างเช่นปัญหา Collabora หมายเลข #15910อธิบายถึงHide_NotebookTabข้อผิดพลาด JavaScript ใน CODE 25.04.9.4 ซึ่งรายงานในเดือนมิถุนายน 2026 ปัญหาดังกล่าวถูกทำเครื่องหมายว่าปิดแล้ว แต่เพียงแค่นั้นก็ไม่ได้หมายความว่าเวอร์ชันที่ใช้งานอยู่จะมีแก้ไขแล้ว ตรวจสอบเวอร์ชันของคุณและบันทึกการเปลี่ยนแปลงหากคุณพบข้อผิดพลาดที่รายงานไว้
สุดท้ายแล้ว การซ่อนไม่ใช่การควบคุมการเข้าถึง ปุ่มพิมพ์หรือดาวน์โหลดที่ซ่อนไว้อาจยังคงอนุญาตให้เข้าถึง API หรือเส้นทางอื่นๆ ที่เทียบเท่ากันได้ หากเป้าหมายคือการห้ามการดำเนินการเหล่านั้น ให้ใช้ WOPI DisablePrintหรือ แฟล็กที่ระบุไว้ในเอกสาร และบังคับใช้สิทธิ์การ จัดDisableExportเก็บข้อมูลของคุณตามความเหมาะสม แทนที่จะพึ่งพาHide_ButtonหรือHide_Command
เปิดเอกสารใหม่ในรูปแบบที่ต้องการ ตรวจสอบให้แน่ใจว่าHelpแท็บนั้นหายไปในโหมดแท็บ และคำสั่งธีมไม่ปรากฏขึ้นอีกในตำแหน่งที่เคยปรากฏ จากนั้นแก้ไขและบันทึกเอกสารทดสอบเพื่อตรวจสอบว่าการเขียนเอกสารตามปกติยังคงใช้งานได้ ทำซ้ำการตรวจสอบกับเอกสารประเภทอื่น และหลังจากโหลดหน้าเว็บใหม่ เนื่องจากโฮสต์ต้องใช้คำสั่งซ่อนเฉพาะเซสชันอีกครั้ง

ลดความซับซ้อนของ Collabora CODE ด้วยโหมดกะทัดรัดหรือโหมดแท็บ และตัวควบคุม WOPI PostMessage เพื่อซ่อนปุ่ม คำสั่ง และแท็บที่เลือกได้อย่างปลอดภัย
กำหนดให้ Nginx ดูแล HTTPS สำหรับคอนเทนเนอร์ Collabora CODE ส่งต่อการแก้ไข WebSockets อย่างถูกต้อง และตรวจสอบปลายทางสาธารณะโดยไม่ต้องเปิดพอร์ต 9980
แก้ไขปัญหาแป้นพิมพ์ในเบราว์เซอร์บนมือถือที่บังข้อความใน Collabora Online พร้อมวิธีแก้ปัญหาอย่างรวดเร็วและการตรวจสอบแยกต่างหากสำหรับเบราว์เซอร์, WebView ที่ฝังอยู่ และหน้าเว็บหลัก
ตั้งค่าขีดจำกัดการพิมพ์และการดาวน์โหลดสำหรับลิงก์ ONLYOFFICE สมาชิกห้อง หรือเซสชัน Docs API จากนั้นตรวจสอบข้อจำกัดจากบัญชีผู้รับ
ตั้งค่าปลายทางสำรองข้อมูล กำหนดเวลา ครอบคลุมอีเมล และระยะเวลาการเก็บรักษาใน ONLYOFFICE Workspace จากนั้นตรวจสอบว่าไฟล์เก็บถาวรพร้อมสำหรับการกู้คืนแล้ว
เริ่มต้นใช้งาน Enterprise Docker Compose stack บันทึกใบอนุญาตและข้อมูลต่างๆ กำหนดค่า JWT อย่างปลอดภัย และตรวจสอบว่าโปรแกรมแก้ไขพร้อมสำหรับการผสานรวมแล้ว
ใช้มาโคร JavaScript ของ ONLYOFFICE เพื่อลบอักขระที่ไม่สามารถพิมพ์ได้และตัดช่องว่างส่วนเกินออกจากช่วงข้อมูลที่กำหนดในสเปรดชีต พร้อมขั้นตอนการตรวจสอบที่ปลอดภัย
ย้ายข้อมูลพอร์ทัลจากดิสก์เริ่มต้นไปยังผู้ให้บริการพื้นที่จัดเก็บข้อมูลบนคลาวด์ที่รองรับ หรือย้ายข้อมูล Docker อย่างปลอดภัยโดยการเปลี่ยนการแมปวอลุ่มโฮสต์
ตรวจสอบว่า Document Server ใช้แพ็กเกจ Linux หรือ Docker ลบเฉพาะส่วนประกอบของมัน และตรวจสอบข้อมูลที่เหลืออยู่โดยไม่ลบบริการที่ใช้ร่วมกันโดยไม่ได้ตั้งใจ
ตรวจสอบหาสาเหตุของการแก้ไขเอกสารร่วมกันที่ช้า เช่น แรงกดดันด้านทรัพยากรของ Docker การเชื่อมต่อพร็อกซี หรือการโหลดเอกสาร จากนั้นเลือกวิธีแก้ไขที่ตรงกับผลการวิเคราะห์ของคุณ