1. Let’s ecommerce together
and feel Plone right
One Love! One Love! What about the one heart? Sayin': One Love!
One Heart! One Heart! What about the One Heart?
Let's get together and feel all right. What about? (One Heart! )
Hear the children cryin' Let's get together and feel all right What about the?
(One Love! ); As it was in the beginning Let's get together and feel all right.
Hear the children cryin' (One Love! ); I'm pleadin' to mankind!
(One Heart! ), So shall it be in the end (One Love! );
Sayin': give thanks and praise (One Heart! ), Oh, Lord!
To the Lord and I will feel all right; All right! (One Heart)
Sayin': let's get together Give thanks and praise to the Lord Wo-ooh!
And feel all right. And I will feel all right;
Wo wo-wo wo-wo! Let's get together Give thanks and praise to the Lord
And feel all right. And I will feel all right;
Let them all pass all their dirty One more thing! Let's get together and feel all right.
Remarks (One Love! ); Give thanks and praise to the Lord
There is one question Let's get together to fight And I will feel all right;
I'd really love to ask (One Heart! ): This Holy Armagiddyon (One Love! ), Let's get together and feel all right.
Is there a place for the hopeless So when the Man comes there will be
sinner, no,
Who has hurt all mankind just No doom (One Song! ).
To save his own beliefs? Have pity on those whose
Chances grows t'inner;
There ain't no hiding place
From the Father of Creation.
Alessandro Pisa - 2012/10/12 - Arnhem Plone Conference 2012
15. Shared members
Register:
✔ on one site
✔ available in the other
Huge work:
✔ login
✔ registration
✔ catalog...
16. Shared members
Register:
✔ on one site
✔ available in the other
Data split in ZODB and SQL
Products.Archetypes.Storage.StorageLayer
Huge work:
✔ login
✔ registration
✔ catalog...
17. Members: solutions
Shared user base:
First ZODB
Then ZODB (per site) + SQL (shared)
SQL Fields
Products.Archetypes.Storage.StorageLayer
caching!
30. Fight for your right
The things you own end up owning you
31. Validation: formlib
from zope.schema import ValidationError
class NotMyEmailError(ValidationError):
"""email has to be alessandro.pisa@redturtle.it!
"""
def is_my_email(value):
if value!='alessandro.pisa@redturtle.it':
raise NotMyEmailError
else:
return True
32. Validation: Archetype
from Products.validation.interfaces.IValidator import IValidator
from Products.validation import validation
from my.custom.product import is_my_email
class FormlibValidatorWrapper(object):
implements(IValidator)
def __init__(self, validator):
self.validator = validator
self.name = validator.func_name
def __call__(self, value, *args, **kwargs):
try:
self.validator(value)
except ValidationError, error:
return error.doc()
validation.register(FormlibValidatorWrapper(is_my_email))