Перейти к содержимому

WebPart Portal

Система встраиваемых WebPart для Portal (аналог SharePoint Web Part Gallery).

  • Страницы — гибрид блоков: Rich Text (Quill) + WebPart (C# SSR)
  • Каталог — встроенные и установленные пакеты .portalpart
  • SDKPortal.WebPart.Sdk для разработчиков
  • Сборкаdotnet new portal-webpart + pack-portalpart (.sh / .ps1)

Документация:

  1. Откройте HTML-страницу с правами редактирования
  2. Нажмите «Редактировать»
  3. В колонке: + Текст или + WebPart
  4. Для WebPart — выберите из каталога, настройте Property Pane
  5. Предпросмотр — просмотр без сохранения
  6. Экспорт / Импорт — JSON-файл разметки (layoutTemplate + zonesContent)
  7. Перетаскивание блоков, дублирование, смена колонок
  8. Шаблоны страниц — при создании выберите шаблон; в редакторе «Сохранить как шаблон»

См. API шаблонов страниц.

Новая WebPart создаётся из шаблона SDKне копированием примеров.

  1. Скачайте Extension SDK с korport.ru/developers (версия = Portal).
  2. Установите шаблон и создайте проект:
Окно терминала
dotnet new install ./portal-sdk-1.0.0/templates/portal-webpart
dotnet new portal-webpart -n MyWidget -o ./my-widget
  1. Отредактируйте manifest.json, C#-класс и при необходимости Templates/widget.html / assets/ (см. манифест, .csproj).
  2. Соберите пакет:
Окно терминала
./portal-sdk-1.0.0/scripts/pack-portalpart.sh ./my-widget
# → my-widget/dist/my-widget.portalpart
Окно терминала
.\portal-sdk-1.0.0\scripts\pack-portalpart.ps1 .\my-widget
  1. Загрузите .portalpart в Админка → WebPart.

Шаблон сразу включает Templates/widget.html. Подробнее: сборка пакета, HTML-шаблоны.

Примеры помогают разобрать API; для своей WebPart используйте dotnet new выше. Упаковка — через scripts/pack-portalpart из SDK.

Окно терминала
# Собрать демо из SDK ZIP
cd portal-sdk-1.0.0/examples/hello-widget
../../scripts/pack-portalpart.sh .
Примеры в монорепозитории Portal (вендор)

В монорепо у части примеров есть локальный ./build.sh — это обёртка для вендора, не часть шаблона SDK.

Окно терминала
cd packages/webpart-examples/hello-widget
./build.sh
ПакетОписание
hello-widgetМинимальный пример с Templates/widget.html
current-user-widgetИмя и логин текущего пользователя
tasksТаймлайн задач, формы, модалки (эталон)
meeting-room-bookingБронирование переговорных
address-bookАдресная книга с поиском
birthdaysИменинники сегодня
birthdays-widgetКомпактный виджет именинников
bannersКарусель баннеров

Исходники: packages/webpart-examples/. В релиз и db-init они не входят.

Несколько WebPart, Event Receiver и Timer Job можно объединить со структурой портала (узлы, списки, страницы) в один пакет .portalmod для поставки заказчику. См. Функциональные модули.

Готовые демо: korport.ru/modules.

Загрузите .portalpart в Админка → WebPart. После изменений в коде — пересборка и переустановка. Перезапуск веб-сервера или API не требуется — см. Установка расширений без перезапуска.