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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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