Я уже писал, что в C1 можно встраивать и использовать внешние методы, написанные на C#.
В двух словах: вы создаете публичный класс прямо в папке App_Code, в класс добавляете публичный статический метод. Этот метод становится доступным для подключения в C1. Вы его подключаете и он начинает себя вести как обычная функция C1, которую можно вставлять в содержание страницы, шаблон страницы, использовать в других функциях C1 и т. д.
Но можно немного упростить себе задачу. В C1 можно создавать все те же методы на C# прямо в админке в разделе Functions (Функции), т.е. создавать встроенные C# функции (inline C# functions).
При создании такой функции, можно выбрать шаблон, который сгенерит минимум кода для функции. На выбор предлагаются такие шаблоны:
Используем только что созданную встроенную C# функцию точно также как и внешнюю C# функцию.
(В следующих сообщениях я расскажу, как создавать встроенные функции на основе двух остальных шаблонов - метода с параметрами и метода с подключением данных.)
В двух словах: вы создаете публичный класс прямо в папке App_Code, в класс добавляете публичный статический метод. Этот метод становится доступным для подключения в C1. Вы его подключаете и он начинает себя вести как обычная функция C1, которую можно вставлять в содержание страницы, шаблон страницы, использовать в других функциях C1 и т. д.
Но можно немного упростить себе задачу. В C1 можно создавать все те же методы на C# прямо в админке в разделе Functions (Функции), т.е. создавать встроенные C# функции (inline C# functions).
При создании такой функции, можно выбрать шаблон, который сгенерит минимум кода для функции. На выбор предлагаются такие шаблоны:
- пустой метод (Empty method)
- пустой метод с параметрами (Method with parameters)
- метод, использующий подключение данных (Method using data connection)
В этом сообщении я расскажу о том, как создать внутреннюю C# функцию, которая будет делать то же самое, что и наш внешний метод (описанный ранее) - возвращать текущую дату как строку в полном формате.
- Заходим в админку в раздел Functions.
- Выбираем узел C# functions и нажимаем кнопку Add Inline C# Function (добавить встроенную C# функцию).
- В появившемся окне заполняем поля:
- Name (имя): обязательное поле - пишем, например, CurrentDate
- Namespace (пространство имен): желательно указать - например, Demo
- Description (описание): необязательное поле - пишем, например, "Возвращает текущую дату в полном формате"
- Template (шаблон): выбираем шаблон, в данном случае - Empty method.
- Нажимаем Finish.
Все. Заготовка у нас есть. Теперь немножко подправим код, чтобы он делал то, что нам нужно:
- Переходим на вкладку Source (исходный код), если открыта другая вкладка.
- Заменяем тип возвращаемого значения с bool на string.
- Заменяем строку return true; на return DateTime.Now.ToLongDateString();.
- Сохраняем функцию (Save).
У нас должно получиться что-то вроде:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Composite.Data;
using Composite.Data.Types;
namespace Demo
{
public static class InlineMethodFunction
{
public static string CurrentDate()
{
return DateTime.Now.ToLongDateString();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Composite.Data;
using Composite.Data.Types;
namespace Demo
{
public static class InlineMethodFunction
{
public static string CurrentDate()
{
return DateTime.Now.ToLongDateString();
}
}
}
(В следующих сообщениях я расскажу, как создавать встроенные функции на основе двух остальных шаблонов - метода с параметрами и метода с подключением данных.)
Комментариев нет:
Отправить комментарий