Log message for revision 41621:
- fixed unicode issues in mail templates
- disabled password encryption
- updated cmf_default.pot
Changed:
U CMF/trunk/CHANGES.txt
U CMF/trunk/CMFDefault/RegistrationTool.py
U CMF/trunk/CMFDefault/locales/cmf_default.pot
U CMF/trunk/CMFDefault/setuphandlers.py
D CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt
A CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail.py
A CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail_template.pt
A CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail.py
A CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail_template.pt
D CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt
-=-
Modified: CMF/trunk/CHANGES.txt
===================================================================
--- CMF/trunk/CHANGES.txt 2006-02-14 20:30:28 UTC (rev 41620)
+++ CMF/trunk/CHANGES.txt 2006-02-14 21:47:30 UTC (rev 41621)
@@ -123,9 +123,9 @@
Bug Fixes
- - CMFDefault skins: Refactored 'logged_in' page and 'password_form'.
- 'logged_in' now redirects to the 'password_form' if a new member has to
- change her password.
+ - CMFDefault setuphandlers: Disabled password encryption.
+ 'registeredNotify' and 'mailPassword' don't work with encrypted
+ passwords.
- CMFDefault skins: Fixed clipboard data validation.
Split off validateClipboardData from folder_paste_control.
@@ -183,6 +183,15 @@
Others
+ - CMFDefault RegistrationTool and skins: Refactored mail creation.
+ 'mailPassword' now calls the 'member_password_mail' script and
+ 'registeredNotify' the 'member_registered_mail' script. These scripts
+ call the templates and do the necessary string decoding and encoding.
+
+ - CMFDefault skins: Refactored 'logged_in' page and 'password_form'.
+ 'logged_in' now redirects to the 'password_form' if a new member has to
+ change her password.
+
- Replaced deprecated 'manage_afterAdd' and 'manage_beforeDelete' hooks
in CookieCrumbler with a Z3-style event subscriber which does the
registration with the container's __before_traverse__.
Modified: CMF/trunk/CMFDefault/RegistrationTool.py
===================================================================
--- CMF/trunk/CMFDefault/RegistrationTool.py 2006-02-14 20:30:28 UTC (rev
41620)
+++ CMF/trunk/CMFDefault/RegistrationTool.py 2006-02-14 21:47:30 UTC (rev
41621)
@@ -18,6 +18,7 @@
import re
from AccessControl import ClassSecurityInfo
+from Acquisition import aq_base
from Globals import InitializeClass
from Products.CMFCore.RegistrationTool import RegistrationTool as BaseTool
@@ -130,12 +131,15 @@
# Rather than have the template try to use the mailhost, we will
# render the message ourselves and send it from here (where we
# don't need to worry about 'UseMailHost' permissions).
- mail_text = self.mail_password_template( self
- , REQUEST
- , member=member
- , password=member.getPassword()
- )
+ method = getattr(self, 'member_password_mail',
+ getattr(self, 'mail_password_template'))
+ kw = {'member': member, 'password': member.getPassword()}
+ if getattr(aq_base(method), 'isDocTemp', 0):
+ mail_text = method(self, self.REQUEST, **kw)
+ else:
+ mail_text = method(**kw)
+
host = self.MailHost
host.send( mail_text )
@@ -169,13 +173,15 @@
# Rather than have the template try to use the mailhost, we will
# render the message ourselves and send it from here (where we
# don't need to worry about 'UseMailHost' permissions).
- mail_text = self.registered_notify_template( self
- , self.REQUEST
- , member=member
- , password=password
- , email=email
- )
+ method = getattr(self, 'member_registered_mail',
+ getattr(self, 'registered_notify_template'))
+ kw = {'member': member, 'password': password, 'email': email}
+ if getattr(aq_base(method), 'isDocTemp', 0):
+ mail_text = method(self, self.REQUEST, **kw)
+ else:
+ mail_text = method(**kw)
+
host = self.MailHost
host.send( mail_text )
Modified: CMF/trunk/CMFDefault/locales/cmf_default.pot
===================================================================
--- CMF/trunk/CMFDefault/locales/cmf_default.pot 2006-02-14 20:30:28 UTC
(rev 41620)
+++ CMF/trunk/CMFDefault/locales/cmf_default.pot 2006-02-14 21:47:30 UTC
(rev 41621)
@@ -13,14 +13,14 @@
msgid ""
msgstr ""
"Project-Id-Version: CMF 2.0\n"
-"POT-Creation-Date: Fri Feb 10 13:04:50 2006\n"
+"POT-Creation-Date: Tue Feb 14 21:58:36 2006\n"
"Language-Team: CMF Developers <[EMAIL PROTECTED]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: CMFCore/RegistrationTool.py:144
-#: CMFDefault/RegistrationTool.py:80
+#: CMFDefault/RegistrationTool.py:81
msgid "The login name you selected is already in use or is not valid. Please
choose another."
msgstr ""
@@ -28,43 +28,43 @@
msgid "Intervening changes from elsewhere detected. Please refetch the
document and reapply your changes. (You may be able to recover your version
using the browser 'back' button, but will have to apply them to a freshly
fetched copy.)"
msgstr ""
-#: CMFDefault/RegistrationTool.py:118
-#: CMFDefault/RegistrationTool.py:152
+#: CMFDefault/RegistrationTool.py:119
+#: CMFDefault/RegistrationTool.py:156
msgid "The username you entered could not be found."
msgstr ""
-#: CMFDefault/RegistrationTool.py:124
+#: CMFDefault/RegistrationTool.py:125
msgid "That user does not have an email address."
msgstr ""
-#: CMFDefault/RegistrationTool.py:161
+#: CMFDefault/RegistrationTool.py:165
# Default: ""
msgid "No email address is registered for member: ${member_id}"
msgstr ""
-#: CMFDefault/RegistrationTool.py:54
+#: CMFDefault/RegistrationTool.py:55
msgid "You must enter a password."
msgstr ""
-#: CMFDefault/RegistrationTool.py:57
+#: CMFDefault/RegistrationTool.py:58
msgid "Your password must contain at least 5 characters."
msgstr ""
-#: CMFDefault/RegistrationTool.py:60
+#: CMFDefault/RegistrationTool.py:61
msgid "Your password and confirmation did not match. Please try again."
msgstr ""
-#: CMFDefault/RegistrationTool.py:77
+#: CMFDefault/RegistrationTool.py:78
msgid "You must enter a valid name."
msgstr ""
-#: CMFDefault/RegistrationTool.py:85
+#: CMFDefault/RegistrationTool.py:86
msgid "You must enter an email address."
msgstr ""
-#: CMFDefault/RegistrationTool.py:89
-#: CMFDefault/RegistrationTool.py:98
-#: CMFDefault/RegistrationTool.py:104
+#: CMFDefault/RegistrationTool.py:90
+#: CMFDefault/RegistrationTool.py:99
+#: CMFDefault/RegistrationTool.py:105
msgid "You must enter a valid email address."
msgstr ""
@@ -355,7 +355,7 @@
#: CMFDefault/skins/zpt_generic/main_template.pt:207
#: CMFDefault/skins/zpt_generic/main_template.pt:221
#: CMFDefault/skins/zpt_generic/main_template.pt:235
-#: CMFDefault/skins/zpt_generic/main_template.pt:270
+#: CMFDefault/skins/zpt_generic/main_template.pt:268
#: CMFDefault/skins/zpt_generic/review.pt:59
#: CMFDefault/skins/zpt_generic/roster.pt:46
#: CMFDefault/skins/zpt_generic/search_results_template.pt:37
@@ -1160,12 +1160,14 @@
#: CMFDefault/skins/zpt_generic/join_template.pt:59
#: CMFDefault/skins/zpt_generic/login_form.pt:24
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:27
#: CMFDefault/skins/zpt_generic/password_form_template.pt:26
msgid "Member ID"
msgstr ""
#: CMFDefault/skins/zpt_generic/join_template.pt:73
#: CMFDefault/skins/zpt_generic/login_form.pt:31
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:29
msgid "Password"
msgstr ""
@@ -1245,23 +1247,11 @@
msgid "Your password has been mailed. <br /> It should arrive in your mailbox
momentarily."
msgstr ""
-#: CMFDefault/skins/zpt_generic/mail_password_template.pt:12
-msgid "Your password: ${password}"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/mail_password_template.pt:17
-msgid "Request made by IP ${ip} at ${time}"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/mail_password_template.pt:4
-msgid "${portal_title}: Membership reminder"
-msgstr ""
-
#: CMFDefault/skins/zpt_generic/main_template.pt:199
msgid "Status:"
msgstr ""
-#: CMFDefault/skins/zpt_generic/main_template.pt:297
+#: CMFDefault/skins/zpt_generic/main_template.pt:295
msgid "Permanent Link:"
msgstr ""
@@ -1277,6 +1267,46 @@
msgid "search"
msgstr ""
+#: CMFDefault/skins/zpt_generic/member_password_mail_template.pt:13
+msgid "Request made by IP ${ip} at ${time}"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_password_mail_template.pt:2
+msgid "${portal_title}: Membership reminder"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_password_mail_template.pt:8
+msgid "Your password: ${password}"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:10
+msgid "You have been registered as a member of \"${portal_title}\", which
allows you to personalize your view of the website and participate in the
community."
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:15
+msgid "This describes the purpose of the website:"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:2
+msgid "${portal_title}: Your Membership Information"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:21
+msgid "Visit us at ${portal_url}"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:24
+msgid "Here is your login data (mind upper and lower case):"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:32
+msgid "You can use this URL to log in:"
+msgstr ""
+
+#: CMFDefault/skins/zpt_generic/member_registered_mail_template.pt:37
+msgid "Be aware that this URL might wrap over two lines. If your browser shows
an error message when you try to access the URL please make sure that you put
in the complete string."
+msgstr ""
+
#: CMFDefault/skins/zpt_generic/members_delete_template.pt:15
msgid "The following members - including all their data, home folders and
roles - are selected for deletion:"
msgstr ""
@@ -1561,34 +1591,6 @@
msgid "Charset used to decode portal content strings. If empty, 'ascii' is
used."
msgstr ""
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:16
-msgid "You have been registered as a member of \"${portal_title}\", which
allows you to personalize your view of the website and participate in the
community."
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:21
-msgid "This describes the purpose of the website:"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:27
-msgid "Visit us at ${portal_url}"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:35
-msgid "Your member id and password are: Member ID: ${member_id} Password:
${password}"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:38
-msgid "You can use this URL to log in:"
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:43
-msgid "Be aware that this URL might wrap over two lines. If your browser shows
an error message when you try to access the URL please make sure that you put
in the complete string."
-msgstr ""
-
-#: CMFDefault/skins/zpt_generic/registered_notify_template.pt:7
-msgid "${portal_title}: Your Membership Information"
-msgstr ""
-
#: CMFDefault/skins/zpt_generic/review.pt:106
msgid "There are no items matching your specified criteria."
msgstr ""
@@ -1625,27 +1627,27 @@
msgid "items"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:25
+#: CMFDefault/skins/zpt_generic/search_form.py:24
msgid "Ever"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:28
+#: CMFDefault/skins/zpt_generic/search_form.py:27
msgid "Last login"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:29
+#: CMFDefault/skins/zpt_generic/search_form.py:28
msgid "Yesterday"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:30
+#: CMFDefault/skins/zpt_generic/search_form.py:29
msgid "Last week"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:31
+#: CMFDefault/skins/zpt_generic/search_form.py:30
msgid "Last month"
msgstr ""
-#: CMFDefault/skins/zpt_generic/search_form.py:38
+#: CMFDefault/skins/zpt_generic/search_form.py:37
#: CMFDefault/skins/zpt_generic/folder_localrole_form.pt:38
msgid "Search"
msgstr ""
Modified: CMF/trunk/CMFDefault/setuphandlers.py
===================================================================
--- CMF/trunk/CMFDefault/setuphandlers.py 2006-02-14 20:30:28 UTC (rev
41620)
+++ CMF/trunk/CMFDefault/setuphandlers.py 2006-02-14 21:47:30 UTC (rev
41621)
@@ -32,5 +32,6 @@
return 'Various settings: Nothing to import.'
site.Members.manage_addProduct['OFSP'].manage_addDTMLMethod('index_html',
'Member list', '<dtml-return roster>')
+ site.acl_users.encrypt_passwords = False
return 'Various settings from PortalGenerator imported.'
Deleted: CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt
2006-02-14 20:30:28 UTC (rev 41620)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt
2006-02-14 21:47:30 UTC (rev 41621)
@@ -1,19 +0,0 @@
-<tal:page i18n:domain="cmf_default"
- tal:define="ptool context/portal_properties;
- member_email options/member/email | string:[EMAIL PROTECTED]"
->Subject: <tal:span i18n:translate=""><tal:span i18n:name="portal_title"
- tal:content="ptool/title" />: Membership reminder</tal:span>
-From: <tal:span
- tal:content="ptool/email_from_name" /> <tal:span
- tal:replace="structure string:<${ptool/email_from_address}>" />
-To: <tal:span tal:replace="structure string:<${member_email}>" />
-Content-Type: text/plain
-
-<tal:span i18n:translate="">Your password: <tal:span i18n:name="password"
- tal:content="options/password | default">baz</tal:span></tal:span>
-
-<tal:span i18n:translate="">Request made by IP <tal:span i18n:name="ip"
- tal:define="ip python:request.HTTP_X_FORWARDED_FOR or request.REMOTE_ADDR"
- tal:content="ip" /> at <tal:span i18n:name="time"
- tal:content="context/ZopeTime" /></tal:span>
-</tal:page>
Added: CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail.py
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail.py
2006-02-14 20:30:28 UTC (rev 41620)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail.py
2006-02-14 21:47:30 UTC (rev 41621)
@@ -0,0 +1,29 @@
+##parameters=tool=None, request=None, member=None, password='baz', **kw
+##
+from Products.CMFCore.utils import getToolByName
+from Products.CMFDefault.utils import decode
+
+atool = getToolByName(script, 'portal_actions')
+ptool = getToolByName(script, 'portal_properties')
+utool = getToolByName(script, 'portal_url')
+default_charset = ptool.getProperty('default_charset')
+portal_url = utool()
+
+
+options = {}
+
+email_from_name = ptool.getProperty('email_from_name')
+email_from_address = ptool.getProperty('email_from_address')
+options['portal_address'] = '%s <%s>' % (email_from_name, email_from_address)
+member_address = member and member.email or '[EMAIL PROTECTED]'
+options['member_address'] = '<%s>' % member_address
+options['content_type'] = 'text/plain; charset=%s' % default_charset
+
+options['portal_title'] = ptool.title()
+options['password'] = password
+
+rendered = context.member_password_mail_template(**decode(options, script))
+if isinstance(rendered, unicode):
+ return rendered.encode(default_charset)
+else:
+ return rendered
Property changes on:
CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Copied: CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail_template.pt
(from rev 41610,
CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt)
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/mail_password_template.pt
2006-02-12 18:07:46 UTC (rev 41610)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/member_password_mail_template.pt
2006-02-14 21:47:30 UTC (rev 41621)
@@ -0,0 +1,15 @@
+<tal:page i18n:domain="cmf_default"
+>Subject: <tal:span i18n:translate=""><tal:span i18n:name="portal_title"
+ tal:content="options/portal_title" />: Membership reminder</tal:span>
+From: <tal:span tal:replace="structure options/portal_address" />
+To: <tal:span tal:replace="structure options/member_address" />
+Content-Type: <tal:span tal:replace="structure options/content_type" />
+
+<tal:span i18n:translate="">Your password: <tal:span i18n:name="password"
+ tal:content="options/password | default">baz</tal:span></tal:span>
+
+<tal:span i18n:translate="">Request made by IP <tal:span i18n:name="ip"
+ tal:define="ip python:request.HTTP_X_FORWARDED_FOR or request.REMOTE_ADDR"
+ tal:content="ip" /> at <tal:span i18n:name="time"
+ tal:content="context/ZopeTime" /></tal:span>
+</tal:page>
Added: CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail.py
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail.py
2006-02-14 20:30:28 UTC (rev 41620)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail.py
2006-02-14 21:47:30 UTC (rev 41621)
@@ -0,0 +1,37 @@
+##parameters=tool=None, request=None, member=None, password='baz',
email='[EMAIL PROTECTED]', **kw
+##
+from Products.CMFCore.utils import getToolByName
+from Products.CMFDefault.utils import decode
+
+atool = getToolByName(script, 'portal_actions')
+ptool = getToolByName(script, 'portal_properties')
+utool = getToolByName(script, 'portal_url')
+default_charset = ptool.getProperty('default_charset')
+portal_url = utool()
+
+
+options = {}
+
+email_from_name = ptool.getProperty('email_from_name')
+email_from_address = ptool.getProperty('email_from_address')
+options['portal_address'] = '%s <%s>' % (email_from_name, email_from_address)
+options['member_address'] = '<%s>' % email
+options['content_type'] = 'text/plain; charset=%s' % default_charset
+
+options['portal_title'] = ptool.title()
+options['portal_description'] = ptool.getProperty('description')
+options['portal_url'] = portal_url
+
+member_id = member and member.getId() or 'foo'
+options['member_id'] = member_id
+options['password'] = password
+
+target = atool.getActionInfo('user/login')['url']
+options['login_url'] = '%s' % target
+options['signature'] = email_from_name
+
+rendered = context.member_registered_mail_template(**decode(options, script))
+if isinstance(rendered, unicode):
+ return rendered.encode(default_charset)
+else:
+ return rendered
Property changes on:
CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail.py
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Copied:
CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail_template.pt (from
rev 41610, CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt)
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt
2006-02-12 18:07:46 UTC (rev 41610)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/member_registered_mail_template.pt
2006-02-14 21:47:30 UTC (rev 41621)
@@ -0,0 +1,44 @@
+<tal:page i18n:domain="cmf_default"
+>Subject: <tal:span i18n:translate=""><tal:span i18n:name="portal_title"
+ tal:content="options/portal_title"
+ />: Your Membership Information</tal:span>
+From: <tal:span tal:replace="structure options/portal_address" />
+To: <tal:span tal:replace="structure options/member_address" />
+Content-Type: <tal:span tal:replace="structure options/content_type" />
+
+<tal:span i18n:translate=""
+>You have been registered as a member of "<tal:span i18n:name="portal_title"
+ tal:content="options/portal_title" />", which
+allows you to personalize your view of the website and participate in the
+community.</tal:span>
+<tal:case tal:condition="options/portal_description">
+<tal:span i18n:translate=""
+>This describes the purpose of the website:</tal:span>
+
+<tal:span tal:content="options/portal_description" />
+</tal:case>
+<tal:span i18n:translate=""
+>Visit us at <tal:span i18n:name="portal_url"
+ tal:content="options/portal_url" /></tal:span>
+
+<tal:span i18n:translate=""
+>Here is your login data (mind upper and lower case):</tal:span>
+
+<tal:span i18n:translate=""
+>Member ID</tal:span>: <tal:span tal:content="options/member_id" />
+<tal:span i18n:translate=""
+>Password</tal:span>: <tal:span tal:content="options/password" />
+
+<tal:span i18n:translate=""
+>You can use this URL to log in:</tal:span>
+
+<tal:span tal:content="options/login_url" />
+<tal:case tal:condition="python:len(options['login_url'])>70">
+<tal:span i18n:translate=""
+>Be aware that this URL might wrap over two lines. If your browser shows an
+error message when you try to access the URL please make sure that you put
+in the complete string.</tal:span>
+</tal:case>
+
+<tal:span tal:content="options/signature" />
+</tal:page>
Deleted: CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt
===================================================================
--- CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt
2006-02-14 20:30:28 UTC (rev 41620)
+++ CMF/trunk/CMFDefault/skins/zpt_generic/registered_notify_template.pt
2006-02-14 21:47:30 UTC (rev 41621)
@@ -1,50 +0,0 @@
-<tal:page i18n:domain="cmf_default"
- tal:define="atool context/portal_actions;
- ptool context/portal_properties;
- utool nocall:context/portal_url;
- member_email options/member/email | string:[EMAIL PROTECTED];
- login_url python:atool.getActionInfo('user/login')['url']"
->Subject: <tal:span i18n:translate=""><tal:span i18n:name="portal_title"
- tal:content="ptool/title" />: Your Membership Information</tal:span>
-From: <tal:span
- tal:content="ptool/email_from_name" /> <tal:span
- tal:replace="structure string:<${ptool/email_from_address}>" />
-To: <tal:span tal:replace="structure string:<${member_email}>" />
-Content-Type: text/plain
-
-<tal:span i18n:translate=""
->You have been registered as a member of "<tal:span i18n:name="portal_title"
- tal:content="ptool/title" />", which
-allows you to personalize your view of the website and participate in the
-community.</tal:span>
-<tal:case tal:condition="ptool/description">
-<tal:span i18n:translate=""
->This describes the purpose of the website:</tal:span>
-
-<tal:span tal:content="ptool/description" />
-</tal:case>
-<tal:span i18n:translate=""
->Visit us at <tal:span i18n:name="portal_url"
- tal:content="utool" /></tal:span>
-
-<tal:span i18n:translate=""
->Your member id and password are:
-
-Member ID: <tal:span i18n:name="member_id"
- tal:content="options/member/getId | default">foo</tal:span>
-Password: <tal:span i18n:name="password"
- tal:content="options/password | default">baz</tal:span></tal:span>
-
-<tal:span i18n:translate=""
->You can use this URL to log in:</tal:span>
-
-<tal:span tal:content="login_url" />
-<tal:case tal:condition="python:len(login_url)>70">
-<tal:span i18n:translate=""
->Be aware that this URL might wrap over two lines. If your browser shows an
-error message when you try to access the URL please make sure that you put
-in the complete string.</tal:span>
-</tal:case>
-
-<tal:span tal:content="ptool/email_from_name" />
-</tal:page>
_______________________________________________
CMF-checkins mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/cmf-checkins