Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Внимание: для работы пользовательского действия «Manage widgets» в его настройках в качестве значения URL следует указать URL, по которому доступен разрабатываемый веб-сайт (в случае локального использования допускается использовать значение localhost).
Пользовательское действие «Manage widgets» содержит панель управления, в которой Разработчику доступны следующие возможности:
Название | Описание |
Edit page | Выводит страницу «Свойства статьи» бекэнда для текущей страницы веб-сайта |
Organize widgets | На текущей странице веб-сайта выводятся зоны для размещения виджетов. Также выводится список категорий виджетов. Каждая категория может быть развёрнута для получения списка относящихся к ней виджетов. |

Рисунок 10. Панель управления для Виджетной платформы.
С использованием ГПИ платформы можно разместить любой из существующих виджетов в любой из зон страницы путём перетаскивания виджета из списка в зону страницы. После размещения виджета в подходящей зоне Разработчику предлагается создать статью (в контенте «AbstractItem») с указанием в ней данных, которые должен использовать выбранный тип виджета.
Примечание: в форме создания статьи часть полей автоматически заполняется данными, заданными Разработчиком изначально.
Также Разработчику предлагается ввести данные в поля из контента-расширения. После создания статьи для экземпляра виджета на страницу в заданной зоне выводится ГПИ виджета с данными, заданными в статье при его создании.
Примечание: если осуществляется кэширование вёрстки (изменения на странице в результате размещения на ней виджета появляются только после устаревания кэша), то для отключения кэширования в конфигурационном файле веб-сайта (web. config) для элементов раздела outputCacheProfiles следует задать enabled="false".
Для управления уже размещёнными на странице виджетами в ГПИ доступны следующие опции:
Название | Описание |
Edit | Выводит для виджета страницу бекэнда с формой изменения статьи |
Remove | Удаляет виджет из зоны страницы |

Рисунок 11. Опции для работы с виджетом, размещённым на странице в зоне «Below».
В случае, если существующие в Системе типы виджета не позволяют решить существующую задачу, требуется создать новый тип виджета.
Процедура создания и добавления нового типа виджета в Систему Подготовить в бекэнде структуру данных для виджета.В контенте «ItemDefinition» создать статью с основными сведениями по типу нового виджета.
При необходимости использования в виджете уникальных данных:
создать контент-расширение (в группе контентов «Pages and widgets»),В контенте должна быть задана связь с контентом «ItemDefinition» (поле ItemId, тип «Связь» О2M, активировано свойство «Агрегированное»).
указать идентификатор созданного контента-расширения в статье с основными сведениями по типу виджета (в поле PreferredContentId). Для контентов сайта сгенерировать классы LINQ to SQL и/или сопоставление для EF (пункт «Собрать контенты» (Assemble contents) в контекстном меню сайта).Примечание: дополнительно генерируются MAP-файлы с данными о соответствии структуры объектов QP структуре БД.
Примечание: директория, в которую размещаются созданные файлы, задаётся в свойствах сайта (группа свойств «Расположение файлов сборок» (Assembly Files Location)).
Примечание: доступна возможность загрузить файлы сразу после их создания (см. Основные параметры (Basic parameters), параметр «Внешняя разработка»).
Внимание: повторную генерацию классов и MAP-файлов требуется осуществлять после любого изменения структуры данных сайта.
Использовать полученные классы и MAP-файлы при разработке виджета. В случае использования Visual Studio следует скопировать файлы в среду разработки. Разместить код созданного виджета в Системе.Описание кода для виджета
Модель
Взаимодействие с БД осуществляется с использованием классов LINQ to SQL (см. Классы LINQ to SQL) либо сопоставления для EF (см. Использование Entity Framework).
Представление
Представление разрабатывается на основе Razor-шаблонов (CSHTML).
Используется частичное представление (partial view).
При создании разметки следует подготовить зоны для размещения виджетов. Пример кода:
@{ Html. WidgetZone("Название зоны").Render(); }
Зона может быть:
локальная (используется на одной странице), рекурсивная (используется на странице и всех её дочерних страницах).Контроллер
Объект CurrentItem содержит данные из полей контента-расширения.
(Нужно указать что-то ещё?)
QP8 API
Программный интерфейс доступа к QP реализован в виде. NET-сборки Quantumart. dll. Для использования API требуется установить NuGet-пакет Quantumart. QP8.BLL.
Примечание: файл сборки должен быть размещён в директории bin для веб-сайта.
Существует два основных сценария использования QP8 API:
Название сценария | Используемый класс |
Вызовы QP8 API из сторонних веб-сайтов и приложений (включая веб-сайты, реализованные на классах LINQ to SQL) | DBConnector |
Внимание: объекты QP для ветви «Шаблон» являются устаревшими (не рекомендуется использовать для разработки новых Систем; используются для сопровождения Систем, основанных на предыдущих версиях продукта). Вызовы QP8 API из страниц и элементов управления веб-сайта, реализованного на объектах QP |
|
В обоих случаях с помощью сборки также могут быть решены вспомогательные задачи следующего плана:
Название | Описание |
Использование универсального механизма кэширования | Методы класса DBConnector:
|
Аутентификация для пользовательских действий | Класс QScreen |
Управление пользователями и группами пользователей QP | Класс Permissions |
CRUD-функциональность (создание, чтение, изменение, удаление) для статей по логике, используемой в бекэнде. Используется для создания собственных панелей управления, а также для расширения QP c помощью пользовательских действий | Класс ContentItem |
Внимание: объекты QP для ветви «Шаблон» являются устаревшими (не рекомендуется использовать для разработки новых Систем; используются для сопровождения Систем, основанных на предыдущих версиях продукта). Работа с объектом «Publishing Container». | Класс QPublishControl |
Конструкторы
public DBConnector(string strConnectionString)
В качестве значения параметра strConnectionString следует передавать строку подключения к БД.
public DBConnector()
Если строка подключения не задана, то значение берётся из статического свойства ConnectionString.
Основные свойства
Свойство ConnectionString
public static string ConnectionString { get; set; }
Строка подключения по умолчанию. Используется при создании экземпляра DBConnector, если в конструкторе строка подключения не была задана. Инициализируется строкой подключения qp_database из конфигурационного файла веб-сайта.
Свойство CustomConnectionString
public string CustomConnectionString { get; set; }
Строка подключения, специфичная для экземпляра класса.
Примечание: если строка подключения была указана в конструкторе, то указанное значение хранится здесь и может быть изменено.
Свойство IsStage
public bool IsStage { get; set; }
Определяет, в каком режиме (Live или Stage) работает экземпляр класса. Значение по умолчанию – false.
Примечание: если сайт сделан на объектах QP, то свойство инициализируется в соответствии с режимом, в котором был собран сайт. В противном случае учитывается значение параметра isLive конфигурационного файла веб-сайта. Также свойство может быть задано из кода.
Примечание: оказывает влияние на методы:
- GetContentItemLinkQuery, GetContentItemLinkIds, SendNotification, GetMapFileContents, GetDefaultMapFileContents.
Свойство CacheData
public bool CacheData { get; set; }
Определяет, должен ли экземпляр класса кэшировать получаемые из БД данные. Значение по умолчанию – true.
Примечание: интервалы кэширования задаются в конфигурационном файле веб-сайта. Данные могут кэшироваться как локально (в экземпляре), так и в общем кэше HttpRuntime. Cache в зависимости от доступности общего кэша и значения свойства ForceLocalCache.
Свойство ForceLocalCache
public bool ForceLocalCache { get; set; }
При значении true экземпляр класса использует собственный локальный кэш вместо общего кэша HttpRuntime. Cache.
Примечание: если общий кэш недоступен, то всегда будет использоваться локальный кэш.
Примечание: если CacheData = false, то значение данного свойства игнорируется.
Свойство UpdateManyToMany
public bool UpdateManyToMany { get; set; }
Определяет, требуется ли обновлять поля «Связь» типа M2M и M2O при создании и изменении статьи методом AddFormToContent. Значение по умолчанию – true.
Примечание: используется классами LINQ to SQL.
Методы для кэширования
Метод GetCachedEntity
public T GetCachedEntity<T>(string key, Func<string, T> fillAction) where T : class
public T GetCachedEntity<T>(string key, double interval, Func<string, T> fillAction) where T : class
public T GetCachedEntity<T>(string key, Func<T> fillAction) where T : class
public T GetCachedEntity<T>(string key, double interval, Func<T> fillAction) where T : class
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |


