s9y will encode the body of its auto-generated
mails as quoted-printable when imap_8bit() is
available. imap_8bit() will use "\r\n" as
linebreaks as mandated for SMTP transfer.
The result will be transmitted via PHP's
mail() function, using direct SMTP on
Windows and piping it to a MTA on Unix.
Most MTAs will cope just fine with those
linebreaks, while qmail will not; it will
replace all "\n" linebreaks with "\r\n",
so we get "\r\r\n" in our case. We can't
"fix" qmail (as its maintainer, if there
even is one, does not consider this
behaviour wrong), but we can replace the
line endings we get from imap_8bit().
The fix does work with qmail and Exim and
should work with sendmail and Postfix and
other MTAs, too. It may break sending
mail on Windows (i.e. lose all linebreaks),
but I think that's acceptable, as we'll
have more qmail installation than Windows
servers out there.
A workaround could be to set
serendipity['forceBase64']=true in
serendipity_config_local.inc.php, but I'd
prefer this fix.
Fixes#644.
Backported from master branch.
Signed-off-by: Thomas Hochstein <thh@inter.net>
This reverts commit 4e662bf17c
in parts.
With this - now reverted - commit, the prev/next
arrows in pagination were swapped because they
were the wrong way around. Unfortunately, later on,
the root cause was fixes by "unswapping" the prev/next
links in core, so now the pagination arrows were
... eh ... wrongly swapped. So this commit has to
be reverted.
Backported from master branch.
Signed-off-by: Thomas Hochstein <thh@inter.net>
* Fix media library (mass) delete.
* I18n for multimove.
+ Add MEDIA_DIRECTORY_MOVE.
+ Change German translation of "Move" to
"Verschieben".
Cherry-picked from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
Unconditionally setting $serendipity['csuccess']
to 'true' will override a "moderate" flag set by
another (spamblock) plugin.
Cherry-picked from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
* Fix core pagination for "stable archives".
The current page will always be the current page,
regardless of archive sorting order. Page 76 of
86 pages will remain page 76, even if the archive
sorting is changed; it won't become page 10.
* Fix pagination for "stable archives" in themes.
Timeline and Bulletproof have pagination.
Both need to swap the prev/next links for
stable archives, as the sorting order has
been reversed.
* Fix prev/next page links for stable archives.
We shouldn't swap prev/next links for archive
pages. With stable archives, the title page is
the last page of the archive, not the first, so
all other pages are "previos", and we should
display it like that.
Cherry-picked from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
* "PLUGIN_ALL_UPDATED" was hardcoded.
* Add some missing German translation
and fix some others.
* Add new constants to other languages
via addlang.sh
* Remove wrongly added constants from
plugin_lang.php
Signed-off-by: Thomas Hochstein <thh@inter.net>
Quite some information is missing from
the list of installed plugins; and the
list of installable plugins has some
more information, but not everything
that is present on Spartacus, i.e.
the last modification date.
So let's add a link to the plugin entry
on Spartacus (in the chosen language
version).
Fixes#471.
Signed-off-by: Thomas Hochstein <thh@inter.net>
"requirement_failures" from PHP is saved in
"requirements_failues" - "requirements" as
in plural, and with a typo. That doesn't make
sense. Let's use "requirement_failures"
everywhere.
Backported from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
"Version" should be capitalized in German -
and anywhere at the start of a sentence or
line.
Furthermore, "UPGRADE_TO_VERSION" is not
the current version ("aktuelle version"),
but the version one could upgrade to.
Backported from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
Declaring $pluginlist as static will cache the
database query results and always return the same
list of plugins - no matter which type is queried
(sidebar or event).
This cache must be busted if another type of
plugins is queried.
Backported from master.
Signed-off-by: Thomas Hochstein <thh@inter.net>
This code was used to tell Akismet that a comment
is spam or ham. It can't be triggered as there
are no UI buttons, and it shouldn't be used as
it uses GET params. I don't think it will be
missed.
The relevant issue has been open for about two
and a half years without a new implementation,
so let's drop it. We can always re-implement it
later ...
Closes#405.
Signed-off-by: Thomas Hochstein <thh@inter.net>
As "X" is looking like a placeholder that has
not been replaced, rephrase to "Auto-moderation
for old entries".
See https://board.s9y.org/viewtopic.php?f=2&t=24034#p10451071
Done for EN and DE, other languages will have
to be changed, too.
Signed-off-by: Thomas Hochstein <thh@inter.net>
See #548.
Expands b0fb8d2d12
by adding the necessary fix at another code point.
Fixes a whitespace issue (tabs -> spaces).
Add Changelog entries.
Needs to be backported to 2.1 after tests and review.
Signed-off-by: Thomas Hochstein <thh@inter.net>
All messages and errors were appended to $msg
and $errormsg, respectively, creating one long
unformatted string - mostly unreadable.
So we make $msg and $errormsg arrays instead
and iterate over those arrays in the template,
displaying each message separately.
Fixes#525.
Signed-off-by: Thomas Hochstein <thh@inter.net>
Refer users to the code primer on docs.s9y.org
and serendipity_config.inc.php for a list of
special variables and their defaults.
Fixes#469.
Signed-off-by: Thomas Hochstein <thh@inter.net>
See #488 for the discussion.
Merge `dashboardLimit` and `dashboardDraftLimit`
to `dashboardEntriesLimit`
Signed-off-by: Thomas Hochstein <thh@inter.net>
Code style improvements from the reviews of
* Rename ´$serendipity['title_first'´] to
´$serendipity['backendBlogtitleFirst']´ and
make it boolean
* Add default to `serendipity_config.inc.php`.
* Change the condition in ´2k11/admin/index.tpl´
that the first branch is run by default
Signed-off-by: Thomas Hochstein <thh@inter.net>
Partially revert 7a0a9e2156
serendipity_specialchars() and others were made to
return "" when fed something that is not a string.
So boolean values (1 or TRUE) will be returned as "",
i.e. FALSE, breaking the blog in interesting ways
(i.e. displaying wrong configuration values and
saving them to the database).
Closes#476.
Signed-off-by: Thomas Hochstein <thh@inter.net>
The default page title of backend pages is
"section | blog title | $admin". You can
now change the order to "blog title | section
| $admin" by setting $serendipity['title_first']
to "blogtitle" in serendipity_config_local.inc.php
Closes#413
Signed-off-by: Thomas Hochstein <thh@inter.net>
The dashboard will show up to $dashboardLimit future
entries; if the number of future entries is still
less than $dashboardDraftLimit, it will add drafts
up to $dashboardDraftLimit.
If there are _no_ future entries, $entries is no
array, but has a value of "1"; count($entries)
will then be one, too, so one draft less will
be shown.
Closes#465.
Signed-off-by: Thomas Hochstein <thh@inter.net>
[] have to be URL encoded as %5B and %5d,
respectively. Percent signs have to be
doubled as those strings are used as
input for sprintf().
Signed-off-by: Thomas Hochstein <thh@inter.net>
When replacing 'sort by extension' with
'sort by name' in simple filter mode, 'sort by name'
was erroneously removed from non-simple filter
mode too (and replaced by a second incarnation of
'sort by extension').
Signed-off-by: Thomas Hochstein <thh@inter.net>