- Construcción de páginas
- Lenguaje de plantillas Logicor
- Clasificación de funciones de Logicor
- Referencias de funciones de Logicor
- Address
- AddressToId
- AddToolButton
- And
- AppParam
- ArrayToSource
- Binary
- Button
- Calculate
- Chart
- CmpTime
- Code
- CodeAsIs
- Data
- Custom
- DateTime
- DBFind
- Div
- EcosysParam
- Em
- ForList
- Form
- GetColumnType
- GetHistory
- GetVar
- Hint
- If
- Image
- ImageInput
- Include
- Input
- InputErr
- InputMap
- JsonToSource
- Label
- LangRes
- LinkPage
- Map
- MenuGroup
- MenuItem
- Money
- Or
- P
- QRcode
- RadioGroup
- Range
- Select
- SetTitle
- SetVar
- Span
- Strong
- SysParam
- Table
- TransactionInfo
- VarAsIs
- Estilo de aplicación adaptado para dispositivos móviles.
El entorno de desarrollo integrado de Weaver se crea utilizando la biblioteca JavaScript React, que incluye un editor de páginas y un diseñador de páginas visual. Las páginas son la parte fundamental de la aplicación, que proporcionan la recuperación y visualización de datos de tablas de bases de datos, la creación de formularios para recibir datos de entrada de los usuarios, la transmisión de datos a contratos y la navegación entre páginas de la aplicación.
Las páginas, al igual que los contratos, se almacenan en la cadena de bloques, lo que garantiza que no se puedan manipular cuando se cargan en el cliente de software.
Los elementos de la página (página y menú) son creados por los desarrolladores en el editor de páginas de Weaver utilizando lenguaje de plantillas en el motor de plantillas de los nodos de validación.
Todas las páginas están construidas utilizando el lenguaje Logicor desarrollado por el equipo de desarrollo de la plataforma blockchain IBAX. Se utiliza el comando de API content/... para solicitar páginas desde un nodo en la red.
El motor de plantillas envía como respuesta a este tipo de solicitudes no una página HTML, sino un código JSON compuesto por etiquetas HTML que forman un árbol según la estructura de la plantilla. Si desea probar el motor de plantillas, consulte la interfaz de API content.
Puede utilizar el editor de páginas para crear y editar páginas, que se puede encontrar en la sección Páginas de las herramientas de administración de Weaver. Este editor proporciona:
- Escribir código de página, resaltando las palabras clave del lenguaje de plantillas Logicor;
- Selección de menús que se mostrarán en la página;
- Edición de la página de menú;
- Configuración para cambiar los permisos de la página, especificando los nombres de contrato con permisos en la función ContractConditions, o especificando directamente los permisos de acceso en Cambiar condiciones;
- Iniciar el diseñador de páginas visual;
- Vista previa de la página.
El diseñador de páginas visual permite crear diseños de páginas sin necesidad de utilizar código de interfaz de usuario en Logicor.
El diseñador visual utiliza la función de arrastrar y soltar para establecer la posición de los elementos del formulario y el texto en la página, así como para configurar el tamaño de los bloques de la página.
El diseñador visual proporciona un conjunto de bloques listos para usar para mostrar modelos de datos estándar: con títulos, formularios y paneles de información. Después de crear una página en el diseñador visual, se puede escribir la lógica del programa que recibe los datos y las estructuras condicionales en el editor de la página.
En el futuro, planeamos crear un diseñador de páginas visual más completo.
El estilo predeterminado para mostrar la página es el estilo de Bootstrap Angle de Angular. Si es necesario, el usuario puede crear su propio estilo. El estilo se almacena en el parámetro de estilo stylesheet de la tabla de parámetros del ecosistema.
Para utilizar fragmentos de código en varias páginas, puedes crear módulos de página e incrustarlos en el código de la página. En los Bloques de módulos de Weaver puedes crear y editar estos módulos de página. Al igual que con las páginas, puedes definir permisos de edición.
Weaver incluye un mecanismo para localizar páginas utilizando la función de lenguaje de plantilla Logicor LangRes. Reemplaza las etiquetas de recursos de idioma en la página con las líneas de texto correspondientes para el idioma seleccionado por el usuario en el cliente de software o navegador. La sintaxis
Los recursos de idioma se pueden crear y editar en la sección Recursos de idioma de Weaver. Un recurso de idioma consta de un nombre de etiqueta y su traducción en diferentes idiomas, marcados con el identificador de idioma de dos caracteres correspondiente (EN, ZH, JP, etc.).
Los permisos para agregar y modificar recursos de idioma se pueden definir y administrar de la misma manera que para otras tablas de datos.
La función Logicor ofrece las siguientes operaciones:
- Recuperar valores de la base de datos:
DBFind
, que representa los datos recuperados de la base de datos como tablas y gráficos; - Operaciones de asignación y visualización de valores de variables:
SetVar, GetVar, Data
; - Visualización y comparación de valores de fecha/hora:
DateTime, Now, CmpTime
; - Construir formularios con varios campos de entrada de datos de usuario:
Form, ImageInput, Input, RadioGroup, Select
; - Validar los datos en los campos del formulario y mostrar mensajes de error:
Validate, InputErr
; - Mostrar elementos de navegación:
AddToolButton, LinkPage, Button
; - Llamar a contratos:
Button
; - Crear elementos de diseño de página HTML, incluyendo varias etiquetas y clases CSS opcionales:
Div, P, Span, etc.
; - Insertar imágenes en la página y cargar imágenes:
Image, ImageInput
; - Mostrar fragmentos de diseño de página condicionalmente:
If, ElseIf, Else
; - Crear menús de varios niveles;
- Localizar la página.
La página de plantilla de Logicor utiliza un lenguaje funcional que permite llamar funciones con la sintaxis FuncName(parametros)
y anidar funciones dentro de otras. Los parámetros pueden ser especificados sin comillas y se pueden eliminar los que no sean necesarios.
Text FuncName(parameter number 1, parameter number 2) another text.
FuncName(parameter 1,,,parameter 4)
Si un parámetro contiene una coma, debe estar entre comillas (backticks o comillas dobles). Si una función solo puede tener un parámetro, se puede usar una coma sin comillas. Además, si un parámetro tiene paréntesis derechos no emparejados, se deben usar comillas.
FuncName("parameter number 1, the second part of first paremeter")
FuncName(`parameter number 1, the second part of first paremeter`)
Si se colocan los parámetros entre comillas, pero los parámetros en sí mismos contienen comillas, se pueden usar diferentes tipos de comillas o varias comillas en el texto.
FuncName("parameter number 1, ""the second part of first"" paremeter")
FuncName(`parameter number 1, "the second part of first" paremeter`)
En la definición de una función, cada parámetro tiene un nombre específico. Puede llamar a la función en el orden en que se declararon los parámetros y especificar los argumentos, o especificar cualquier conjunto de argumentos en cualquier orden mediante Parameter_name: Parameter_value
. Este método permite agregar nuevos parámetros de función de manera segura sin romper la compatibilidad con la plantilla actual.
FuncName(myclass, This is value, Div(divclass, This is paragraph.))
FuncName(Body: Div(divclass, This is paragraph.))
FuncName(myclass, Body: Div(divclass, This is paragraph.))
FuncName(Value: This is value, Body:
Div(divclass, This is paragraph.)
)
FuncName(myclass, Value without Body)
La función puede devolver texto, generar elementos HTML (por ejemplo, Input
), o crear elementos HTML con elementos HTML anidados (Div, P, Span
). En este último caso, se utiliza un parámetro con el nombre predefinido Body para definir los elementos anidados. Por ejemplo, para anidar dos divs dentro de otro div, se puede hacer lo siguiente:
Div(Body:
Div(class1, This is the first div.)
Div(class2, This is the second div.)
)
Para definir los elementos anidados descritos en el parámetro Body, puedes usar la siguiente notación: FuncName(...){...}
. Los elementos anidados se especifican utilizando llaves:
Div(){
Div(class1){
P(This is the first div.)
Div(class2){
Span(This is the second div.)
}
}
}
Si necesitas especificar repetidamente la misma función, puedes usar un punto .
en lugar de escribir el nombre de la función cada vez. Por ejemplo, estos son equivalentes:
Span(Item 1)Span(Item 2)Span(Item 3)
Span(Item 1).(Item 2).(Item 3)
El lenguaje permite el uso de la función SetVar para asignar variables, y el valor de la variable se puede referenciar usando #name#
.
SetVar(name, My Name)
Span(Your name: #name#)
Para hacer referencia a los recursos de lenguaje en el ecosistema, puedes usar $langres$
, donde langres es el nombre de la fuente de lenguaje.
Span($yourname$: #name#)
Se han predefinido las siguientes variables:
#key_id#
- Dirección de cuenta del usuario actual;#ecosystem_id#
- ID del ecosistema actual;#guest_key#
- Dirección de cuenta de invitado;#isMobile#
- Si Weaver se está ejecutando en un dispositivo móvil, es 1.
Utiliza PageParams para pasar parámetros a la página.
Hay muchas funciones que admiten el parámetro PageParams, que se utiliza para pasar parámetros al redirigir a una nueva página. Por ejemplo: PageParams: "param1=value1,param2=value2"
.
Los valores de los parámetros pueden ser simples cadenas o variables con valores de referencia. Al pasar los parámetros a la página, se crean variables con los nombres de los parámetros. Por ejemplo, #param1#
y #param2#
.
PageParams: "hello=world"
- la nueva página recibe el parámetro hello con el valor world;PageParams: "hello=#world#"
- la nueva página recibe el parámetro hello con el valor de la variable world.
Además, la función Val permite obtener datos del formulario que se especifican en la redirección.
PageParams: "hello=Val(world)"
- La nueva página recibe el parámetro hello con el valor del elemento del formulario world.
Logicor utiliza la función Button para realizar llamadas de contrato haciendo clic en un botón en el formulario. Una vez que se inicia este evento, los datos ingresados por el usuario en los campos del formulario de la página se pasarán al contrato.
Si el nombre del campo del formulario coincide con el nombre de la variable en la sección de datos del contrato que se llama, los datos se transferirán automáticamente.
La función Button permite abrir una ventana modal para que el usuario verifique la ejecución del contrato y, después de una ejecución exitosa del contrato, inicie una redirección a una página específica y pase algunos parámetros a esa página.
GetVar | SetVar | VarAsIs |
AddToolButton | Button | LinkPage |
Calculate | DateTime | Money |
CmpTime |
Code | Hint | MenuItem |
CodeAsIs | Image | QRcode |
Chart | MenuGroup | Table |
ForList |
Address | EcosysParam | LangRes |
AddressToId | GetHistory | Range |
AppParam | GetColumnType | SysParam |
Data | JsonToSource | Binary |
DBFind | ArrayToSource | TransactionInfo |
Div | SetTitle | Span |
Em | Label | Strong |
P |
Form | InputErr | InputMap |
ImageInput | RadioGroup | Map |
Input | Select |
If | Or | Include |
And |
La función devuelve la dirección de la billetera xxxx-xxxx-...-xxxx
de la cuenta especificada; si no se especifica una dirección, se utiliza la dirección de la cuenta actual como parámetro.
Gramática
Address(account)
-
Address
-
account
账户地址。
-
Ejemplo
Span(Your wallet: Address(#account#))
Esta función devuelve la dirección de la cuenta para la dirección de la billetera especificada xxxx-xxxx-...-xxxx
.
Gramática
AddressToId(Wallet)
-
AddressToId
-
Wallet
Dirección de billetera en formato
XXXX-...-XXXX
.
-
Ejemplo
AddressToId(#wallet#)
Crear un panel de botones con el elemento addtoolbutton.
Gramática
AddToolButton(Title, Icon, Page, PageParams)
[.Popup(Width, Header)]
-
AddToolButton
-
Title
Título del botón.
-
Icon
Estilo del icono del botón.
-
Page
Nombre de la página a la que se redirige.
-
Pageparams
Parámetros que se pasan a la página.
-
Popup
Ventana emergente modal.
-
Header
Título de la ventana.
-
Width
Porcentaje de ancho de la ventana.
El valor de este parámetro está en el rango de 1 a 100.
-
Ejemplo
AddToolButton(Title: $@1broadcast$, Page: @1notifications_broadcast, Icon: icon-plus).Popup(Header: $@1notifications_broadcast$, Width: "50")
La función devuelve el resultado de la operación lógica and de todos los argumentos listados entre paréntesis, separados por comas. Si uno de los argumentos es una cadena vacía, cero o false
, su valor es false
. En cualquier otro caso, su valor es true
. Si el valor del argumento es true
, la función devuelve 1
, en cualquier otro caso devuelve 0
.
Gramática
And(parameters)
Ejemplo
If(And(#myval1#,#myval2#), Span(OK))
Muestra el valor del parámetro de la aplicación, tomado de la tabla app_params del ecosistema actual. Si existe un recurso de idioma con el nombre especificado, su valor se sustituirá automáticamente.
Gramática
AppParam(App, Name, Index, Source)
-
AppParam
-
App
Identificación de la aplicación.
-
Name
Nombre del parámetro.
-
Index
Cuando el valor del parámetro es una lista separada por comas, se puede utilizar este parámetro.
El índice del elemento del parámetro comienza en 1. Por ejemplo, si
type = full,light
, entoncesAppParam(1, type, 2)
devuelvelight
.Este parámetro no se puede utilizar junto con el parámetro Source.
-
Source
Cuando el valor del parámetro es una lista separada por comas, se puede utilizar este parámetro.
Crea un objeto data cuyos elementos son los valores especificados del parámetro. Este objeto se puede utilizar como fuente de datos para las funciones Table y Select.
Este parámetro no se puede utilizar junto con el parámetro Index.
-
Ejemplo
AppParam(1, type, Source: mytype)
Crear un elemento arraytosource y llenarlo con pares clave-valor de un arreglo JSON. Los datos resultantes se colocan en el elemento Source, que luego se puede utilizar en una función de entrada de origen (por ejemplo, Table).
Gramática
ArrayToSource(Source, Data)
-
ArrayToSource
-
Source
Nombre de la fuente de datos.
-
-
Data
Una matriz JSON o un nombre de variable (
#name#
) que contiene una matriz JSON.
Ejemplo
ArrayToSource(src, #myjsonarr#)
ArrayToSource(dat, [1, 2, 3])
Devolver el enlace al archivo estático almacenado en la tabla binaria binaries.
Gramática
Binary(Name, AppID, MemberID)[.ById(ID)][.Ecosystem(ecosystem)]
-
Binary
-
Name
Nombre del archivo.
-
AppID
Identificación de la aplicación.
-
MemberID
Dirección de cuenta, por defecto 0.
-
ID
ID de archivo estático.
-
ecosystem
ID del ecosistema. Si no se especifica este parámetro, se solicita el archivo binario desde el ecosistema actual.
-
Ejemplo
Image(Src: Binary("my_image", 1))
Image(Src: Binary().ById(2))
Image(Src: Binary().ById(#id#).Ecosystem(#eco#))
Crea un elemento HTML button. Este elemento crea un botón que se utiliza para llamar a un contrato o abrir una página.
Gramática
Button(Body, Page, Class, Contract, Params, PageParams)
[.CompositeContract(Contract, Data)]
[.Alert(Text, ConfirmButton, CancelButton, Icon)]
[.Popup(Width, Header)]
[.Style(Style)]
[.ErrorRedirect((ErrorID,PageName,PageParams)]
-
Button
-
Body
Subtexto o elemento.
-
Page
Nombre de la página redirigida.
-
Class
Botón.
-
Contract
Nombre del contrato inteligente invocado.
-
Params
Lista de valores pasados al contrato. Por lo general, los valores de los parámetros del contrato (parte
data
) se obtienen de los elementos HTML con nombres similares alid
.Si el
id
del elemento es diferente al nombre del parámetro del contrato, se debe asignar en el formatocontractField1=idname1, contractField2=idname2
.Este parámetro se devuelve como un objeto
{contractField1: idname1, contractField2: idname2}
en attr. -
PageParams
El formato de los parámetros pasados a la página de redirección es
pageField1=idname1, pageField2=idname2
.Las variables con los nombres de parámetros de destino
#pageField1
y#pageField2
se crean en la página de destino y se les asignan los valores especificados. Para obtener más información sobre la especificación de pasos de parámetros, consulte Cómo pasar parámetros a una página usando PageParams.
-
-
CompositeContract
"Se utiliza para agregar contratos adicionales a un botón. CompositeContract se puede utilizar varias veces."
-
Name
Nombre del contrato.
-
Data
The contract parameters are a JSON array.
-
-
Alert
Mostrar mensaje.
-
Text
Mensaje de texto.
-
ConfirmButton
El título del botón de confirmación.
-
CancelButton
Título del botón Cancelar.
-
Icon
Icono de botón.
-
-
Popup
Output ventana modal.
-
Header
Título de la ventana.
-
Width
Ancho de la ventana en porcentaje.
El valor de este parámetro varía de 1 a 100.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
-
ErrorRedirect
Especifique una página de redireccionamiento que se utilizará cuando la función
contractfundef-Throw
{.interpreted-text role="ref"} genere un error durante la ejecución del contrato.Puede haber varias llamadas a ErrorRedirect. Por lo tanto, al devolver el atributo errredirect, su clave es ErrorID y su valor es una lista de parámetros.
-
ErrorID
ID de error.
-
PageName
Nombre de la página de redireccionamiento.
-
PageParams
Parámetros pasados a esta página.
-
Ejemplo
Button(Submit, default_page, mybtn_class).Alert(Alert message)
Button(Contract: MyContract, Body:My Contract, Class: myclass, Params:"Name=myid,Id=i10,Value")
La función devuelve el resultado de la expresión aritmética pasada en el parámetro Exp. Se pueden utilizar las siguientes operaciones: +, -, *, /
y paréntesis ()
.
Gramática
Calculate(Exp, Type, Prec)
-
Calculate
-
Exp
Arithmetic expression. Puede contener números y variables nombre.
-
Type
Resultado del tipo de datos: int, float, dinero.
Si no se especifica, si hay números con decimales, el tipo de resultado será float, en otros casos será int.
-
Prec
El tipo de datos float y money especifican la cantidad de dígitos significativos después del punto decimal.
-
Ejemplo
Calculate( Exp: (342278783438+5000)\*(#val#-932780000), Type: money, Prec:18 )
Calculate(10000-(34+5)\*#val#)
Calculate("((10+#val#-45)\*3.0-10)/4.5 + #val#", Prec: 4)
Crear gráficos HTML.
Gramática
Chart(Type, Source, FieldLabel, FieldValue, Colors)
-
Chart
-
Type
Tipo de gráfico.
-
Source
Nombre de la fuente de datos, por ejemplo, obtenido de la función DBFind.
-
FieldLabel
Nombre de los campos del encabezado.
-
FieldValue
Nombre del campo de valor.
-
Colors
Lista de colores.
-
Ejemplo
Data(mysrc,"name,count"){
John Silver,10
"Mark, Smith",20
"Unknown ""Person""",30
}
Chart(Type: "bar", Source: mysrc, FieldLabel: "name", FieldValue: "count", Colors: "red, green")
Esta función compara dos valores de tiempo en el mismo formato.
El formato admite unixtime, YYYY-MM-DD HH:MM:SS
, y cualquier formato de tiempo, como desde el año hasta el segundo YYYYMMDD
.
Gramática
CmpTime(Time1, Time2)
Valor de retorno
-1
- Time1 < Time2;0
- Time1 = Time2;1
- Time1 > Time2。
Ejemplo
If(CmpTime(#time1#, #time2#)<0){...}
Crear un elemento code para mostrar el código especificado.
La función reemplaza el valor de la variable con el valor de la variable (por ejemplo, #name#
).
Gramática
Code(Text)
-
Code
-
Text
Código fuente.
-
Ejemplo
Code( P(This is the first line.
Span(This is the second line.))
)
Crear un elemento code para mostrar el código especificado.
Esta función no reemplazará las variables por sus valores. Por ejemplo, #name#
se mostrará tal cual.
Gramática
CodeAsIs(Text)
-
CodeAsIs
-
Text
Código fuente.
-
Ejemplo
CodeAsIs( P(This is the #test1#.
Span(This is the #test2#.))
)
Crear un elemento data y llenarlo con los datos especificados y colocarlo en Source, luego se puede recibir Source como entrada de datos en Table y otras funciones. La secuencia de nombres de columna corresponde a la secuencia de valores de entrada de data.
Gramática
Data(Source,Columns,Data)
[.Custom(Column){Body}]
-
Data
-
Source
Nombre de la fuente de datos. Puede asignar cualquier nombre que desee y luego pasarlo como origen de datos a otras funciones más adelante.
-
Columns
Lista de nombres de columna separados por comas.
-
Data
conjunto de datos.
Cada registro debe estar en una línea separada. Los valores de las columnas deben estar separados por comas. Data y Columns deben tener el mismo orden.
Para valores que contienen comas, se deben colocar entre comillas dobles (
"ejemplo1, ejemplo2", 1, 2
).Para valores que contienen comillas, se deben colocar entre dos comillas dobles (
""ejemplo", "ejemplo2"", 1, 2
). -
Se puede asignar columnas de cálculo a Data. Por ejemplo, puede especificar plantillas de campo para botones y otros elementos de diseño de página. Estas plantillas de campo generalmente se asignan a Table y otras funciones para recibir datos.
Si desea asignar varias columnas de cálculo, utilice varias funciones Custom.
-
Column
Columna. Debe especificar un nombre único.
-
Body
Fragmento de código. Puede usar
#nombredecolumna#
para obtener valores de otras columnas en esta entrada y luego usar esos valores en el fragmento de código.
Ejemplo
Data(mysrc,"id,name"){
"1",John Silver
2,"Mark, Smith"
3,"Unknown ""Person"""
}.Custom(link){Button(Body: View, Class: btn btn-link, Page: user, PageParams: "id=#id#"}
Muestra la hora y la fecha en el formato especificado.
Gramática
DateTime(DateTime, Format)
-
DateTime
-
DateTime
Representa la hora y la fecha
2006-01-02T15:04:05
en formato unixtime o estándar. -
Format
Formato de plantilla: formato de año de 2 dígitos
YY
, formato de año de 4 dígitosYYYY
, mesMM
, díaDD
, horaHH
, minutosMM
, segundosSS
, por ejemplo:YY/MM/DD HH:MM
.Si no se especifica o falta este parámetro, se utilizará el formato
YYYY-MM-DD HH:MI:SS
.
-
Ejemplo
DateTime(2017-11-07T17:51:08)
DateTime(#mytime#,HH:MI DD.MM.YYYY)
Crear el elemento dbfind, llenarlo con los datos de la tabla table y colocarlo en la estructura Source. Esta estructura Source puede ser utilizada posteriormente como entrada de datos para la función Table y otras funciones que requieran datos de entrada de Source.
Gramática
DBFind(table, Source)
[.Columns(columns)]
[.Where(conditions)]
[.WhereId(id)]
[.Order(name)]
[.Limit(limit)]
[.Offset(offset)]
[.Count(countvar)]
[.Ecosystem(id)]
[.Cutoff(columns)]
[.Custom(Column){Body}]
[.Vars(Prefix)]
-
DBFind
-
table
Nombre de la tabla de datos.
-
Source
Nombre de la fuente de datos.
-
-
Columns
-
columns
La lista de campos devuelta, si no se especifica, devolverá todos los campos. Si hay campos de tipo JSON, se puede utilizar la siguiente sintaxis para manejar los campos de registro:
columnname->fieldname
. En este caso, el nombre del campo generado escolumnname.fieldname
.。
-
-
Where
-
conditions
Condiciones de búsqueda de datos. Consulte
contractfundef-DBFind
{.interpreted-text role="ref"}.Si hay campos de tipo JSON, se puede utilizar la siguiente sintaxis para manejar los campos de registro:
columnname->fieldname
.
-
-
WhereId
Según el ID de consulta, por ejemplo,
.WhereId(1)
.-
id
ID del elemento.
-
Order
Ordenar por campo.
Para obtener más información sobre la sintaxis de ordenación, consulte DBFind.
-
name
Nombre del campo.
-
-
Limit
-
limit
El número de entradas devueltas. El valor predeterminado es de 25 entradas y el máximo es de 10,000 entradas.
-
-
offset
Es la cantidad de desplazamiento.
-
Count
Se refiere al número total de filas que cumplen con la condición especificada en la cláusula Where.
Además de almacenarse en una variable, también se devuelve el recuento total en el parámetro count del elemento dbfind.
Si no se especifica Where y WhereID, se devolverá el número total de filas de la tabla de datos.
-
countvar
Es el nombre de la variable que almacena el recuento de filas.
-
Ecosystem
-
id
ID del ecosistema. Por defecto, los datos provienen de la tabla especificada en el ecosistema actual.
-
-
Cutoff
Utilizado para cortar y mostrar grandes cantidades de datos de texto.
-
columns
Una lista de campos separados por comas que deben ser procesados por la función Cutoff.
Los valores de los campos son reemplazados por un objeto JSON que tiene dos campos: enlace link y título title. Si el valor del campo es mayor a 32 caracteres, se devuelve un link que apunta a los primeros 32 caracteres del texto completo. Si el valor es exactamente de 32 caracteres o menos, el link está vacío y el title contiene el valor completo del campo.
-
-
Custom
Se puede asignar columnas de cálculo para Data. Por ejemplo, puede asignar plantillas de campo para botones y otros elementos de diseño de página.
Estas plantillas de campo generalmente se asignan a
templatefundef-Table
{.interpreted-text role="ref"} y otras funciones para recibir datos.Si desea asignar varias columnas de cálculo, utilice varias funciones Custom.
-
Column
Column name. Unique name must be specified.
-
Body
Snippet de código. Puedes usar
#columnname#
para obtener valores de otras columnas en esta entrada y luego usar esos valores en el snippet de código.
-
-
Vars
La primera fila obtenida mediante la consulta genera un conjunto de variables con valores. Al especificar esta función, el parámetro Limit se establece automáticamente en 1 y solo se devuelve un registro.
-
Prefix
Agregue un prefijo al nombre de la variable. El formato es
#prefijo_nombredecolumna#
, donde el nombre de la columna va seguido inmediatamente por un guión bajo. Si hay columnas que contienen campos JSON, las variables generadas usarán el siguiente formato:#prefijo_nombredecolumna_campo#
.
-
Ejemplo
DBFind(parameters,myparam)
DBFind(parameters,myparam).Columns(name,value).Where({name:"money"})
DBFind(parameters,myparam).Custom(myid){Strong(#id#)}.Custom(myname){
Strong(Em(#name#))Div(myclass, #company#)
}
Crear un elemento HTML div.
Gramática
Div(Class, Body)
[.Style(Style)]
[.Show(Condition)]
[.Hide(Condition)]
-
Div
-
Class
El nombre de la clase de este div.
-
Body
elementos secundarios.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
-
Show
Definir la condición para mostrar un Div.
-
Condition
Ver Ocultar a continuación.
-
-
Hide
Defina la condición para ocultar un Div.
- Condition
El formato de la expresión es
InputName=Value
. Cuando todas las expresiones son verdaderas, Condition es verdadero. Condition es verdadero cuando el valor deInputName
es igual aValue
.Si se llaman múltiples Show o Hide, al menos un parámetro Condition debe ser verdadero.
Ejemplo
Form(){
Div(text-left){
Input(Name: "broadcast", Type: "checkbox", Value: "false")
}
Div(text-left){
hello
}.Show("broadcast=false")
Div(text-left){
world
}.Hide("broadcast=false")
}
Esta función recupera los valores de los parámetros de la tabla de parámetros del ecosistema actual. Si el nombre del resultado devuelto tiene recursos de idioma, se traducirá en consecuencia.
Gramática
EcosysParam(Name, Index, Source)
-
EcosysParam
-
Name
Nombre del parámetro.
-
Index
Si los parámetros de solicitud son una lista de elementos separados por comas, se puede especificar un índice que comience en 1. Por ejemplo, si
gender = male,female
, entoncesgender = male,female
devuelvefemale
.Este parámetro no se puede utilizar junto con el parámetro Source.
-
Source
Cuando el valor del parámetro es una lista separada por comas, se puede utilizar este parámetro.
Crea un objeto data cuyos elementos son los valores especificados del parámetro. Este objeto se puede utilizar como fuente de datos para las funciones Table y Select.
Este parámetro no se puede utilizar junto con el parámetro Index.
-
Address(EcosysParam(founder_account))
EcosysParam(gender, Source: mygender)
EcosysParam(Name: gender_list, Source: src_gender)
Select(Name: gender, Source: src_gender, NameColumn: name, ValueColumn: id)
Crea un elemento HTML em.
Gramática
Em(Body, Class)
-
Em
-
Body
Subtexto o elemento.
-
Class
El nombre de la clase de em.
-
Ejemplo
This is an Em(important news).
Display the list of elements from the Source data source using the template format set in the Body, and create the forlist element.
Gramática
ForList(Source, Index){Body}
-
ForList
ForList(mysrc){Span(#mysrc_index#. #name#)}
Crear el elemento HTML form.
Gramática
Form(Class, Body) [.Style(Style)]
-
Form
-
Body
Subtexto o elemento.
-
Class
El nombre de la clase de este form.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
Form(class1 class2, Input(myid))
Devolver los tipos de datos de los campos en una tabla especificada.
Los siguientes tipos son devueltos: texto, varchar, número, dinero, doble, bytes, json, datetime, doble
.
Gramática
GetColumnType(Table, Column)
-
GetColumnType
-
Table
Nombre de la tabla de datos.
-
Column
Nombre del campo.
-
Ejemplo
SetVar(coltype,GetColumnType(members, member_name))Div(){#coltype#}
Crear el elemento gethistory, que utiliza el registro de cambios históricos de las entradas de una tabla de datos especificada para llenarlo. Los datos generados se colocarán en el elemento Source.
Este elemento se puede utilizar más adelante en una función de entrada de origen, como Table.
El arreglo se ordena en orden de cambios más recientes. El campo id en el arreglo apunta al campo id de la tabla rollback_tx. block_id representa el ID del bloque y block_time representa la marca de tiempo de generación del bloque.
Gramática
GetHistory(Source, Name, Id, RollbackId)
-
GetHistory
-
Source
Nombre de la fuente de datos.
-
Name
Nombre de la tabla de datos.
-
Id
ID de entrada.
-
RollbackId
Optional parameter. Si se especifica, devuelve solo un registro de la tabla rollback_tx con el ID especificado.
-
Ejemplo
GetHistory(blocks, BlockHistory, 1)
Esta función devuelve el valor de la variable especificada si ya existe, de lo contrario devuelve una cadena vacía.
Solo se creará el elemento getvar al solicitar la edición del árbol. La diferencia entre GetVar(varname)
y #varname#
es que si varname no existe, GetVar devolverá una cadena vacía, mientras que #varname# se interpretará como un valor de cadena.
Gramática
GetVar(Name)
-
GetVar
-
Name
Variable name.
-
Ejemplo
If(GetVar(name)){#name#}.Else{Name is unknown}
Crear un elemento hint para proporcionar una sugerencia o pista.
Gramática
Hint(Icon,Title,Text)
-
Hint
-
Icon
Nombre del icono.
-
Title
Título rápido.
-
Text
Texto rápido.
-
Ejemplo
Hint(Icon: "icon-wrench",Title:$@1pa_settings$,Text: This is a hint text)
Declaración de condición.
Devuelve el primer elemento secundario de If o ElseIf que cumpla con la Condición. De lo contrario, devuelve los elementos secundarios de Else.
Gramática
If(Condition){ Body }
[.ElseIf(Condition){ Body }]
[.Else{ Body }]
-
If
-
Condition
Si la condición es igual a una empty string, 0, o false, se considera que no se cumple la condición. En todos los demás casos, se considera que la condición se cumple.
-
Body
elementos secundarios.
-
Ejemplo
If(#value#){
Span(Value)
}.ElseIf(#value2#){Span(Value 2)
}.ElseIf(#value3#){Span(Value 3)}.Else{
Span(Nothing)
}
Crear el elemento HTML imagen.
Gramática
Image(Src, Alt, Class)
[.Style(Style)]
-
Image
-
Src
Imagen de origen, archivo o
data:...
. -
Alt
Texto alternativo cuando no se puede mostrar una imagen.
-
Сlass
Nombre de la clase de imagen.
-
Ejemplo
Image(Src: Binary().ById(#id#), Class: preview).Style(height: 40px; widht 40px;)
Crear un elemento imageinput para cargar imágenes.
Gramática
ImageInput(Name, Width, Ratio, Format)
-
ImageInput
-
Name
Nombre del elemento.
-
Width
Ancho de recorte de la imagen.
-
Ratio
Relación de aspecto o altura de la imagen.
-
Format
El formato de carga de imágenes.
-
Ejemplo
ImageInput(avatar, 100, 2/1)
Inserta la plantilla con el nombre especificado en el código de la página.
Gramática
Include(Name)
-
Include
-
Name
Nombre de la plantilla.
-
Ejemplo
Div(myclass, Include(mywidget))
Crear el elemento HTML input.
Gramática
Input(Name, Class, Placeholder, Type, Value, Disabled)
[.Validate(validation parameters)]
[.Style(Style)]
-
Input
-
Name
Nombre del elemento.
-
Class
Nombre de la clase.
-
Placeholder
Mensaje de sugerencia para el valor esperado del campo de entrada.
-
Type
entrada tipo.
-
Value
Valor del elemento.
-
Disabled
Desactivar el elemento input.
-
-
Validate
Validación de parámetros.
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
Input(Name: name, Type: text, Placeholder: Enter your name)
Input(Name: num, Type: text).Validate(minLength: 6, maxLength: 20)
Crear el elemento inputerr para validar el texto de error.
Gramática
InputErr(Name,validation errors)]
-
InputErr
-
Name
Nombre del elemento correspondiente a Input.
-
validation errors
Mensaje de error de validación de uno o varios parámetros.
-
Ejemplo
InputErr(Name: name,
minLength: Value is too short,
maxLength: The length of the value must be less than 20 characters)
Create un campo de entrada de texto para la dirección. Proporcionar la funcionalidad de seleccionar coordenadas en el mapa.
Gramática
InputMap(Name, Type, MapType, Value)
-
InputMap
-
Name
Nombre del elemento.
-
Value
Valor predeterminado.
Este valor es un objeto en formato de cadena. Por ejemplo,
{"coords":[{"lat":number,"lng":number},]}
o{"zoom":int, "center":{"lat":number,"lng":number}}
.Cuando se crea un InputMap utilizando un valor predefinido Value, el campo de dirección puede ser utilizado para almacenar el valor de la dirección, por lo que el campo de dirección no estará vacío.
-
Type
Tipos de medición de puntos en el mapa:
- Polygon - representa un área cerrada de múltiples puntos;
- Line - representa una línea de múltiples puntos sin cerrar;
- Point - representa una sola coordenada.
-
MapType
Tipo de mapa.
Este parámetro tiene los siguientes valores:
hybrid
,roadmap
,satellite
,terrain
.
-
Ejemplo
InputMap(Name: Coords,Type: polygon, MapType: hybrid, Value: `{"zoom":8, "center":{"lat":55.749942860682545,"lng":37.6207172870636}}`)
Crear un elemento jsontosource y llenarlo con pares de clave-valor de un arreglo JSON. Los datos resultantes se colocan en el elemento Source, que luego se puede utilizar en una función de entrada de origen, como Table. Los registros en los datos resultantes se ordenan por orden alfabético de las claves JSON.
Gramática
JsonToSource(Source, Data)
-
JsonToSource
-
Source
Nombre de la fuente de datos.
-
Data
JSON object or variable name containing a JSON object (
#name#
).
-
Ejemplo
JsonToSource(src, #myjson#)
JsonToSource(dat, {"param":"value", "param2": "value 2"})
Crear el elemento HTML label.
Gramática
Label(Body, Class, For)
[.Style(Style)]
-
Label
-
Body
Subtexto o elemento.
-
Class
Nombre de la clase.
-
For
Vincular a un elemento de formulario específico.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
Label(The first item).
Devuelve el recurso de idioma especificado. Si se solicita la edición del árbol, devuelve el elemento langres, que se puede referenciar utilizando el símbolo de formato abreviado
Gramática
LangRes(Name)
-
LangRes
-
Name
Nombre de los recursos de lenguaje.
-
Ejemplo
LangRes(name)
LangRes(myres)
Crear un elemento linkpage que enlace a la página.
Gramática
LinkPage(Body, Page, Class, PageParams)
[.Style(Style)]
-
LinkPage
-
Body
Subtexto o elemento.
-
Page
Nombre de la página redirigida.
-
Class
Nombre de la categoría de botones.
-
PageParams
Parámetros de la página redirigida.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS
-
Ejemplo
LinkPage(Class: #style_link# h5 text-bold, Page: @1roles_view, PageParams: "v_role_id=#recipient.role_id#")
Create un mapa visual y muestra las coordenadas en cualquier formato.
Gramática
Map(Hmap, MapType, Value)
-
Map
-
Hmap
Altura de los elementos HTML en la página.
El valor predeterminado es 100.
-
Value
Valor del mapa, objeto en formato de cadena.
Por ejemplo,
{"coords":[{"lat":número,"lng":número},]}
o{"zoom":entero, "center":{"lat":número,"lng":número}}
.Si no se especifica
center
, la ventana del mapa se ajustará automáticamente en función de las coordenadas especificadas. -
MapType
Tipo de mapa.
Este parámetro tiene los siguientes valores:
hybrid
,roadmap
,satellite
,terrain
.
-
Ejemplo
Map(MapType:hybrid, Hmap:400, Value:{"coords":[{"lat":55.58774531752405,"lng":36.97260184619233},{"lat":55.58396161622043,"lng":36.973803475831005},{"lat":55.585222890513975,"lng":36.979811624024364},{"lat":55.58803635636347,"lng":36.978781655762646}],"area":146846.65783403456,"address":"Unnamed Road, Moscow, Russia, 143041"})
Crear un submenú anidado en el menú y devolver el elemento menugroup. Antes de usar la sustitución de recursos de idioma, el parámetro name devuelve el valor de Title.
Gramática
MenuGroup(Title, Body, Icon)
-
MenuGroup
-
Title
Nombre del elemento del menú.
-
Body
Elementos secundarios en un submenú.
-
Icon
Icono.
-
Ejemplo
MenuGroup(My Menu){
MenuItem(Interface, sys-interface)
MenuItem(Dahsboard, dashboard_default)
}
Crear un elemento de menú y devolver el elemento menuitem.
Gramática
MenuItem(Title, Page, Params, Icon)
-
MenuItem
-
Title
Nombre del elemento del menú.
-
Page
Nombre de la página redirigida.
-
Params
Parámetros de la página redirigida.
-
Icon
Icono.
-
Ejemplo
MenuItem(Title:$@1roles$, Page:@1roles_list, Icon:"icon-pie-chart")
Returna el valor de cadena de exp / 10 ^ digit.
Gramática
Money(Exp, Digit)
-
Money
-
Exp
Formato de cadena de números.
-
Digit
La expresión
exp/10^digit
tiene un exponente de 10, que puede ser positivo o negativo. Un valor positivo determina la cantidad de decimales después del punto decimal.
-
Ejemplo
Money(Exp, Digit)
La función devuelve el resultado de la operación lógica if con todos los argumentos listados entre paréntesis separados por comas. Si un argumento no es una cadena vacía, cero o false
, su valor es true
, de lo contrario su valor es false
.
Si el valor del argumento es true
, la función devuelve 1
, de lo contrario devuelve 0
.
Gramática
Or(parameters)
Ejemplo
If(Or(#myval1#,#myval2#), Span(OK))
Crear un elemento HTML p.
Gramática
P(Body, Class)
[.Style(Style)]
-
P
-
Body
Subtexto o elemento.
-
Class
Nombre de la clase.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
P(This is the first line.
This is the second line.)
Crea un código QR con el texto especificado y genera un elemento qrcode.
Gramática
QRcode(Text)
-
QRcode
-
Text
Código QR.
-
Ejemplo
QRcode(#name#)
Crear un elemento radiogroup.
Gramática
RadioGroup(Name, Source, NameColumn, ValueColumn, Value, Class)
[.Validate(validation parameters)]
[.Style(Style)]
-
RadioGroup
-
Name
Nombre del elemento.
-
Source
Desde la fuente de datos obtenida de la función DBFind o Data.
-
NameColumn
Nombre de campo de la fuente de datos.
-
ValueColumn
Nombre del valor de la fuente de datos.
Los campos creados con Custom no deben usarse en este parámetro.
-
Value
Valor predeterminado.
-
Class
Nombre de la clase.
-
-
Validate
Validación de parámetros.
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
RadioGroup(Name: type_decision, Source: numbers_type_decisions, NameColumn: name, ValueColumn: value)
Crear un elemento range, utilizando el paso Step desde From hasta To (sin incluir To) para rellenar elementos enteros. Los datos generados se colocarán en Source, que se puede utilizar más adelante en una función de entrada de origen (por ejemplo, Table). Si se especifican argumentos no válidos, se devolverá un Source vacío.
Gramática
Range(Source,From,To,Step)
-
Range
-
Source
Nombre de la fuente de datos.
-
From
Valor inicial (i = From).
-
To
Valor final (i < To).
-
Step
El paso de cambio de valor, si no se especifica este parámetro, es 1 por defecto.
-
Ejemplo
Range(my,0,5)
SetVar(from, 5).(to, -4).(step,-2)
Range(Source: neg, From: #from#, To: #to#, Step: #step#)
Crear un elemento HTML select.
Gramática
Select(Name, Source, NameColumn, ValueColumn, Value, Class)
[.Validate(validation parameters)]
[.Style(Style)]
-
Select
-
Name
Nombre de los elementos.
-
Source
-
NameColumn
Nombre de campo de la fuente de datos.
-
ValueColumn
Nombre del valor de la fuente de datos.
Los campos creados con Custom no deben usarse en este parámetro.
-
Value
Valor predeterminado.
-
Class
Nombre de la clase.
-
-
Validate
Validación de parámetros.
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
DBFind(mytable, mysrc)
Select(mysrc, name)
Crear un elemento settitle para establecer el título de la página.
Gramática
SetTitle(Title)
-
SetTitle
-
Title
Título de la página.
-
Ejemplo
SetTitle(My page)
Asignar el valor Value a la variable especificada Name.
Gramática
SetVar(Name, Value)
-
SetVar
-
Name
Variable name.
-
Value
Un valor de variable, que puede contener una referencia a otra variable.
-
Ejemplo
SetVar(name, John Smith).(out, I am #name#)
Span(#out#)
Crear un elemento HTML span.
Gramática
Span(Body, Class)
[.Style(Style)]
-
Span
-
Body
Subtexto o elemento.
-
Class
Nombre de la clase.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
This is Span(the first item, myclass1).
Crear el elemento HTML strong.
Gramática
Strong(Body, Class)
-
Strong
-
Body
Subtexto o elemento.
-
Class
Nombre de la clase.
-
Ejemplo
This is Strong(the first item, myclass1).
Obtener el valor de un parámetro específico en la tabla de parámetros de la plataforma (platform ecosystem).
Gramática
SysParam(Name)
-
SysParam
-
Name
Nombre del parámetro de la plataforma.
-
Ejemplo
SysParam(max_columns)
Crear el elemento HTML table.
Gramática
Table(Source, Columns)
[.Style(Style)]
-
Table
-
Source
El nombre del origen de datos especificado.
-
Columns
Título y nombres de columna correspondientes, por ejemplo:
Título1=columna1, Título2=columna2
.
-
-
Style
Especifique los estilos CSS.
-
Style
Estilos CSS.
-
Ejemplo
DBFind(mytable, mysrc)
Table(mysrc,"ID=id,Name=name")
La función busca una transacción por un valor de hash especificado y devuelve información sobre el contrato ejecutado y sus parámetros.
Gramática
TransactionInfo(Hash)
-
TransactionInfo
-
Hash
Formato de cadena hexadecimal de hash de transacción.
-
Valor de retorno
La función devuelve una cadena en formato JSON:
{"contract":"NombreDelContrato", "params":{"clave": "val"}, "block": "N"}
Donde:
- contract - Nombre del contrato;
- params - Datos que se pasan como parámetros al contrato;
- block - ID del bloque que procesa la transacción. Ejemplo
P(TransactionInfo(#hash#))
Asistente virtual: Asignar el valor Value a la variable especificada Name. El valor de la variable especificada es el nombre de la variable en lugar de su valor.
Para la versión con reemplazo de variables, consulte SetVar.
Gramática
VarAsIs(Name, Value)
-
VarAsIs
-
Name
Variable name.
-
Value
El valor de la variable, incluyendo el nombre de la variable dentro del valor, no será reemplazado. Por ejemplo, si Value es
ejemplo #nombredevariable#
, entonces el valor de la variable también seráejemplo #nombredevariable#
.
-
El valor de la variable, incluyendo el nombre de la variable dentro del valor, no será reemplazado. Por ejemplo, si Value es example #varname#
, entonces el valor de la variable también será example #varname#
.
Ejemplo
SetVar(Name,"John")
VarAsIs(name, I am #Name#)
Span(#name#) // I am #Name#
h1
...h6
.text-muted
.text-primary
.text-success
.text-info
.text-warning
.text-danger
.bg-danger-dark
.bg-danger
.bg-danger-light
.bg-info-dark
.bg-info
.bg-info-light
.bg-primary-dark
.bg-primary
.bg-primary-light
.bg-success-dark
.bg-success
.bg-success-light
.bg-warning-dark
.bg-warning
.bg-warning-light
.bg-gray-darker
.bg-gray-dark
.bg-gray
.bg-gray-light
.bg-gray-lighter
.row
.row.row-table
.col-xs-1
a.col-xs-12
solo se pueden usar dentro de.row.row-table
.
.panel
.panel.panel-heading
.panel.panel-body
.panel.panel-footer
.form-control
.btn.btn-default
.btn.btn-link
.btn.btn-primary
.btn.btn-success
.btn.btn-info
.btn.btn-warning
.btn.btn-danger
- Todos los iconos de la clase "fa" provienen de FontAwesome:
fa fa-<nombre-del-icono></nombre-del-icono>
. - Todos los iconos de la clase "icon" provienen de SimpleLineIcons:
icon-<nombre-del-icono>
.