manifest.xml é o arquivo de configuração do widget, é obrigatório. Através dele definem-se dados como a tag do widget, parâmetros, template principal entre outros. 

Estrutura

<?xml version="1.0" encoding="utf-8" ?>
<package>
    <widgets>
        <!-- Validar se não tem caracteres estranhos no campo "tagName" -->
        <!-- Validar, deve ter um componentRef, se não tiver, então o default "WidgetComponent" deve ser utilizado -->
        <!-- Se o campo "folder" está vazio, então deve ser utilizado "tagName" como o nome da pasta -->
        <!-- Para não ficar repetindo os paths, fazer com que os campos "icon" e "template" procurem dentro da pasta folder, e não achar procura no zip -->

        <widget
            category="general"
            component="WidgetComponent"
            description="Exemplo de plugin"
            folder="my.widget"
            icon="my.widget\image\icon.gif"
            isPreLoad="False"
            jsHandler="MyWidget"
            tagName="my_widget"
            template="wd.my.widget.template"
            title="Exemplo de plugin"
            widgetName="Exemplo de plugin"
        >

            <!-- <property defaultValue="valor default" friendlyName="Propriedade 1" name="Prop1" required="false" type="Text" visibility="Server" />
            <property defaultValue="" friendlyName="Propriedade 2" name="Prop2" required="false" type="Number" visibility="Server" />
            <property defaultValue="" friendlyName="Propriedade 3" name="Prop3" required="true" type="Enum" visibility="Client">
                <options>
                    <option friendlyName="option 1" value="1" />
                    <option friendlyName="option 2" value="2" />
                    <option friendlyName="option 3" value="3" />
                </options>
            </property> -->

            <include relativePath="Scripts/wd.my.widget.js" type="Javascript" />
            <include relativePath="Styles/wd.my.widget.css" type="StyleSheet" />

        </widget>
    </widgets>
</package>

Informações principais

  • category: categoria do widget. O valor padrão é "general" 
  • component: componente de dados do widget. 
  • description: Breve descrição do widget 
  • folder: nome da pasta do widget. Este nome é utilizado para clonar a pasta do widget e customizar os templates dentro do tema. 
  • icon: ícone usado apenas dentro do painel administrativo da plataforma 
  • isPreLoad: seu valor padrão é "true". 
  • Esta propriedade ficará obsoletajsHandler: nome (único) de registro do widget para o JavaScript. Caso seja utilizado um valor incorreto, o script do widget que depende desse manipulador não executará 
  • tagName: tag utilizada para chamar o widget via liquid dentro do template. Estrutura recomendada: 
    • nome_do_widget em letras minúsculas, sem caracteres especiais e com termos separados por _ (underline) 
    • template: nome do template principal. Sempre termina com .template 
    • title: título do widget 
    • widgetName: nome do widget

Propriedades 

  • defaultValue: valor padrão da propriedade 
  • frieldlyName: nome amigável da propriedade. É exibido ao incluir widgets em áreas pelo Configurar Design 
  • name: nome utilizado para chamar o parâmetro via liquid no template 
  • required: indica se o parâmetro é obrigatório
  • type: tipo do parâmetro. Pode ser "Text" (Texto), "Number" (Número), "Boolean" (true ou false) ou "Enum" (lista de opções) 
  • visibility: visibilidade do parâmetro. Pode ser "Client" (acessível via JavaScript pelo this.options do widget) ou "Server" (acessível via liquid no template)

Assets 

Utiliza-se a tag include informando no "relativePath" o caminho do arquivo e no "type" o tipo de asset ("JavaScript" ou "StyleSheet") 

Tipos de componente

Os dados do componente estão disponíveis para uso no template (liquid) através do objeto ComponentData. No caso do tipo WidgetComponent, o ComponentData será um objeto vazio.

WidgetComponent É o componente de dados padrão. Indica que o widget irá utilizar os contextos globais.

Componente Próprio Indica que o widget possui um componente com dados próprios para serem utilizados por ele.

Parâmetros globais

Nome
 
Descrição
 
Tipo
 
WidgetBox
 
Exibir Box?
 
Boolean
 
WidgetBox
 
Classe CSS Padrão
 
Texto
 
WidgetClass
 
Classe CSS Alternativa
 
Boolean
 
WidgetTitle
 
Título
 
Texto
 
Template
 
Template principal
 
Texto 
 

Importante!

Com o parâmetro Template  é possível definir um template alternativo para substituir o principal. Esta é uma das formas possíveis de customização. Veja aqui mais informações sobre customização de widgets.


  • Sem rótulos