1498 Commits

Author SHA1 Message Date
Thomas Hochstein
b718637794 Set empty limit to "" in serendipity_fetchEntries.
If $limit is empty(), no limit is set, so we can
set the LIMIT statement to "" to achieve the same.

But an empty() $limit can be "0", so the
generated SQL statement could end with "0"
instead of the LIMIT statement. We catch this
with forcing an empty() $limit to "".

Fixes #636.
(No matter that this shouldn't even happen.)

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-21 17:59:13 +01:00
Thomas Hochstein
1ed4b9e7ec Prevent renaming ML object into existing file.
When renaming objects in the Media Library,
s9y didn't check if a file with the same
name already exists, resulting in a file
name collision deleting both files from
the database _and_ from disk.

Add a check to avoid that.

An error message would be nice, too, but
that may be added later on.

Tested on s9y-stable test instance.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2020-03-20 17:54:29 +01:00
surrim
ed778d7199 changed parameters order for implode() 2020-03-17 15:48:36 +01:00
surrim
bd70590359 init 2020-03-16 23:51:17 +01:00
Lothar Serra Mari
137330fd5b Don't allow requesting an archive page that doesn't exist 2019-12-15 13:17:29 +01:00
Stephan Brunker
756f520d71 functions_routing.php: set action to empty when serving JS
genpage is called but no action given - the default page was generated at every call.
2019-12-15 13:16:28 +01:00
Garvin Hicking
4d770c9cc6 [TASK] Adds ability to make plugins change the multi-media insertion gallery HTML 2019-12-03 15:50:51 +01:00
Stephan Brunker
aa1f3b533d Fix category page title - strip_langs - 2019-11-02 14:20:18 +01:00
Stephan Brunker
d75e311077 added event_hook multilingual_strip_langs to permalinks 2019-11-02 14:20:18 +01:00
Stephan Brunker
5c4c11f0b4 fixing multilingual issues: display languages in native names and fix initialition point of plugins 2019-11-02 14:20:18 +01:00
Garvin Hicking
b4f0b35a5d
Merge pull request #650 from stephanbrunker/master
Fix a lot of single issues and overhaul the language settings
2019-10-17 13:46:06 +02:00
Stephan Brunker
ea371f6a4e fixed requested changes, array processing of multilingual_stip_langs 2019-10-15 22:45:02 +02:00
Garvin Hicking
5b35569e73 [BUGFIX] Fixes missing referenced variable when $_GET['serendipity'] is not an array
refs #642
refs #653
2019-10-15 14:03:34 +02:00
Stephan Brunker
502b837dd6 Fix a lot of single issues and overhaul the language settings
see docs/NEWS and the plugin/changelog files for details
2019-10-13 22:49:03 +02:00
Hanno
5765d1a779
Avoid undefined index notices, see https://github.com/s9y/Serendipity/issues/642 2019-10-13 18:21:18 +02:00
Thomas Hochstein
f4d07960bb Assume uninitialized constant PLUGIN_LINK_SPARTACUS.
Fixes #638.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-10-13 17:35:58 +02:00
Thomas Hochstein
722a4ef4c4 Fix a typo in a comment.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-10-13 17:20:45 +02:00
Thomas Hochstein
9867d70fac Fix mangling of auto-generated mails.
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.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-10-13 13:15:27 +02:00
onli
27fd525706 fix: rotate image did not rotate all thumbnails 2019-10-10 23:41:52 +02:00
Garvin Hicking
e8b8be0342 [TASK] Prevents PHP warnings with type differences on $_REQUEST['serendipity']
refs #642
2019-10-07 17:03:33 +02:00
Eike Rathke
07a241798d With MySQL use cast(okey as unsigned) instead of cast(okey as integer)
The autologin ("Save information") functionality in 2.3.1 is broken since

    commit 52a41b37d554da11acc932eeec44c5fb1414a492
    CommitDate: Fri Mar 23 18:01:32 2018 +0100

	Rework autologin to use a token approach

Although a cookie serendipity[author_autologintoken] with correct
expiration (one month) which random data content is present as value
in the serendipity_options table with name autologin_Username and
correct timestamp as okey and that is found with manually executing
the SQL statement

  SELECT name, value, okey FROM serendipity_options WHERE name = 'autologin_Username' AND okey > 1565801743 LIMIT 1

like done in include/functions_config.inc.php
serendipity_checkAutologin(), the login is forgotten after 30 minutes
or so. That was not the case with 2.1.5 where the login was valid for
weeks.

Of

    if (stristr($serendipity['dbType'], 'sqlite')) {
        $cast = "okey";
    } else {
        // Adds explicits casting for mysql, postgresql and others.
        $cast = "cast(okey as integer)";
    }

from which $cast then is used in the SQL statement instead of a plain
okey; when doing that manually with

  SELECT name, value, okey FROM serendipity_options WHERE name = 'autologin_Username' AND cast(okey as integer) > 1565801743 LIMIT 1

it produces the MySQL error

  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'integer) > 1565801743 LIMIT 1' at line 1

This also with $serendipity['dbType'] = 'mysqli' for the above code.

Indeed, cast(okey as integer) is invalid in MySQL and should be
cast(okey as unsigned) instead which then also works manually, see
https://stackoverflow.com/a/12127022 and
https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_cast

Same in serendipity_issueAutologin().

Changing those two places accordingly resolves the autologin not
persistent problem.

Additionally, inspecting the serendipity_options table revealed loads
of old serendipity[author_authorinformation] cookie information that
was never deleted in serendipity_issueAutologin() with the

  OR (okey LIKE 'l_%' AND $cast < " . (time() - 1814400) . ")")

expression producing a MySQL error. This has to be done manually
once as also 2.3.1 will not delete it anymore.
2019-09-06 10:48:36 +02:00
Thomas Hochstein
12bb9c0cc0 Fix media library (mass) delete.
Fixes #619.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-17 01:36:51 +02:00
Thomas Hochstein
ebb852d400 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.

That may seem counterintuitive at first, but
otherwise archive page directions and pagination
directions don't match (see bulletproof), and we
shouldn't count archive pages differently from
the URL. With the current code, page 100 of 100
archive pages would be shown in footer_info as
page 1, page 99 as page 2, and that doesn't make
sense either.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-17 00:52:19 +02:00
Thomas Hochstein
f4d47812a5 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.

Fixes #625 in core.

Themes will have to cope with the sorting order
in their pagination code if they want to display
a descending order for stable archive sorting.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-16 21:37:45 +02:00
Thomas Hochstein
221bd4a4c7
Merge pull request #620 from th-h/thh-plugin-notifier
Add plugin update notifications.
2019-08-13 22:21:28 +02:00
Thomas Hochstein
4e88c875d8 Add Spartacus links to plugin lists.
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>
2019-08-11 13:44:46 +02:00
Thomas Hochstein
53f63342c6 Fix typo / unify PHP and smarty variable names.
"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.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-11 02:18:09 +02:00
Thomas Hochstein
35cd41d4ef Wording change for plugin version display.
"Version" should be at the start of a
sentence or line.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-11 01:50:28 +02:00
Thomas Hochstein
9999a5b0e1 Add plugin update notification to dashboard.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2019-08-10 23:40:15 +02:00
onli
60e975ee27 Fix: Don't show "Array" string under update notification 2019-08-03 21:11:53 +02:00
onli
ba6ccb3dbb Make $entry available for templates (fix #610) 2019-07-03 17:51:36 +02:00
onli
46c408c19b Make stablearchive default 2019-04-27 18:13:16 +02:00
onli
92a1106405 Set distinct cache directory for voku/simple-cache (#597) 2019-03-18 21:37:56 +01:00
Jari Turkia
260efcc5a6 Make sure there is a $serendipity['lang'] defined by serendipity_getSessionLanguage() 2019-03-10 11:31:25 +01:00
onli
f5d5b73c26 Bump required PHP version to 7.0 (#596) 2019-03-06 00:48:50 +01:00
Stephan Brunker
db0f47a10a upgrader move force: array check for serendipity_db_query 2019-03-05 18:38:22 +01:00
Stephan Brunker
722c1cf7f8 plugin spamblock: if forcemoderation is set, activate the new option moderation_auto 2019-03-05 18:38:22 +01:00
onli
cd0adf5550 Set templates_c as opcache destination for voku/simple-cache 2019-03-04 11:07:32 +01:00
onli
f948279583 Fix autologin token, form tokens failed cause session was not set 2019-02-20 23:06:13 +01:00
onli
c737565c13 Improve autologin token security by setting httpOnly and secure flag 2019-02-20 22:24:05 +01:00
onli
f295a3b123 Fix self-XSS on file upload
The filename was used without escaping in the scucess message shown after upload
2019-02-20 21:38:13 +01:00
onli
153b5a37f1 Fix: Do not throw error when entry got deleted, go to 404 page 2019-02-16 14:46:46 +01:00
onli
ba9c401697 Remove check of undefined constant (#556) 2019-02-16 13:36:15 +01:00
onli
4c4545428d Fix internal cache, init proper functions API 2019-02-16 13:07:53 +01:00
onli
e0f230dd15 Remove serendipity_purgeEntry
Removed pregenerated entries, but that functionality is long gone
2019-02-12 23:18:52 +01:00
onli
d52f0004a4 Add voku/simplecache as alternative to Cache/Lite and use it cache
Cache/Lite is abandoned
2019-02-12 18:52:08 +01:00
onli
88073e9816 Activate internal cache by default 2019-02-11 18:26:37 +01:00
onli
98261856db Preserve manual set image link when moving/renaming image (#509) 2019-02-10 13:44:14 +01:00
onli
f049892e39 Make serendipity_event_responsiveimages a default plugin
That means it will be activated during the s9y installation
2019-02-09 15:17:25 +01:00
Hanno
4445926033 Avoid warning about non-countable var, fix #587. 2019-01-11 16:28:08 +01:00