z3c.formwidget.ckeditor fornece um widget CKEditor para a biblioteca z3c.form. Ele também fornece um campo RichText esquema, o que torna o uso de CKEditor completamente transparente.
Documentação detalhada
RichText Campos e CKEditor Widgets
Este pacote fornece um novo campo chamado RichText, que é uma simples extensão para o campo de texto padrão. O campo RichText declara que contém HTML-marcação como parte de seu texto.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z3c.formwidget.ckeditor de importação richtext
Então vamos criar um campo rich text:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; text = richtext.RichText (__ __ nome = 'text')
Vamos agora verificar que o campo oferece o esquema de texto e rich text:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; zope.schema importação
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; de importação zope.interface verificar
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; das interfaces de importação z3c.formwidget.ckeditor
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyObject (interfaces.IRichText, texto)
& Nbsp; Verdadeira
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyObject (zope.schema.interfaces.IText, texto)
& Nbsp; Verdadeira
Em seguida, um widget é fornecido para editar o campo de texto rico. Ele usa o CKEditor.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; a partir de interfaces de importação z3c.formwidget.ckeditor, ckeditor
O CKEditorWidget é um widget:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; de z3c.form.interfaces importar iwidget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyClass (interfaces.ICKEditorWidget, ckeditor.CKEditorWidget)
& Nbsp; Verdadeira
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyClass (iwidget, ckeditor.CKEditorWidget)
& Nbsp; Verdadeira
O widget pode tornar um campo de entrada apenas pela adaptação de um pedido:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; de z3c.form.testing TestRequest importação
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; request = TestRequest ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; Widget = ckeditor.CKEditorWidget (request)
Tal widget fornece iwidget:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; IWidget.providedBy (widget)
& Nbsp; Verdadeira
Vamos adicionar alguns dados genéricos significativa:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.id = 'id'
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.name = 'nome'
Se processar o widget temos o HTML:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; imprimir widget.render ()
CKEDITOR.replace ('name', {});
Como você pode ver, inicialmente, CK Editor está instanciado com todos os seus padrões. Isto pode ser alterado modificando o atributo de configuração no widget.
Se o atributo de configuração é uma string, ele é interpretado como um nome de variável JavaScript. A variável deve ser declarado de antemão.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = 'myCKEditorConfig'
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; imprimir widget.render ()
CKEDITOR.replace ('name', myCKEditorConfig);
Alternativamente, o atributo de configuração pode ser um dicionário de opções, que são codificados para Javascript sobre o tempo de renderização:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = {'barra': 'Básico', 'UIColor': '# 9AB8F3'}
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; imprimir widget.render ()
CKEDITOR.replace ('name', {"UIColor": "# 9AB8F3", "barra de ferramentas": "Basic"});
Todos os outros valores de causar uma ValueError a ser levantada.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = 3
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; Traceback (most recent call last):
& Nbsp; ...
& Nbsp; ValueError: ('objeto de configuração inválido', 3)
O Widget de campo para o campo rich text está disponível também, é claro:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; zope.component importação
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; de z3c.form.interfaces importar IFieldWidget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; Widget = zope.component.getMultiAdapter ((texto, pedido), IFieldWidget)
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; Widget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; imprimir widget.render ()
CKEDITOR.replace ('texto', {});
Você também pode criar fábricas CKEditor Campo Widget em tempo real usando uma determinada configuração:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; MinimalCKEditorWidget = ckeditor.CKEditorFieldWidgetFactory (
& Nbsp; ... {'barra de ferramentas': 'Básico', 'UIColor': '# 9AB8F3'})
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; Widget = MinimalCKEditorWidget (texto, pedido)
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; imprimir widget.render ()
CKEDITOR.replace ('texto',
& Nbsp; {"UIColor": "# 9AB8F3", "barra de ferramentas": "Basic"});
O que é novo nesta versão:
- Adicionado suporte para Python 3.3.
- Substituído preterido uso zope.interface.implements com decorador zope.interface.implementer equivalente.
- retirou o suporte para Python 2.4 e 2.5.
O que é novo na versão 1.1.0:.
- CKEditor Atualizado para 3.5.2
- avisos deprecation removido.
Requisitos :
- Python
Comentários não encontrado