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

يمكن لإضافات المحرِّرين المنشورة إنشاء عناصر قائمة مخصّصة ضمن قائمة الإضافات في المحرّر. يمكنك إدراج قائمة إضافات باستخدام طريقة 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();
}