WebPart Portal
Система встраиваемых WebPart для Portal (аналог SharePoint Web Part Gallery).
- Страницы — гибрид блоков: Rich Text (Quill) + WebPart (C# SSR)
- Каталог — встроенные и установленные пакеты
.portalpart - SDK —
Portal.WebPart.Sdkдля разработчиков - Сборка —
dotnet new portal-webpart+pack-portalpart(.sh/.ps1)
Документация:
- Манифест и модель страницы — поля manifest, CSS/JS в пакете, Property Pane
- Параметры WebPart (Property Pane) — схема, сценарии (список текущего/другого узла), каждый тип,
dependsOn,GetString/GetGuid/… - Интерфейс, контролы и API — разметка,
data-wp-action, JSbind, серверный и клиентский API с примерами - Стили и контролы PortalUI — какие классы (
btn,tbx__control, hint/error, токены) использовать для единого визуала - Кастомная форма: все типы полей —
ctx.Host+ create/edit всех типов полей - Extension SDK — скачивание, NuGet, шаблоны
- SDK (Portal.WebPart.Sdk) — в т.ч.
ctx.Host(список/элемент формы) - Значения полей списков — чтение и обновление
field_values - Сборка пакета и обновление — упаковка
.sh/.ps1,.csproj, переустановка после изменений - Отладка с брейкпоинтами — Debug-пакет с PDB и Attach к Api
- API каталога
Быстрый старт (редактор страницы)
Заголовок раздела «Быстрый старт (редактор страницы)»- Откройте HTML-страницу с правами редактирования
- Нажмите «Редактировать»
- В колонке: + Текст или + WebPart
- Для WebPart — выберите из каталога, настройте Property Pane
- Предпросмотр — просмотр без сохранения
- Экспорт / Импорт — JSON-файл разметки (
layoutTemplate+zonesContent) - Перетаскивание блоков, дублирование, смена колонок
- Шаблоны страниц — при создании выберите шаблон; в редакторе «Сохранить как шаблон»
См. API шаблонов страниц.
Быстрый старт (разработчик)
Заголовок раздела «Быстрый старт (разработчик)»Новая WebPart создаётся из шаблона SDK — не копированием примеров.
- Скачайте Extension SDK с korport.ru/developers (версия = Portal).
- Установите шаблон и создайте проект:
dotnet new install ./portal-sdk-1.0.0/templates/portal-webpartdotnet new portal-webpart -n MyWidget -o ./my-widget- Отредактируйте
manifest.json, C#-класс и при необходимостиTemplates/widget.html/assets/(см. манифест,.csproj). - Соберите пакет:
./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- Загрузите
.portalpartв Админка → WebPart.
Шаблон сразу включает Templates/widget.html. Подробнее: сборка пакета, HTML-шаблоны.
Готовые примеры (опционально)
Заголовок раздела «Готовые примеры (опционально)»Примеры помогают разобрать API; для своей WebPart используйте dotnet new выше. Упаковка — через scripts/pack-portalpart из SDK.
# Собрать демо из SDK ZIPcd 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 они не входят.
Функциональный модуль (.portalmod)
Заголовок раздела «Функциональный модуль (.portalmod)»Несколько WebPart, Event Receiver и Timer Job можно объединить со структурой портала (узлы, списки, страницы) в один пакет .portalmod для поставки заказчику. См. Функциональные модули.
Готовые демо: korport.ru/modules.
Загрузите .portalpart в Админка → WebPart. После изменений в коде — пересборка и переустановка. Перезапуск веб-сервера или API не требуется — см. Установка расширений без перезапуска.