Hola Mundo en Plone 3

Introducción

Este es tutorial trata de explicar como crear un Plone Theme product para Plone 3 usando las plantillas de ZopeSkel y explica como generar un programa típico Hola Mundo para Plone como una view llamado hello como una vista de aplicación.

Instalación

Puedes instalar ZopeSkel usando pip (es recomendable hacerlo dentro de un entorno virtual):

$ pip install 'ZopeSkel==2.21.2'

Debe crear una configuración zc.buildout para una instancia de Zope para Plone 3 usando el comando paster, ejecutando los siguientes comando:

$ paster create --template plone3_buildout plone3.buildout
$ cd plone3.buildout
$ python bootstrap.py
$ ./bin/buildout -vN

Más opciones con el siguiente comando:

$ paster create --list-template

Cree un Plone Theme en su carpeta src/ dentro de su proyecto plone 3 llamado plone3.buildout, con los siguientes comando:

$ cd src
$ paster create --template plone3_theme collective.mydemoapp

Acceder a la carpeta browser/ de su paquete collective.mydemoapp y cree un archivo Python con el nombre hello.py

$ cd collective.mydemoapp/collective/mydemoapp/
$ vim ./browser/hello.py

Más opciones con el siguiente comando:

$ paster addcontent --list-all

Edite su Vista controladora en el archivo hello.py de la siguiente forma:

from Products.Five import BrowserView

class HelloWorld(BrowserView):
    """
    Hello word browser view, as simple string
    """

    def __init__(self, context, request):
        self.context = context
        self.request = request

    def __call__(self):
        return "hello word"

Edite su configuración ZCML en el configure.zcml de la siguiente forma:

<browser:page
    name="hello"
    for="*"
    class=".hello.HelloWorld"
    permission="zope2.Public"
   />

Edite su configuración Buildout en el buildout.cfg de la siguiente forma:

[buildout]
...
eggs =
    ...
    collective.mydemoapp
    ...
...
zcml =
    ...
    collective.mydemoapp
    ...
...
develop =
    ...
    src/collective.mydemoapp
    ...

Reconstruye la instancia de Zope y Plone 3, ejecutando el siguiente comando:

$ ./bin/buildout -vN

Iniciar instancia Zope

./bin/instance fg

Acceda a su sitio Plone Configuración del sitio ‣ Complementos ‣ Custom Theme ‣ Activar

Para finalizar acceda por su navegador a la siguiente dirección: http://localhost:8080/Plone/hello

Y de esta forma ya tiene generado una vista generada desde Python y otra vista generada de Python y incrustada en la diagramación de Plone generado con los localcommand de la plantilla plone3_theme del paquete ZopeSkel.

Ejemplo de un viewlet básico

  • Accede al archivo de la clase Python viewlet browser/viewlets.py generado en este paquete y quiete el comentario la pieza de código disponible allí (clase de Python viewlet).

    from plone.app.layout.viewlets.common import ViewletBase
    from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
    
    class MyHelloWorldViewlet(ViewletBase):
        render = ViewPageTemplateFile('myhelloworldviewlet.pt')
    
        def update(self):
            self.computed_value = 'Hello world'
            self.company = 'Plone Fundation'
    
  • Renombra el archivo plantilla viewlet ubicado en browser/viewlet.pt a browser/myviewlet.pt y si es necesario edite el código Python acorde a la plantilla viewlet.

    <div align="center">
      <span tal:content="view/computed_value|nothing" />,
      <b tal:content="view/company|nothing" />
    </div>
    
  • Edite la clase y la plantilla asegurándose que cumpla lo que necesita.

  • Asegúrese que su viewlet este correctamente registrado en el browser/configure.zcml.

    <browser:viewlet
        name="collective.mydemoapp.helloworld""
        manager="plone.app.layout.viewlets.interfaces.IPortalFooter"
        class=".viewlets.MyHelloWorldViewlet"
        layer=".interfaces.IThemeSpecific"
        permission="zope2.View"
        />
    
  • Si usted necesito que aparezca en un orden especifico dentro de un viewlet manager, entonces edite profiles/default/viewlets.xml acordemente.

  • Reinicie su instancia Zope, ejecutando el siguiente comando:

    $ ./bin/buildout -vN
    
  • Si usted edito algún archivo en la carpeta profiles/default/, debe reiniciar su paquete.

  • Una ves que este feliz con su implementación viewlet, remueva cualquier documentación relacionada en su clase y plantilla viewlet.

Descarga código fuente

Para descargar el código fuente de este ejemplo ejecute el siguiente comando:

$ git clone https://github.com/macagua/collective.mydemoapp.git collective.mydemoapp

Conclusiones

Este ejemplo ofrece un acercamiento a crear productos Plone desde una Views y un Viewlets dentro de un manager viewlet.

los comentarios son proporcionados por Disqus

Editar este documento

El código fuente de este archivo esta hospedado en GitHub. Todos pueden actualizar y corregir errores en este documento con unos clic - sin necesidad de descargar.

  1. Vaya hacia el articulo Hola Mundo en Plone 3 en GitHub.
  2. Presione el botón Fork. Este creara su propia copia personal de la documentación.
  3. Edite los archivos usando el editor de texto de GitHub desde su navegador Web
  4. Rellene en la caja de texto Commit message al final de la pagina indicando por que usted realizo estos cambios. Presione el botón Propose file change próximo a ese cuando haya finalizado.
  5. Luego diríjase a la página Send a pull request (no será necesario rellenar ningún texto adicional). Sólo tiene que pulsar el botón Send pull request.
  6. Sus cambios serán consultados por un revisor dentro de la pestaña Pull requests del proyecto en Github.

Para mas información básica acerca de como actualizar este manual y referencia a sintaxis Sphinx, por favor consulte la guía Escribiendo y actualizando el manual.