Metadata-Version: 1.1
Name: z3c.formwidget.ckeditor
Version: 2.0.0a1
Summary: A CKEditor widget for text fields using z3c.form
Home-page: http://pypi.python.org/pypi/z3c.formwidget.ckeditor
Author: Stephan Richter and the Zope Community
Author-email: zope-dev@zope.org
License: ZPL 2.1
Description: This package provides a CKEditor widget for the `z3c.form` library. It also
        provides a `RichText` schema field, which makes the usage of CKEditor
        completely transparent.
        
        
        Detailed Documentation
        **********************
        
        ====================================
        RichText Fields and CKEditor Widgets
        ====================================
        
        This package a provides a new field called `RichText`, which is a simple
        extension to the default `Text` field. The `RichText` field declares that it
        contains HTML-markup as part of its text.
        
          >>> from z3c.formwidget.ckeditor import richtext
        
        So let's create a rich text field:
        
          >>> text = richtext.RichText(__name__='text')
        
        Let's now verify that the field provides the text and rich text schema:
        
          >>> import zope.schema
          >>> from zope.interface import verify
          >>> from z3c.formwidget.ckeditor import interfaces
        
          >>> verify.verifyObject(interfaces.IRichText, text)
          True
          >>> verify.verifyObject(zope.schema.interfaces.IText, text)
          True
        
        Next, a widget is provided to edit the rich text field. It uses the CKEditor.
        
          >>> from z3c.formwidget.ckeditor import interfaces, ckeditor
        
        The ``CKEditorWidget`` is a widget:
        
          >>> from z3c.form.interfaces import IWidget
        
          >>> verify.verifyClass(interfaces.ICKEditorWidget, ckeditor.CKEditorWidget)
          True
          >>> verify.verifyClass(IWidget, ckeditor.CKEditorWidget)
          True
        
        The widget can render an input field only by adapting a request:
        
          >>> from z3c.form.testing import TestRequest
          >>> request = TestRequest()
          >>> widget = ckeditor.CKEditorWidget(request)
        
        Such a widget provides ``IWidget``:
        
          >>> IWidget.providedBy(widget)
          True
        
        Let's add some meaningful generic data:
        
          >>> widget.id = 'id'
          >>> widget.name = 'name'
        
        If we render the widget we get the HTML:
        
          >>> widget.update()
          >>> print(widget.render())
          <textarea id="id" name="name" class="CKEditorWidget"></textarea>
          <script type="text/javascript">CKEDITOR.replace('name', {});</script>
        
        As you can see, initially, CK Editor is instantiated with all its
        defaults. This can be changed by modifying the `config` attribute on the
        widget.
        
        If the `config` attribute is a string, it is interpreted as a JavaScript
        variable name. The variable must be declared beforehand.
        
          >>> widget.config = 'myCKEditorConfig'
          >>> widget.update()
          >>> print(widget.render())
          <textarea id="id" name="name" class="CKEditorWidget"></textarea>
          <script type="text/javascript">CKEDITOR.replace('name', myCKEditorConfig);</script>
        
        Alternatively, the config attribute can be a dictionary of options, which are
        encoded to Javascript upon render time:
        
          >>> widget.config = '{"toolbar": "Basic", "uiColor": "#9AB8F3"}'
          >>> widget.update()
          >>> print(widget.render())
          <textarea id="id" name="name" class="CKEditorWidget"></textarea>
          <script type="text/javascript">CKEDITOR.replace('name', {"toolbar": "Basic", "uiColor": "#9AB8F3"});</script>
        
        All other values cause a `ValueError` to be raised.
        
          >>> widget.config = 3
          >>> widget.update()
          Traceback (most recent call last):
          ...
          ValueError: ('Invalid config object', 3)
        
        The field widget for the rich text field is available too of course:
        
          >>> import zope.component
          >>> from z3c.form.interfaces import IFieldWidget
        
          >>> widget = zope.component.getMultiAdapter((text, request), IFieldWidget)
          >>> widget
          <CKEditorWidget 'text'>
        
          >>> widget.update()
          >>> print(widget.render())
          <textarea id="text" name="text"
                    class="CKEditorWidget required richtext-field"></textarea>
          <script type="text/javascript">CKEDITOR.replace('text', {});</script>
        
        You can also create CKEditor Field Widget factories on the fly using a given
        configuration:
        
          >>> MinimalCKEditorWidget = ckeditor.CKEditorFieldWidgetFactory(
          ...     '{"toolbar": "Basic", "uiColor": "#9AB8F3"}')
        
          >>> widget = MinimalCKEditorWidget(text, request)
          >>> widget.update()
          >>> print(widget.render())
          <textarea id="text" name="text"
                    class="CKEditorWidget required richtext-field"></textarea>
          <script type="text/javascript">CKEDITOR.replace('text',
               {"toolbar": "Basic", "uiColor": "#9AB8F3"});</script>
        
        
        =======
        CHANGES
        =======
        
        
        2.0.0a1 (2013-03-04)
        --------------------
        
        - Added support for Python 3.3.
        
        - Replaced deprecated ``zope.interface.implements`` usage with equivalent
          ``zope.interface.implementer`` decorator.
        
        - Dropped support for Python 2.4 and 2.5.
        
        
        1.1.0 (2011-03-02)
        ------------------
        
        - Upgraded CKEditor to 3.5.2.
        
        - Removed deprecation warnings.
        
        
        1.0.0 (2009-11-03)
        ------------------
        
        - Initial Release
        
Keywords: zope3 form widget ckeditor text
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Zope3
