z3c.formwidget.ckeditor zapewnia widget CKEditor dla biblioteki z3c.form. Zapewnia również RichText pole schematu, co czyni korzystanie z CKEditor całkowicie przezroczysty.
Szczegółowe Dokumentacja
RichText Pola i CKEditor Widgety
Ten pakiet zapewnia nowe pole o nazwie RichText, co jest prostym rozszerzeniem pola tekstu domyślnego. Pole RichText oświadcza, że zawiera znaczniki HTML jako część swojego tekstu.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z z3c.formwidget.ckeditor importu Richtext
Warto więc stworzyć bogate pole tekstowe:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; text = richtext.RichText (__ __ = nazwa "tekst")
Załóżmy teraz sprawdzić, czy pole tekstowe zawiera schemat i bogaty tekst:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; import zope.schema
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z importu zope.interface sprawdzenia
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z interfejsów importu z3c.formwidget.ckeditor
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyObject (interfaces.IRichText, tekst)
& Nbsp; prawda
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyObject (zope.schema.interfaces.IText, tekst)
& Nbsp; prawda
Następnie widget jest edytować pole tekstowe bogaty. Używa CKEditor.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z interfejsów importu z3c.formwidget.ckeditor, CKEditor
CKEditorWidget jest widget:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z z3c.form.interfaces importować IWidget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyClass (interfaces.ICKEditorWidget, ckeditor.CKEditorWidget)
& Nbsp; prawda
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; verify.verifyClass (IWidget, ckeditor.CKEditorWidget)
& Nbsp; prawda
Widget może spowodować, pola wejściowego tylko poprzez dostosowanie wniosku:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z z3c.form.testing importu TestRequest
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; Żądanie = TestRequest ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget = ckeditor.CKEditorWidget (wniosek)
Taki widget zapewnia IWidget:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; IWidget.providedBy (widget)
& Nbsp; prawda
Dodajmy znaczące dane ogólne:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.id = "id"
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.name = "nazwa"
Jeśli świadczymy widget dostajemy kod HTML:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; wydrukować widget.render ()
CKEDITOR.replace ("nazwa", {});
Jak widać, na początku, CK Editor jest tworzony z wszystkich domyślnych ustawień. Można to zmienić, modyfikując atrybut config na widget.
Jeśli atrybut config jest ciąg, jest interpretowany jako nazwa zmiennej JavaScript. Zmienne muszą być zadeklarowane wcześniej.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = "myCKEditorConfig"
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; wydrukować widget.render ()
CKEDITOR.replace ("nazwa", myCKEditorConfig);
Alternatywnie, może być atrybut config Słownik opcji, które są wpisane do JavaScript na czas renderowania:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = {'Pasek': 'podstawowe', 'uiColor': '# 9AB8F3'}
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; wydrukować widget.render ()
CKEDITOR.replace ("nazwa", {"uiColor": "# 9AB8F3", "pasek narzędzi": "Basic"});
Wszystkie inne wartości powoduje ValueError.
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.config = 3
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; Traceback (najnowsze połączenie ostatni):
& Nbsp; ...
& Nbsp; ValueError: ("Nieprawidłowy przedmiot config", 3)
Widget pole do pola tekstowego dostępny jest zbyt bogata oczywiście:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; import zope.component
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; z z3c.form.interfaces importować IFieldWidget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget = zope.component.getMultiAdapter ((tekst, wniosek), IFieldWidget)
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; wydrukować widget.render ()
CKEDITOR.replace ("tekst", {});
Można również tworzyć fabryki CKEditor Pole Widget w locie przy użyciu danej konfiguracji:
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; MinimalCKEditorWidget = ckeditor.CKEditorFieldWidgetFactory (
& Nbsp; ... {'Pasek': 'podstawowe', 'uiColor': '# 9AB8F3'})
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget = MinimalCKEditorWidget (tekst, wniosek)
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; widget.update ()
& Nbsp; > & Nbsp; > & Nbsp; > & Nbsp; wydrukować widget.render ()
CKEDITOR.replace ("tekst",
& Nbsp; {"uiColor": "# 9AB8F3", "pasek narzędzi": "Basic"});
Co nowego w tym wydaniu:
- Dodano wsparcie dla Pythona 3.3.
- Zastąpiony przestarzałe zope.interface.implements Wykorzystanie o równoważnym zope.interface.implementer dekoratora.
- Usunięto wsparcie dla Pythona 2.4 i 2.5.
Co nowego w wersji 1.1.0:.
- Ulepszony CKEditor do 3.5.2
- ostrzeżenia Usunięto amortyzacyjne.
Wymagania :
- Python
Komentarze nie znaleziono