integrando plone con cualquier cosa
DESCRIPTION
Charla presentada en el Simposio Sudamericano de Plone 2009 donde se presentan distintos enfoques para integrar Plone con otras aplicaciones y frameworks desde las capas: modelo y vista por medio de contentmirror y deliverance respectivamente.TRANSCRIPT
![Page 1: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/1.jpg)
Integrando Plone con
cuAlquier cosa
Roberto [email protected]
http://robertoallende.comhttp://twitter.com/robertoallendehttp://menttes.com
menttes
![Page 2: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/2.jpg)
Ustedes
![Page 3: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/3.jpg)
Operating System Wars
LinuxMac
WindowsWindows
![Page 4: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/4.jpg)
Plone OS Way
Linux + PloneMac + Plone
Windows + Plone
![Page 5: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/5.jpg)
Text Editor Wars
VimEmacsEclipse
Windows
![Page 6: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/6.jpg)
Plone text editor Way
Vim + PloneEmacs + PloneEclipse + Plone
![Page 7: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/7.jpg)
Browser Wars
FirefoxSafariOpera
ChromeIE
![Page 8: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/8.jpg)
Plone Browser Way
Firefox + PloneSafari + PloneOpera + Plone
Chrome + PloneIE + Plone
![Page 9: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/9.jpg)
Cómo integramos Plonecon otras aplicaciones o tecnologías
?Windows
![Page 10: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/10.jpg)
Integrar Plone con cualquier cosa
Matt HamiltonCarlos de la Guardia
Roberto Allende → (integrador)
Windows
![Page 11: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/11.jpg)
Windows
Presentación
Model / Datos
![Page 12: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/12.jpg)
Windows
Presentación
Caso 1: Moodle + .Net + Plone
![Page 13: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/13.jpg)
xdvtheme.inventions
PLONERecusos Estaticos
HTML / CSS
Deliverance / Collective.XDV
![Page 14: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/14.jpg)
Pintandole los labios al puerco
Dynamically re-skinning a legacy .NET portal with python
Matt [email protected]
![Page 15: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/15.jpg)
Introduction
Dynamically re-skinning a .NET portal site Can't name the client Portal for teachers in the UK Aggregating content across legacy portal,
Plone and Moodle
![Page 16: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/16.jpg)
Existing Portal (1.0)
Five years old by November 2009 User registrations: 46,681 Course enrolments: 33,664 Resource Bank views: 247,911
![Page 17: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/17.jpg)
Existing Portal (1.0)
![Page 18: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/18.jpg)
Problems with Current Portal Look-and-feel
→ Not very compelling Usability
→ Challenging in places A poor content management system
→ Can't really edit general content, so use a separate FTP server and Dreamweaver
Vendor lock-in→ Even small changes, very expensive
![Page 19: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/19.jpg)
The Future - Portal 2.0
Usability, Design and Content Review April 2008
Strategic Review August 2008 Feasibility Studies Jan 2009 Pilot Demonstrator (“Portal V1.5”) March 2009
![Page 20: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/20.jpg)
Design Review
![Page 21: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/21.jpg)
Architecture Review
Portal 1.0 - Monolithic, tightly coupled, poor separation of skin
![Page 22: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/22.jpg)
Architecture Review
Portal 2.0 - Extensible, loosely coupled, good separation of skin
![Page 23: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/23.jpg)
How Do We Get There?
Remember: We Can't Touch the Existing System!
![Page 24: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/24.jpg)
The Cunning Plan
Skin 1.0
Portal 1.0
ExistingPortal Module
of functionality e.g. portfolio
Browser
![Page 25: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/25.jpg)
Total Skin Graft!
Portal 1.5
New skin via xpath and xslt
transformation.
Web server
needs to handle
SSL.
Together they give us nice URLs.
Skin 1.0
web server
transformation proxy
Skin 2.0
Browser
![Page 26: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/26.jpg)
Deliverance
Several Different Projects→ xdv→ Deliverance 0.3
To learn more on specifics of Deliverance go to http://deliverance.openplans.org
![Page 27: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/27.jpg)
Result
Old→ 70kb of HTML→ 120 Validation errors, 61 warnings
New→ 40Kb of HTML→ 27 Errors, 1 warning (mainly xhtml/html conflicts)→ No significant performance impact
![Page 28: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/28.jpg)
Putting all togetherComposite:main
pipeline:portal pipeline:plone pipeline:moodle
theme.content
navmerger
plonecontent
source.plone
theme.content
xslt
linkrewrite
htmlcleaner
theme.content
navmerger
moodlecontent
source.moodle
source.portal
![Page 29: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/29.jpg)
End ResultNew Style
Portal content
![Page 30: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/30.jpg)
Caso 2: Coactivate
![Page 31: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/31.jpg)
Coactivate: Plone
![Page 32: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/32.jpg)
Coactivate: Wordpress
![Page 33: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/33.jpg)
xdvtheme.inventions
<proxy path="/news" class="inner"> <dest href="http://localhost:55000/VirtualHostBase/
{wsgi.url_scheme}/{HTTP_HOST}/mysite/news/VirtualHostRoot" /> </proxy>
<rule class="inner" suppress-standard="1"> <theme href="/static/inner.html" />
![Page 34: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/34.jpg)
Caso 3: collective XDV
![Page 35: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/35.jpg)
xdvtheme.inventions
![Page 36: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/36.jpg)
xdvtheme.inventions
<rules xmlns="http://openplans.org/deliverance"> <!-- title --> <replace content='/html/head/title' theme='/html/head/title' />
<!-- content area -->
<copy content='//*[@id="content"]' theme='//*[@id="leftcolumn"]' /> <copy content='//*[@id="portal-globalnav"]' theme='//*[@id="links"]' />
<!-- Portlets --> <copy content='//*[@id="portal-column-two"]' theme='//*[@id="rightcolumn"]' /> <drop content='//*/dl/dd/a/img' /> </rules>
![Page 37: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/37.jpg)
xdvtheme.inventions
![Page 38: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/38.jpg)
xdvtheme.inventions
![Page 39: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/39.jpg)
http://plone.org/products/xdvtheme.inventions/
![Page 40: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/40.jpg)
Windows
Presentación
Model / Datos
Deliverance
ContentMirror
![Page 41: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/41.jpg)
Plone + salesforce ?
![Page 42: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/42.jpg)
Plone + jython + java ?
![Page 43: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/43.jpg)
Plone + ironpython ?
![Page 44: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/44.jpg)
Plone + ironpython + mono ?
![Page 45: Integrando Plone con cualquier cosa](https://reader036.vdocuments.net/reader036/viewer/2022081414/5483f0efb47959ce0c8b4a50/html5/thumbnails/45.jpg)
Muchas gracias
Roberto Allendementtes
http://robertoallende.com
http://twitter.com/robertoallende
http://menttes.com