495e66f4ae
[AUTOGENERATED] Update autogenerated code
2021-04-27 21:24:48 +00:00
926d0af663
[PLUGIN] Change base class from Module to Plugin for all plugins
2021-04-19 18:51:42 +00:00
45a894c953
[Poll] Move tables from core to plugin
2021-04-16 20:28:39 +01:00
a1cac40f6a
[MODULES] Introduce the concept of abstract modules to V3
...
Introduce placeholder for abstract upload and thumb modules
Temporarily supress some bugs
2021-04-16 20:21:54 +01:00
Pastilhas
aaa6585a1e
[DOCKER][MAIL] Removed unused config files and scripts
...
Now user is created on setup and dockerfile
2021-04-14 15:37:23 +00:00
Daniel
ac16b3eff1
[Poll] Removed/refactored unnecessary files, changed redirect to default parameters in new poll route
2021-04-14 15:37:23 +00:00
Daniel
696ebe60e0
[Poll] Restructured templates, added misssing poll related css
2021-04-14 15:37:23 +00:00
Daniel
168b7d313a
[Poll] Polls now have an associated note, poll templates, start_show_styles event, started css
2021-04-14 15:37:23 +00:00
Daniel
3a51d3ef89
[Poll] Started testing with note integration
2021-04-14 15:37:23 +00:00
Daniel
7c8dbccee2
[Poll] Added file headers
2021-04-14 15:37:23 +00:00
Daniel
7a925cd9a6
[Poll] Added modified param for Poll/Poll response, added PollTest
2021-04-14 15:37:23 +00:00
f01331671c
[V3] Big Crunch
...
And so, just as it begins, so too must it end
One should not dwell and stall, for more is to come
2021-04-14 15:36:13 +00:00
Alexei Sorokin
06dfd91a82
Various fixes
...
Fix OAuth and Realtime issues introduced in 9a515b9234
[DATABASE] Fix an empty default value mistake introduced in
fde929b151
[DATABASE][PostgreSQL] Avoid use of pg_constraint.consrc, which was removed in
PostgreSQL 12.
[DATABASE][MariaDB] Fix a typo introduced in aed2344bd4
[DAEMON] Wrap an assignment inside "switch":
a follow-up to adc689cb15
2020-10-11 18:29:47 +03:00
Diogo Cordeiro
a9c365a5eb
[VersionBump] 2.0.0alpha0
...
Ran composer update and locale updater
2020-08-04 05:31:44 +01:00
Alexei Sorokin
0bfa747382
[DATABASE] Fix index identifiers and clean up redundant ones
2020-07-31 16:12:48 +03:00
Diogo Cordeiro
b730582336
[CORE] Add GNUSOCIAL_ENGINE_REPO_URL and increase usage of GNUSOCIAL_ENGINE_URL
2019-11-21 00:21:22 +00:00
Alexei Sorokin
471576d6e8
[DATABASE] Columns not in GROUP BY must not be queried
2019-09-11 13:12:41 +03:00
Alexei Sorokin
95c7344557
[DATABASE] Various table schema related fixes
2019-09-11 12:07:54 +03:00
Alexei Sorokin
62b90c29db
[DATABASE] Introduce a bool type in schema
...
PostgreSQL has a clear distinction between integers and booleans, so it makes
sense to draw a clear line.
2019-09-11 11:25:39 +03:00
Diogo Cordeiro
aee5506f00
[PLUGINS] Removed GeoURL as the service doesn't exist anymore
2019-08-24 01:59:36 +01:00
Diogo Cordeiro
0c2c3ec862
[CORE] Plugin API now extends a new Module API
2019-08-24 01:59:33 +01:00
Diogo Cordeiro
8c0601816f
[CORE] Move core plugins to a new modules directory
...
For reference (raised by rozzin in IRC):
* http://foldoc.org/module
* http://foldoc.org/library
* http://foldoc.org/plugin
As noted by XRevan86, modules are not necessarily non-essential.
As we will keep the modules directory in GS root [therefore, near to
plugins/], it is evidenced the difference between both.
This is a simple yet fundamental structural change. It doesn't change
functionality but makes clearer the way we understand GNU social's
internals.
2019-08-22 03:13:58 +01:00
Diogo Cordeiro
1049080df5
[CORE] Move public resources to a /public directory
...
Advantages:
* Increases security by preventing direct access to file/
* We are careful and have a defined('GNUSOCIAL') || die() to prevent
direct access to GS files, but we may miss one or a vendor/extlib may
not be as careful
* Improves directory structure - It's more natural to physically
separate what is public from what are GNU social resources
2019-08-03 17:47:25 +01:00
brunoccast
5c0a3102ff
[ROUTES] Allow accept-header specification during router creation
...
Router:
- Fix calls to connect, most of them were misusing the function's params
URLMapper:
- Minor fixes
- Documentation
- Add support for accept-header specification
Plugins/*:
- Fix calls to connect
2019-08-03 17:47:16 +01:00
Diogo Cordeiro
44653d339d
[Poll] Refactoring and minor bug fixes
2019-06-23 23:06:04 +01:00
brunoccast
c7afe2f86c
[TRANSLATION] Update Plugin POs
2019-06-09 16:10:03 +01:00
Diogo Cordeiro
5f4e3fe0eb
[TRANSLATION] Update POTs and normalize files
2019-06-08 18:41:10 +01:00
Diogo Cordeiro
46f98b3142
[VersionBump] 1.19.0, fairly late
...
The core plugins whose version was attached to GS's were reseted to 2.0.0.
2.0.0 was chosen as reset version for plugins because it is higher than
the one that was set by inheriting GS version. Furthermore, it's a
major change from prior plugin versioning system thus it also makes
semantic sense.
Justification for version bump:
== GS ==
9a4ab31f26 1.19.0
c13b935201
1.18.3
c13b935201
1.18.2
18fc39d2cf
1.18.1
c083a8bcc2
1.18.0
e8783d46d0
1.17.1
d9a42550ff
1.17.0
1536d3ef29
1.16.0
c03ed457a6
1.15.0
d2e6519bad
1.14.2
fe411e8138
1.14.1
b17e0b4169
1.14.0
daa5f87fd4
1.13.0
d75b5d2f4a
1.11.7
f6dbf66983
1.11.6
6cf674f8f8
1.11.5
7845a09b34
1.11.4
e4d432295d
1.11.3
339204f1ee
1.11.2
a4e679a118
1.11.1
7967db6ff5
1.11.0
bc030da320
1.10.1
9cc7df51d6
1.10.0
bf7f17474d
1.9.2
8a07edec5f
1.9.1
0042971d74
1.9.0
6b5450b7e6
1.8.0
5dcc98d1c6
1.7.0
e6667db0cd
1.6.0
3290227b50
1.5.0
a59c439b46
1.4.0
496ab8c920
1.3.10
986030060b
1.3.9
1d529c021a
1.3.8
f89c052cf8
1.3.7
38f2ecefac
1.3.6
e473937cb9
1.3.5
9a39ebe66f
1.3.4
ddc3cecfc0
1.3.3
2b43d484eb
1.3.2
e8e487187e
1.3.1
== Plugins ==
XMPP plugin
e0887220b0
bump patch
e186ad57d0
bump patch
OStatus
e186ad57d0
bump patch
Nodeinfo
ceae66a30f
bump minor
586fb5a517
bump major
195296846e
bump minor
2019-06-07 15:02:08 +01:00
Diogo Cordeiro
7967db6ff5
Various obvious bug fixes and better PHP 7 support
...
Many of these came from a XRevan86 patch
2019-04-26 00:34:17 +01:00
Chimo
2c5cba28b6
Change status.net/wiki URLs to git.gnu.io
2016-02-08 17:48:10 +00:00
digital dreamer
d7fd6bac72
Snapshot of the Transifex translation project - October 2015
2015-10-04 18:23:01 +02:00
Mikael Nordfeldth
712a6d49d0
Poll settings adapted to FormAction
2015-07-17 16:19:02 +02:00
Mikael Nordfeldth
871912a00a
Plugins didn't match lib/plugin.php onPluginVersion function definition
...
I ran:
for i in `grep -R onPluginVersion...version plugins/|cut -d: -f1`; do sed -i '{ s/\(onPluginVersion(\)\(\&\$versions\)/\1array \2/ }' $i; done
2015-06-06 22:04:01 +02:00
Mikael Nordfeldth
1e89540c3f
Merge branch 'nightly', beginning of 1.2.x
...
Conflicts:
plugins/APC/locale/APC.pot
plugins/APC/locale/ast/LC_MESSAGES/APC.po
plugins/APC/locale/be-tarask/LC_MESSAGES/APC.po
plugins/APC/locale/br/LC_MESSAGES/APC.po
plugins/APC/locale/de/LC_MESSAGES/APC.po
plugins/APC/locale/es/LC_MESSAGES/APC.po
plugins/APC/locale/eu/LC_MESSAGES/APC.po
plugins/APC/locale/fr/LC_MESSAGES/APC.po
plugins/APC/locale/gl/LC_MESSAGES/APC.po
plugins/APC/locale/he/LC_MESSAGES/APC.po
plugins/APC/locale/ia/LC_MESSAGES/APC.po
plugins/APC/locale/id/LC_MESSAGES/APC.po
plugins/APC/locale/it/LC_MESSAGES/APC.po
plugins/APC/locale/mk/LC_MESSAGES/APC.po
plugins/APC/locale/ms/LC_MESSAGES/APC.po
plugins/APC/locale/nb/LC_MESSAGES/APC.po
plugins/APC/locale/nl/LC_MESSAGES/APC.po
plugins/APC/locale/pl/LC_MESSAGES/APC.po
plugins/APC/locale/pt/LC_MESSAGES/APC.po
plugins/APC/locale/pt_BR/LC_MESSAGES/APC.po
plugins/APC/locale/ru/LC_MESSAGES/APC.po
plugins/APC/locale/tl/LC_MESSAGES/APC.po
plugins/APC/locale/uk/LC_MESSAGES/APC.po
plugins/APC/locale/zh_CN/LC_MESSAGES/APC.po
plugins/Adsense/locale/Adsense.pot
plugins/Adsense/locale/be-tarask/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/br/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ca/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/de/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/es/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/eu/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/fr/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/gl/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/he/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ia/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/it/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ja/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ka/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/lb/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/lt/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/mk/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ms/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/nb/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/nl/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/pl/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/pt/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/pt_BR/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/ru/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/sv/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/tl/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/tr/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/uk/LC_MESSAGES/Adsense.po
plugins/Adsense/locale/zh_CN/LC_MESSAGES/Adsense.po
plugins/Aim/locale/Aim.pot
plugins/Aim/locale/af/LC_MESSAGES/Aim.po
plugins/Aim/locale/ca/LC_MESSAGES/Aim.po
plugins/Aim/locale/de/LC_MESSAGES/Aim.po
plugins/Aim/locale/es/LC_MESSAGES/Aim.po
plugins/Aim/locale/eu/LC_MESSAGES/Aim.po
plugins/Aim/locale/fi/LC_MESSAGES/Aim.po
plugins/Aim/locale/fr/LC_MESSAGES/Aim.po
plugins/Aim/locale/gl/LC_MESSAGES/Aim.po
plugins/Aim/locale/ia/LC_MESSAGES/Aim.po
plugins/Aim/locale/it/LC_MESSAGES/Aim.po
plugins/Aim/locale/mk/LC_MESSAGES/Aim.po
plugins/Aim/locale/ms/LC_MESSAGES/Aim.po
plugins/Aim/locale/nl/LC_MESSAGES/Aim.po
plugins/Aim/locale/pl/LC_MESSAGES/Aim.po
plugins/Aim/locale/pt/LC_MESSAGES/Aim.po
plugins/Aim/locale/sv/LC_MESSAGES/Aim.po
plugins/Aim/locale/tl/LC_MESSAGES/Aim.po
plugins/Aim/locale/uk/LC_MESSAGES/Aim.po
plugins/Blog/locale/Blog.pot
plugins/Blog/locale/ar/LC_MESSAGES/Blog.po
plugins/Blog/locale/br/LC_MESSAGES/Blog.po
plugins/Blog/locale/ca/LC_MESSAGES/Blog.po
plugins/Blog/locale/de/LC_MESSAGES/Blog.po
plugins/Blog/locale/es/LC_MESSAGES/Blog.po
plugins/Blog/locale/eu/LC_MESSAGES/Blog.po
plugins/Blog/locale/fr/LC_MESSAGES/Blog.po
plugins/Blog/locale/gl/LC_MESSAGES/Blog.po
plugins/Blog/locale/ia/LC_MESSAGES/Blog.po
plugins/Blog/locale/it/LC_MESSAGES/Blog.po
plugins/Blog/locale/lt/LC_MESSAGES/Blog.po
plugins/Blog/locale/mk/LC_MESSAGES/Blog.po
plugins/Blog/locale/nl/LC_MESSAGES/Blog.po
plugins/Blog/locale/tl/LC_MESSAGES/Blog.po
plugins/Blog/locale/tr/LC_MESSAGES/Blog.po
plugins/Irc/locale/Irc.pot
plugins/Irc/locale/ca/LC_MESSAGES/Irc.po
plugins/Irc/locale/de/LC_MESSAGES/Irc.po
plugins/Irc/locale/es/LC_MESSAGES/Irc.po
plugins/Irc/locale/eu/LC_MESSAGES/Irc.po
plugins/Irc/locale/fi/LC_MESSAGES/Irc.po
plugins/Irc/locale/fr/LC_MESSAGES/Irc.po
plugins/Irc/locale/gl/LC_MESSAGES/Irc.po
plugins/Irc/locale/ia/LC_MESSAGES/Irc.po
plugins/Irc/locale/it/LC_MESSAGES/Irc.po
plugins/Irc/locale/ja/LC_MESSAGES/Irc.po
plugins/Irc/locale/mk/LC_MESSAGES/Irc.po
plugins/Irc/locale/nl/LC_MESSAGES/Irc.po
plugins/Irc/locale/sv/LC_MESSAGES/Irc.po
plugins/Irc/locale/tl/LC_MESSAGES/Irc.po
plugins/Irc/locale/tr/LC_MESSAGES/Irc.po
plugins/Irc/locale/uk/LC_MESSAGES/Irc.po
plugins/Spotify/locale/Spotify.pot
plugins/Spotify/locale/de/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/es/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/fr/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/gl/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/he/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/ia/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/mk/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/nl/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/sv/LC_MESSAGES/Spotify.po
plugins/Spotify/locale/tl/LC_MESSAGES/Spotify.po
plugins/TinyMCE/locale/TinyMCE.pot
plugins/TinyMCE/locale/ca/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/de/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/gl/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/ja/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/ms/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/pt/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po
plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po
plugins/XCache/locale/XCache.pot
plugins/XCache/locale/ast/LC_MESSAGES/XCache.po
plugins/XCache/locale/br/LC_MESSAGES/XCache.po
plugins/XCache/locale/de/LC_MESSAGES/XCache.po
plugins/XCache/locale/es/LC_MESSAGES/XCache.po
plugins/XCache/locale/eu/LC_MESSAGES/XCache.po
plugins/XCache/locale/fi/LC_MESSAGES/XCache.po
plugins/XCache/locale/fr/LC_MESSAGES/XCache.po
plugins/XCache/locale/gl/LC_MESSAGES/XCache.po
plugins/XCache/locale/he/LC_MESSAGES/XCache.po
plugins/XCache/locale/ia/LC_MESSAGES/XCache.po
plugins/XCache/locale/id/LC_MESSAGES/XCache.po
plugins/XCache/locale/mk/LC_MESSAGES/XCache.po
plugins/XCache/locale/ms/LC_MESSAGES/XCache.po
plugins/XCache/locale/nb/LC_MESSAGES/XCache.po
plugins/XCache/locale/nl/LC_MESSAGES/XCache.po
plugins/XCache/locale/pl/LC_MESSAGES/XCache.po
plugins/XCache/locale/pt/LC_MESSAGES/XCache.po
plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po
plugins/XCache/locale/ru/LC_MESSAGES/XCache.po
plugins/XCache/locale/tl/LC_MESSAGES/XCache.po
plugins/XCache/locale/tr/LC_MESSAGES/XCache.po
plugins/XCache/locale/uk/LC_MESSAGES/XCache.po
plugins/YammerImport/locale/YammerImport.pot
plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/de/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/es/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/eu/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/ms/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/pl/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/tl/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po
plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po
2015-03-09 11:01:17 +01:00
digital dreamer
a452a3b1a0
Snapshot of the Transifex translation project - February 2015
2015-03-08 09:34:38 +01:00
Mikael Nordfeldth
8fac7a9f6c
StatusNet class renamed GNUsocial
...
also added backward compatible StatusNet class for the two calls I know
third party plugins use, isHTTPS and getActivePlugins
2015-02-27 12:44:15 +01:00
Mikael Nordfeldth
2f86cd8602
utf8mb4 conversion on database with index adjusts
2015-02-12 18:18:55 +01:00
Mikael Nordfeldth
faae9d069a
We're using URLMapper, not Net_URL_Mapper
2014-11-07 15:24:05 +01:00
Mikael Nordfeldth
18c6a0bf35
Show poll results also to non-logged in visitors
2014-10-26 23:17:58 +01:00
Mikael Nordfeldth
f69f713360
PollListItem freed from noticeListItemAdapter clutches
...
In the future, use events for formatting microapp notices, more specifically
through the plugin's function "showNoticeContent" or similar, which is called
from MicroAppPlugin, which is extended from ActivityHandlerPlugin.
2014-10-26 14:48:02 +01:00
chimo
3edc200b26
PollListItem: Use showNotice args
2014-08-17 13:39:19 -04:00
chimo
850d687901
Added adaptNoticeListItem and PollListItem
2014-08-17 13:33:07 -04:00
Mikael Nordfeldth
ffb9d7ad3f
Rewriting code for notice representation
...
Getting rid of NoticeListItemAdapter, putting more into ActivityHandlerPlugin
and relying on plugins to handle rendering code of the content. This gives us
a lot more structure and consistency in notice structure and allows activity
plugins to stop rendering certain kinds of notices more easily.
There should also be a property for an ActivityHandlerPlugin class to avoid
rendering notices in the ordinary stream, so we don't have to overload stuff.
2014-07-04 14:14:49 +02:00
Mikael Nordfeldth
9f4bcbad8a
checkAuthorship events, Ostatus_profile rewrite to handle it
...
Lost dependency of OStatus plugin for lib/microappplugin.php, whoo!
also noting which plugins should be upgraded to new saveActivity support.
Favorite plugin won't work with the new system just yet, it doesn't have
the necessary functions to extract activity objects, but that's coming
in the next (few) commits.
2014-07-02 11:38:45 +02:00
Mikael Nordfeldth
38bea34562
Moved functions into ActivityHandlerPlugin from MicroAppPlugin
...
Dummy functions in Favorite plugin so far
2014-07-02 11:37:46 +02:00
Mikael Nordfeldth
414a95a784
Initial move towards microformats2
...
No validation has been attempted yet. Lots of changes left. This
is visibly not (very) different from the previous CSS layout. But
some simplifications have been made.
Might cause issues with local changes to themes and CSS. Also maybe
javascript which depends on certain legacy microformats elements.
The move to microformats2 is motivated by the announcement that all
microformats should be migrated to version 2, as of 2014-06-20 at:
http://microformats.org/2014/06/20/microformats-org-turns-9-upgrade-to-microformats2
2014-06-22 17:11:04 +02:00
Mikael Nordfeldth
c99d4eddb1
Moved Poll CSS into the plugin directory
2014-06-03 11:38:40 +02:00
Mikael Nordfeldth
d596513e39
Stronger typing for NoticeListItem and so
2014-06-02 00:20:27 +02:00
Mikael Nordfeldth
7d191f8062
s/bestUrl/getUrl/ for notices and microapp objects
2014-04-29 19:46:58 +02:00
Mikael Nordfeldth
a2a2105058
HTML5 required attribute for some input forms
2014-04-06 11:27:41 +02:00