প্রকাশিত এডিটর অ্যাড-অনগুলো তাদের এডিটরের এক্সটেনশন মেনুর অধীনে কাস্টম মেনু আইটেম তৈরি করতে পারে। Ui.createAddonMenu ব্যবহার করে একটি অ্যাড-অন মেনু যোগ করুন এবং Menu.addItem দিয়ে এতে আইটেম যুক্ত করুন। মেনুগুলো সাধারণত অ্যাড-অনের onOpen মেথডে তৈরি করা হয়।
ব্যবহারকারীর কার্যকলাপ বা অ্যাড-অনের অবস্থার উপর ভিত্তি করে পরিবর্তনশীল ডাইনামিক মেনু তৈরি করুন। তবে, ব্যবহারকারী কর্তৃক অনুমোদিত হওয়ার আগে অ্যাড-অনটিকে অবশ্যই একটি প্রাথমিক মেনু তৈরি করতে হবে। এই কারণে, onOpen এ মেনু তৈরি করার আগে অ্যাড-অনটির অনুমোদন মোড পরীক্ষা করে নিন। অ্যাড-অনটি যখন ScriptApp.AuthMode.NONE মোডে থাকবে, তখন অনুমোদনের প্রয়োজন এমন কোনো কাজ (যেমন স্ক্রিপ্টের Properties পরীক্ষা করা) করবেন না। অনুমোদন মোড এবং এর জীবনচক্র সম্পর্কে আরও বিস্তারিত জানতে অনুমোদন জীবনচক্রটি দেখুন।
যখন অথরাইজেশন মোড ScriptApp.AuthMode.NONE থাকে, তখন অনুমোদনের প্রয়োজন এমন কোনো কাজ করার চেষ্টা করলে একটি ত্রুটি দেখা দেয়। এর ফলে আপনার অ্যাড-অন মেনুগুলো প্রদর্শিত নাও হতে পারে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে বিভিন্ন অনুমোদন মোডের জন্য একটি ডায়নামিক অ্যাড-অন মেনু তৈরি করতে হয়:
function onOpen(e) {
// Or DocumentApp, SlidesApp, or FormApp.
var menu = SpreadsheetApp.getUi().createAddonMenu();
if (e && e.authMode == ScriptApp.AuthMode.NONE) {
// Add a normal menu item (works in all authorization modes).
menu.addItem('Start workflow', 'startWorkflow');
} else {
// Add a menu item based on properties (doesn't work in AuthMode.NONE).
var properties = PropertiesService.getDocumentProperties();
var workflowStarted = properties.getProperty('workflowStarted');
if (workflowStarted) {
menu.addItem('Check workflow status', 'checkWorkflow');
} else {
menu.addItem('Start workflow', 'startWorkflow');
}
// Record analytics.
UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
}
menu.addToUi();
}