القوائم المخصَّصة في "إضافات المحرِّر"

يمكن لإضافات المحرِّر المنشورة إنشاء عناصر قائمة مخصَّصة ضمن قائمة الإضافات الخاصة بالمحرِّر. يمكنك إدراج قائمة إضافات باستخدام الطريقة Ui.createAddonMenu() وإضافة عناصر إليها باستخدام الطريقة Menu.addItem(). يتم عادةً إنشاء القوائم في طريقة onOpen(e) الخاصة بالإضافة.

يمكنك إنشاء قوائم ديناميكية تتغيّر استنادًا إلى تفاعلات المستخدمين أو حالة الإضافة. ومع ذلك، يجب أن تنشئ الإضافات قائمة أولية قبل أن يمنح المستخدم الإذن باستخدامها. لهذا السبب، يجب التحقّق من وضع التفويض للإضافة قبل إنشاء القوائم في onOpen(e). لا تحاول اتّخاذ أي إجراء يتطلّب الحصول على إذن (مثل التحقّق من النص البرمجي Properties) أثناء استخدام الإضافة في وضع ScriptApp.AuthMode.NONE. يمكنك الاطّلاع على مراحل نشاط التفويض للحصول على مزيد من التفاصيل حول أوضاع التفويض ومراحل النشاط.

يوضّح المثال التالي كيفية إنشاء قائمة إضافات ديناميكية لأوضاع التفويض المختلفة:

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or SlidesApp or FormApp.
  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();
}