Llegó el momento de afilar sus lapices. Herramientas de autor, poniendo su sitio Plone en modo de depuración, cómo crear un producto de tema (para trabajar en el sistema de archivos).
Si está trabajando con el sistema de archivos, puede usar cualquier editor de texto para escribir las plantillas, archivos de configuración (xml, zcml) y las pequeñas cantidades de códigos en Python que necesitará.
Usted puede encontrar los siguiente útil:
Tendrá que revisar esto en el collective svn; instrucciones de cómo hacer esto pueden encontrarse en http://svn.plone.org. Además hay una versión para Windows de Textmate (http://www.e-texteditor.com/).
Una ruta rápida y sucia para encontrar que hay de malo con una plantilla que haya escrito usted mismo, es personalizarla a través de la Interfaz de Administración de Zope. Sin embargo usted también puede configurar su propia revisión, para correrla antes de que instale una plantilla en su sitio:
esto es un poco complejo si no se siente cómodo con Python, pero vale la pena el esfuerzo a largo plazo.
Algo un poco más avanzado que el Bloc de notas le dará el resaltado de código para Python. Encontrará una lista completa aquí:
Si le apetece usar un IDE (Del inglés Integrated Development Environments), tiene un montón de opciones, aunque estas están directamente orientadas al desarrollo de Python más que a la escritura de plantillas para personalización:
Otros IDE incluyen Wing (http://www.wingware.com/), BoaConstructor y Komodo (http://www.activestate.com/Products/komodo_ide/index.mhtml).
Es inevitable no hacer las cosas bien la primera vez, por lo que necesita asegurarse de que su sitio está funcionando en modo de depuración.
Plone empaqueta todos su archivos CSS dentro de uno o dos archivos para eficiencia mediante el uso de un registro de recurso (para más información de cómo funciona revise la sección CSS y JavaScript a la página). Es mucho más fácil ver lo que está haciendo, si usted desactiva esta función cuando está diseñando. Puede hacer lo mismo para JavaScript.
Si esta creando su propio producto de tema, se dará cuenta que es útil correr Zope en modo de depuración. Esto se configura en el archivo zope.conf el cual puede encontrar en /etc en su instancia Zope. simplemente quite el # de esta linea:
#debug-mode = on
si está utilizando buildout, puede configurarlo en buildout.cfg:
[instance]
debug-mode = on
Igualmente deberá reiniciar de tanto en tanto, aunque los cambios en la Skin de su tema hechos sobre el sistema de archivo se actualizarán inmediatamente.
Cambios a.... | A través de la Web | En el Sistema de archivos |
---|---|---|
Componentes | Debe verlos inmediatamente | Reinicie Zope |
Skins | Debe verlos inmediatamente | Ejecute Zope en modo de depuración |
Hojas de estilo y JavaScript | Cambie portal_css y portal_javascripts a depuración | Cambie portal_css y portal_javascripts a depuración |
Configuración | Debe verlos inmediatamente | Reinstale el producto con el quick installer (instalador rápido) |
Plone trae un modulo de reporte de errores - PloneErrorReporting. Cuando usted crea un sitio Plone, esta característica estará lista para instalarse
Asegúrese de desinstalarla antes de ponga el sitio en modo de producción.
Si usted está haciendo un trabajo extenso componentes del sistema, pronto se cansará de reiniciar Zope. plone.reload le ahorrará tiempo. Agreguelo a su configuración de buildout como cualquier otro huevo, vuelva a ejecutar buildout y verá que puede recargar su código a través de su navegador.
Si usted desea trabajar sobre el sistema de archivos, aquí está la magia que necesita para sostenerse sobre un cimiento de archivos y códigos
Si usted desea trabajar sobre el sistema de archivos, aquí está la magia que necesita para sostenerse sobre un cimiento de archivos y códigos
Esta sección lo guiará a través del proceso requerido para crear su propio tema en el sistema de archivos y la instalación de este en su propio sitio Plone.
Las buena noticia es que usted mismo no tiene que escribir grandes cantidades de código para crear el marco de su tema en el sistema de archivos, usted puede usar un generador (Paster from ZopeSkel) para que haga el trabajo por usted. Este le dará un directorio que contiene un conjunto previamente preparado de directorios y archivos,que puede aumentar o reescribir con sus propias personalizaciones.
La manera más rápida y eficiente de comenzar no es creando las carpetas de su tema y asociando los archivos hechos desde cero, sino tomando ventaja del generador de un producto el cual le creará el marco automáticamente para el producto de tema, basado en las respuestas que proporcione a unas preguntas interactivas.
Nuevos usuarios se pueden sentir más cómodos usando una herramienta a través de la web, que le permita generar un producto de tema. Una herramienta como se encuentra en http://paster.joelburton.com/. Es posible que desee hacer referencia a parte de la información a continuación, para obtener más detalles sobre lo que está sucediendo a medida que responde estas preguntas.
Usuarios que se sienten más cómodos usando la línea de comandos, tienen la tendencia a usar una herramienta llamada ZopeSkel las plantillas Paster que contiene. ZopeSkel es una colección de plantillas PasteScript las cuales pueden usarse para generar rápidamente Zope y Plone como buildouts, productos de arquetipos, y lo que más nos interesa, temas de Plone.
Para determinar si usted tiene Paster y ZopeSkel instalado, en la línea de comandos pruebe con:
$ paster create --list-templates
o para verificar si Paster o ZopeSkel han sido instalados en el Python que vino con su instalación Plone (de la versión 3.2 en adelante)
$ [ruta a su buildout]/python-[version]/paster create --list-templates
Si “plone3_theme” no está en la lista de plantillas disponibles, tendrá entonces que instalar Paster y/o ZopeSkel, como lo explica Daniel Nouri.
Si tiene Paster y ZopeSkel instalados, navegue al directorio donde le gustaría crear su producto (nosotros recomendamos [your buildout]/[zinstance|zeocluster/src]) y ejecute de la línea de comandos:
$ paster create -t plone3_theme plonetheme.mytheme
o si tiene Paster en su instalación Plone:
$ [ruta a su buildout]/python-[version]/paster create -t plone3_theme plonetheme.mytheme
Esto iniciará una serie de preguntas por el script de Paster. Las predeterminadas son verdaderamente apropiadas para su primer tema, así en la mayoría de los casos simplemente presione enter. este es un ejemplo del resultado de una sesión interactiva.
Selected and implied templates:
ZopeSkel#basic_namespace A project with a namespace package
ZopeSkel#plone A Plone project
ZopeSkel#plone3_theme A Theme for Plone 3.0
Variables:
egg: plonetheme.mytheme
package: plonethememytheme
project: plonetheme.mytheme
Enter namespace_package (Namespace package (like plonetheme)) ['plonetheme']:
Enter package (The package contained namespace package (like example)) ['example']:mytheme
Enter skinname (The skin selection to be added to 'portal_skins' (like 'My Theme')) ['']:My Theme
Enter skinbase (Name of the skin selection from which the new one will be copied) ['Plone Default']:
Enter empty_styles (Override default public stylesheets with empty ones?) [True]: False
Enter include_doc (Include in-line documentation in generated code?) [False]:True
Enter zope2product (Are you creating a Zope 2 Product?) [True]:
Enter version (Version) ['1.0']:
Enter description (One-line description of the package) ['An installable theme for Plone 3.0']:
Enter long_description (Multi-line description (in reST)) ['']:
Enter author (Author name) ['Plone Collective']:
Enter author_email (Author email) ['product-developers@lists.plone.org']:
Enter keywords (Space-separated keywords/tags) ['web zope plone theme']:
Enter url (URL of homepage) ['http://svn.plone.org/svn/collective/']:
Enter license_name (License name) ['GPL']:
Enter zip_safe (True/False: if the package can be distributed as a .zip file) [False]:
Usted no puede utilizar la tecla de “borrar” para corregir un error de escritura durante la sesión interactiva. Si comente un error entonces presione ctrl-c para detener el script y empiece nuevamente.
Algunas de estas preguntas requieren una explicación más detallada:
Notas informativas sobre los cambios entre Plone 2.5 y Plone 3.
Productos, en el lenguaje de Plone, son análogos a los módulos o extensiones para otras aplicaciones. En el paso de Plone 2.5 a Plone 3, varios cambios importantes se hicieron para la forma en que Plone manipula productos. En primer lugar, algunos productos comenzaron a ser empaquetados como huevos de Python, lo que los hizo más fáciles de administrar, distribuir e instalar. En segundo lugar, los productos comenzaron a utilizar GenericSetup (Instalación genérica) como medio para la instalación. Y en tercer lugar, los productos incorporan cada vez más tecnologías Zope 3 (Z3) tales como vistas del explorador.
Un huevo python es simplemente un conjunto de archivos y directorios los cuales constituyen un paquete de python. Estos huevos simplemente pueden comprimirse, en tal caso aparecen como un sólo archivo *.egg, o pueden descomprimirse. Huevos poseen un concepto y función similar a archivos JAR de Java.
Los huevos son instalados a través de los marcos setuptools, un proyecto paralelo de Python Enterprise Application Kit (Peak: Kit de Aplicación de Empresa de Python) que provee administración y distribución para paquete (y dependencia).
Si está usando un control de versiones, querrá agregar *.egg-info y *.pyc a los patrones ignorados en su instalación, para que los metadatos del huevo y archivos python compilados no sean añadidos a su repositorio.
GenericSetup (GS) es una herramienta para la configuración de administración del sitio en Plone usando archivos xml. GS permite exportar las personalizaciones de un sitio Plone e importarlos a otro. Y hasta cierto punto, la GS sustituye al QuickInstaller Portal (portal de instalación rápida) (QI) posterior a Plone 2.5 en las que GS se puede utilizar para instalar los productos. En productos que dependen de la GS, encontramos archivos de configuración XML. En productos que utilizan versiones anteriores, importante QI para la instalación, nos encontramos en comparación con métodos de instalación escritos en python.
Tenga en cuenta que GenericSetup actualmente no le permite deshacer el perfil aplicado durante la instalación. Puede desinstalar su tema usando el Quickinstaller, no obstante, asumiendo que un método para desinstalar está presente.
Ya que nuestro producto de tema base utiliza GenericSetup para instalarse así mismo, en breve estaremos configurando archivos xml requeridos por la GS.
A pesar de cualquier confusión con cualquier versión número-inducida, recuerde que Plone 3 funciona con Zope 2. Zope 3 es una versión dramáticamente cambiada de Zope 2, y algunas funcionalidades de Zope 3 se han trabajado (Backport) para que funcionen con Zope 2. Para un completa explicación de las tecnologías Zope 3 involucradas, consulte este tutorial:
Estructura del directorio y explicación de la funcionalidad de todos estos archivos.
Asumiendo que usted haya creado su producto de tema con éxito, usted debería tener una estructura de directorios que se ve más o menos así:
plonetheme.mytheme
docs
HISTORY.txt
INSTALL.txt
LICENSE.GPL
LICENSE.txt
MANIFEST.in
plonetheme
__init__.py
mytheme
__init__.py
browser
__init__.py
configure.zcml
images
README.txt
interfaces.py
stylesheets
main.css
README.txt
viewlet.pt
viewlets.py
configure.zcml
profiles
default
cssregistry.xml
import_steps.xml
jsregistry.xml
metadata.xml
plonetheme.mytheme_various.txt
skins.xml
viewlets.xml
profiles.zcml
setuphandlers.py
skins
plonetheme_mytheme_custom_images
CONTENT.txt
plonetheme_mytheme_custom_templates
CONTENT.txt
plonetheme_mytheme_styles
base.css.dtml
base_properties.props
CONTENT.txt
portlets.css.dtml
public.css.dtml
skins.zcml
tests.py
version.txt
plonetheme.mytheme-configure.zcml
plonetheme.mytheme.egg-info
dependency_links.txt
entry_points.txt
namespace_packages.txt
not-zip-safe
paster_plugins.txt
PKG-INFO
requires.txt
SOURCES.txt
top_level.txt
README.txt
setup.cfg
setup.py
zopeskel.txt
En este punto las cosas pueden parecer un poco complicadas pero no se preocupe. Miremos con más detenimiento los archivos principales y directorios de acuerdo a sus respectivas funciones.
Una vez que tenga el producto de tema posicionado, el próximo paso es modificar las piezas que Plone le otorga, específicamente plantillas, stylesheets, y viewlets.
Si modifica plantillas de páginas, no necesitará reiniciar Zope para que los cambios surtan efecto. Sin embargo, cambios a Python, XML o ZCML, si requieren reiniciar.
- Personalización para desarrolladores
- Un breve recorrido de las personalizaciones de Plone 3 por Martin Aspeli.
En esta sección, examinaremos como instalar temas de base-huevo usando buildout. En relación a Plone 3.1.2, todos los instaladores Plone crean un buildout que contiene su instancia Plone. Al instalar o desarrollar temas, buildout es muy recomendable.
Para instalar el producto de tema creado en la práctica 1:
En primer lugar, si todavía no está ahí, copie su producto de tema a [your buildout]/[zinstance|zeocluster]/src (en el caso de que este directorio no exista, puede crearlo usted mismo)
Luego, usando un editor de texto, edite su buildout.cfg (lo encontrará en [your buildout]/[zinstance|zeocluster]) y agregue la siguiente información dentro del buildout, y secciones de ZCML. El archivo buildout.cfg real será mucho más largo que los fragmentos de código a continuación:
[buildout]
develop =
src/plonetheme.mytheme
[instance]
eggs =
...
plonetheme.mytheme
zcml =
...
plonetheme.mytheme
La última línea le indica al buildout que genere un fragmento de ZCML (slug) que le dice a Zope que reconozca su producto de tema. Los puntos [...] indican que usted puede tener líneas adicionales de código ZCML aquí.
Nota
Puede que tenga que vaciar la caché del navegador Web para que surtan los efectos de la instalación del producto.
La deinstalación se puede hacer en la “Configuración del sitio” / en la página “Add/Remove Products” (Agregar/remover productos) , pero sólo si usted utilizá esta misma pantalla (‘Add/Remove Products’ screen) para la instalación. No todos los temas se desinstalan correctamente, pero la reinstalación del tema Plone Default generalmente soluciona cualquier problema.
En esta sección, revisaremos cómo instalar un tema de Plone que haya descargado de Plone.org/products, PyPi, etc. También vamos a mostrar cómo se puede distinguir entre un producto estilo-viejo de 2.5 de uno nuevo base- huevo.
Hay dos tipos de productos de temas: nuevos productos base-huevo , y viejos productos de tema que se encuentran en el “magical Products namespace” (“espacio de nombres mágico de productos”) . El tipo de producto el tema con cual está trabajando determina los pasos que debe seguir para instalar el tema. Ahora veamos cómo distinguir la diferencia entre ambos.
Primero tenemos que entender el significado de base-huevo. Si el tema, cuando se descomprime, es nombrado “plonetheme.loquesea”, o si genera un tema nuevo usando la receta Paster y responde “yes” a la pregunta “is this a Zope2 product” (¿Es este un producto Zope2?), pues su producto es base-huevo. O incluso una manera más sencilla es saber si su carpeta root contiene setup.py, si está el archivo entonces es un huevo. En un típico producto de tema base-huevo, setup.py lucirá más o menos así. en donde el texto resaltado es el nombre del huevo.
from setuptools import setup, find_packages
version = '1.1'
setup(name='webcouturier.icompany.theme',
[...]
Si el producto parece como si hubiera sido creado mediante DIYPloneStyle 3.x (ahora desactualizado), este está almacenado en namespace. También puede constatar que está trabajando con un tema en Products namespace si no hay setup.py en la carpeta root.
Recomendamos usar buildout para instalar un producto base-huevo. Puede decidir si quiere descargar el paquete usted mismo o dejar que buildout lo haga por usted. En caso de la primera opción, siga las instrucciones en la sección previa. Si desea dejar el tema de la descarga al buildout, la configuración de este es más simple:
[configuration here]
Si otro paquete depende del huevo de tema o tiene su ZCML directamente, no es necesario especificar nada en la configuración del buildout, ya que lo detectará automáticamente. Esto se considera un tema más avanzado. Igualmente, si el tema de huevo depende de otro producto, el buildout se encargará de esto también.
Siempre que el producto de tema sea un tema más viejo de 3.x y que se encuentra en el namespace de los Productos, todo lo que tiene que hacer es localizar el producto de tema en el directorio del buildout “products/” y reiniciar su instancia Zope. No hay necesidad de volver a ejecutar el buildout, porque no hemos cambiado ningún código ZCML.
Entonces, después de que su Zope se ha reiniciado, vaya a la página de “Configuración del sitio” en la interfaz de Plone y haga clic en el enlace “Añadir/Eliminar productos”. El área de “Configuración del sitio” también se le conoce como plone_control_panel, ya que esta es la URL utilizada para acceder a “Configuración del sitio”.
Escoja el producto seleccionando la casilla que aparece junto a ella y haga clic en el botón de instalar.
Temas más viejos en el namespace de Productos pueden aparecer dos veces en el portal_quickinstaller, pero esto es un bug (error) que ha sido arreglado en una versión más reciente de ZopeSkel. Usted puede ignorar el bug o solucionarlo mediante la eliminación de esta línea de su archivo de producto de tema configure.zcml para luego reiniciar su instancia Zope.
<five:registerPackage package="." initialize=".initialize" />
Nota
Puede que tenga que vaciar la caché del navegador Web para que surtan los efectos de la instalación del producto.
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.
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.