Yet another Android screencast wrote in Qt (desktop application) as an alternative for the orginal android screencast in java.
Features:
Yet another Android screencast wrote in Qt (desktop application) as an alternative for the orginal android screencast in java.
Features:
The default editor in the MT 5.12 is really hard to use. Fortunately, There are many alternatives.
CCKEditor is a fantasity/free/opensource WYSIWYG html editor fo your.
There is a plugin for you to use CKEditor in MT. Home page is here
wget https://github.com/downloads/usualoma/ckeditor-for-mt/CKEditor-1.074.tgz
tar xvf CKEditor-1.074.tgz
cd CKEditor-1.074
cp mt-static/plugins/CKEditor /path/to/mt/mt-static/plugins/
cp plugins/CKEditor /path/to/mt/plugins/
Open your website/cgi-bin/mt/mt.cgi in the browser. MT will prompt for install new plugin, follow the step which will automaticly install and enable CKEditor your.
Then start write new entry, CKEditor is here for you, enjoy it.
I’m suffering a date time issue in the Plone’s MailHost, which send out a mail in a 16 hours offset out while my time zone is set to Etc/GMT+8.
A mail send out at 2012/01/10 5:39 PM, will received as send out at 2012/01/10 1:39 AM, it’s wild for me and most others.
Now, I’m trying to finger out what was happen.
In the Plone 4.x, all product source is located in the ‘buildout-cache/eggs/’ of your zope instance root dir.
Plone use MailHost to send out mail, which is at:
Products.MailHost-2.13.1-py2.6.egg/Products/MailHost/MailHost.py
396 def _mungeHeaders(messageText, mto=None, mfrom=None, subject=None,
397 charset=None, msg_type=None):
398 “”"Sets missing message headers, and deletes Bcc.
399 returns fixed message, fixed mto and fixed mfrom”"”
The _mungeHeaders() will check your headers, if there is no “Date” field, it will add one for you:
465 if not mo.get(‘Date’):
466 mo['Date'] = DateTime().rfc822()
The DateTime() comes from:
DateTime-2.12.6-py2.6.egg/DateTime/DateTime.py
and the rfc822() will format the date time as RFC822 required in the section ’5. DATE AND TIME SPECIFICATION’. more info.. in refs:
1506 def rfc822(self):
1507 “”"Return the date in RFC 822 format.”"”
1508 tzoffset = _tzoffset2rfc822zone(_tzoffset(self._tz, self._t))
1509 return ‘%s, %2.2d %s %d %2.2d:%2.2d:%2.2d %s’ % (
1510 self._aday,self._day,self._amon,self._year,
1511 self._hour,self._minute,self._nearsec,tzoffset)
While the time stamp of the standard content in the plone 4 is right after I set the TZ toEtc/GMT+8 in the base.cfg , I’ll investigate how the document by line use the DateTime to get right result.
The document by line is from:
plone.app.layout-2.1.12-py2.6.egg/plone/app/layout/viewlets/document_byline.pt
30 <span class=”documentModified”>
31 <span i18n:translate=”box_last_modified”>
32 last modified
33 </span>
34 <span tal:replace=”python:view.toLocalizedTime(context.ModificationDate(),long_format=1)”>
35 August 16, 2001 at 23:35:59
36 </span>
37 </span>
which from
plone.app.layout-2.1.12-py2.6.egg/plone/app/layout/viewlets/content.py
33 class DocumentBylineViewlet(ViewletBase):
34
35 index = ViewPageTemplateFile(“document_byline.pt”)
…
95 def toLocalizedTime(self, time, long_format=None, time_only = None):
96 “”"Convert time to localized time
97 “”"
98 util = getToolByName(self.context, ‘translation_service’)
99 return util.ulocalized_time(time, long_format, time_only, self.context,
100 domain=’plonelocales’)
101
where is ModificationDate is set:
Products.CMFDefault-2.2.2-py2.6.egg/Products/CMFDefault/DublinCore.py
108 security.declareProtected(ModifyPortalContent, ‘setModificationDate’)
109 def setModificationDate(self, modification_date=None):
110 “”" Set the date when the resource was last modified.
111
112 When called without an argument, sets the date to now.
113 “”"
114 if modification_date is None:
115 self.modification_date = DateTime()
116 else:
117 self.modification_date = self._datify(modification_date)
118
Products.CMFPlone-4.1.2-py2.6.egg/Products/CMFPlone/TranslationServiceTool.py
19 from i18nl10n import ulocalized_time
…
26 class TranslationServiceTool(PloneBaseTool, UniqueObject, SimpleItem):
27 “”" Utility methods to access the translation machinery “”"
28
…
84 security.declarePublic(‘ulocalized_time’)
85 def ulocalized_time(self, time, long_format=None, time_only = None, context=None,
86 domain=’plonelocales’, request=None):
87 # get some context if none is passed
88 if context is None:
89 context = self
90 return ulocalized_time(time, long_format, time_only, context, domain, request)
91
Products.CMFPlone-4.1.3-py2.6.egg/Products/CMFPlone/i18nl10n.py
96 # unicode aware localized time method (l10n)
97 def ulocalized_time(time, long_format=None, time_only=None, context=None,
98 domain=’plonelocales’, request=None):
which is very complicate…
date_format_long:
plone.app.locales-4.0.9-py2.6.egg/plone/app/locales/locales/en/LC_MESSAGES/plonelocales.po
16
17 #. The variables used here are the same as used in the strftime formating.
18 #. Supported are ${A}, ${a}, ${B}, ${b}, ${H}, ${I}, ${m}, ${d}, ${M}, ${p},
19 #. ${S}, ${Y}, ${y}, ${Z}, each used as variable in the msgstr.
20 #. For example: “${A} ${d}. ${B} ${Y}, ${H}:${M} ${Z}”
21 #. In english speaking countries default is:
22 #. ${b} ${d}, ${Y} ${I}:${M} ${p}
23 #: ./TranslationServiceTool.py
24 msgid “date_format_long”
25 msgstr “${b} ${d}, ${Y} ${I}:${M} ${p}”
26
We can use ‘long_format’ parameter to pass format what we want.
Reference:
Time in Python: http://docs.python.org/library/time.html
RFC2822: Date and Time spec http://tools.ietf.org/html/rfc2822.html#section-3.3
Mail date Issue 12458: https://dev.plone.org/ticket/12458
Please follow the instruction at: Plone Logging
Install ImageDriver for MovableType on the Ubuntu:
apt-get install libgraphics-magick-perl
apt-get install imagemagick
apt-get install perlmagick
In the Plone 4.x, You can change the Timezone of the Plone/Zope by modify the instance/base.cfg
Add “TZ ETC+8″ to the environment-vars.
Thats all!