3790 Commits

Author SHA1 Message Date
harukin
059ee6d792 test 2019-06-14 16:29:15 +09:00
harukin
51bdae7590 move position 2019-06-14 16:27:14 +09:00
harukin
68b692c233 continue? 2019-06-14 16:24:45 +09:00
harukin
2c80a07457 continue. 2019-06-14 16:19:03 +09:00
harukin
4e4d7fcc11 test事案 2019-06-14 16:17:08 +09:00
harukin
3ca637bec2 edit path 2019-06-14 16:15:16 +09:00
harukin
ce45eab3cc remove tpl edit 2019-06-14 16:13:14 +09:00
harukin
b9e77d6a49 recaptha test 2019-06-14 16:11:12 +09:00
harukin
76e879e5de Merge branch 'origin' into 'develop'
Update 4.2

See merge request harukin/core!55
2019-06-09 10:54:57 +09:00
Mario Vavti
9f403a4d6b fix css issue
(cherry picked from commit 55792d5528)
2019-06-07 09:58:51 +02:00
Mario Vavti
a3f726baa8 fix embedphotos image size
(cherry picked from commit ebc2b23c3a)
2019-06-07 08:45:58 +02:00
Mario Vavti
e4ca3609d9 Merge branch '4.2RC' 2019-06-04 10:19:04 +02:00
Mario Vavti
bc092d8d78 version 4.2 2019-06-04 10:16:06 +02:00
Mario Vavti
dd5933b048 Merge branch 'dev' into 4.2RC 2019-06-04 10:13:59 +02:00
Mario Vavti
5d6128b25c update changelog 2019-06-04 10:13:25 +02:00
Mario Vavti
24cb04c346 do not change default timezone in parse_ical_file()
(cherry picked from commit f1b54cf0a4)
2019-06-03 22:43:20 +02:00
Mario Vavti
f1b54cf0a4 do not change default timezone in parse_ical_file() 2019-06-03 22:37:03 +02:00
Mario Vavti
e64a7b87a8 fix timezone issue when importing adjusted events
(cherry picked from commit 2b452ea3e8)
2019-06-03 21:04:51 +02:00
Mario Vavti
2b452ea3e8 fix timezone issue when importing adjusted events 2019-06-03 21:03:43 +02:00
Mario
66c6c6c7d1 regard timezones in calendar import/export
(cherry picked from commit 5b4aa1afc2)
2019-06-03 13:27:16 +02:00
Mario
5b4aa1afc2 regard timezones in calendar import/export 2019-06-03 13:25:48 +02:00
Mario Vavti
89205276ab update changelog
(cherry picked from commit 6d2ab6a7d6)
2019-06-03 11:49:04 +02:00
Mario Vavti
6d2ab6a7d6 update changelog 2019-06-03 11:48:30 +02:00
Mario Vavti
e6da910ee2 Merge branch 'dev' into 4.2RC 2019-06-03 11:44:31 +02:00
Max Kostikov
2100ac3cfc Merge branch 'dev' into 'dev'
fix category widget when using articles

See merge request hubzilla/core!1664
2019-05-31 23:28:09 +02:00
zotlabs
c7476a1d96 fix category widget when using articles 2019-05-31 14:19:04 -07:00
Max Kostikov
d8c3033941 Merge branch 'dev' into 'dev'
live-update not triggering on mod_search

See merge request hubzilla/core!1662
2019-05-30 19:50:58 +02:00
Max Kostikov
7e26ee5a73 Merge branch 'dev' into 'dev'
Add single photo URL rewrite for clonned channel

See merge request hubzilla/core!1663
2019-05-30 13:45:20 +02:00
Max Kostikov
a8e25ccfe6 Add single photo URL rewrite for clonned channel 2019-05-30 13:41:32 +02:00
zotlabs
b6267ec7c2 live-update not triggering on mod_search 2019-05-29 17:04:27 -07:00
Mario Vavti
b6bd2884d5 Merge branch 'dev' into 4.2RC 2019-05-29 09:08:40 +02:00
Mario
767a235611 Merge branch 'dev' into 'dev'
support 'expires' over Zot6

See merge request hubzilla/core!1661
2019-05-29 09:06:52 +02:00
zotlabs
620fc06b6c anomolies in calls to datetime_convert in include/import 2019-05-28 23:14:22 -07:00
zotlabs
0fa4c89a1b convert AS "instrument" objects to the more appropriate "generator" - this probably should happen in pubcrawl addon also 2019-05-28 20:23:03 -07:00
zotlabs
1bf046c142 Revert "another forum -> group wording change" (wrong tree)
This reverts commit 7c2aafd4ee.
2019-05-28 16:35:41 -07:00
zotlabs
52f8429218 support 'expires' over Zot6 2019-05-28 16:28:03 -07:00
zotlabs
932b414063 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-28 16:16:29 -07:00
Mario Vavti
097b2390db update changelog
(cherry picked from commit ca8d252ad7)
2019-05-28 12:31:48 +02:00
Mario Vavti
ca8d252ad7 update changelog 2019-05-28 12:07:14 +02:00
Mario Vavti
23a0dbe3cc 4.2RC2 2019-05-27 08:19:23 +02:00
Mario Vavti
545ece82b3 Merge branch '4.2RC' of https://framagit.org/hubzilla/core into 4.2RC 2019-05-27 08:09:36 +02:00
Mario Vavti
eaea947b74 Merge branch 'dev' into 4.2RC 2019-05-27 08:07:26 +02:00
Mario Vavti
f1b61d5882 mod cal band-aid fixes 2019-05-26 20:22:40 +02:00
Mario Vavti
e466d72058 adjust birthday handling according to community decision and slightly change display of allday event items 2019-05-26 18:05:11 +02:00
Mario Vavti
385be35ed5 fix #1374
(cherry picked from commit 528b9b6a60)
2019-05-24 12:27:14 +02:00
Mario Vavti
528b9b6a60 fix #1374 2019-05-24 10:27:45 +02:00
Mario Vavti
dd374eaebf get channel from photo uid
(cherry picked from commit 9ea483d1dc)
2019-05-24 09:59:17 +02:00
Mario Vavti
9ea483d1dc get channel from photo uid 2019-05-24 09:57:46 +02:00
Mario Vavti
b1813df61a add new directory fallback server 2019-05-23 08:46:16 +02:00
Mario Vavti
8715f74d29 Merge branch 'dev' into 4.2RC 2019-05-23 08:44:44 +02:00
Mario Vavti
152224944b add new directory fallback server 2019-05-23 08:43:48 +02:00
Mario Vavti
f86d12c8f4 Merge branch 'dev' into 4.2RC 2019-05-23 08:37:52 +02:00
Mario
94d4bc4bac Merge branch 'dev' into 'dev'
translate make-friend activities to zot6

See merge request hubzilla/core!1654
2019-05-22 12:59:41 +02:00
Mario Vavti
c95488549d Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-22 12:41:01 +02:00
Mario Vavti
39613aa2d9 improve timezone detection for caldav and remove smart birthday feature. Force adjust birthdays until we agree on how to deal with this. 2019-05-22 12:40:37 +02:00
zotlabs
7c2aafd4ee another forum -> group wording change 2019-05-21 18:23:45 -07:00
Mario Vavti
e834c7fe3e remove unused code 2019-05-21 12:31:50 +02:00
Mario Vavti
f96958adf8 fix all day events for caldav calendars 2019-05-21 12:29:00 +02:00
zotlabs
776074b24f translate make-friend activities to zot6 2019-05-20 19:03:10 -07:00
Mario Vavti
c9d64d75f3 move smart birthday feature to calendar settings and override the adjust flag at display time instead of import 2019-05-20 13:51:53 +02:00
Mario Vavti
9651689bb8 fix event notifications viewall url 2019-05-20 13:14:54 +02:00
Mario
75be0475ba Merge branch 'es-es' into 'dev'
Update es-es

See merge request hubzilla/core!1651
2019-05-20 13:08:37 +02:00
Mario
e130b58b20 Merge branch 'es-es' into '4.2RC'
Update es-es

See merge request hubzilla/core!1652
2019-05-20 13:06:55 +02:00
Mario Vavti
e44f0c497f be more precise with table selection 2019-05-20 12:34:05 +02:00
Mario Vavti
2d0f96d28b Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-20 12:27:00 +02:00
Mario Vavti
34d1f79777 calendar merge: initial commit for timezone support 2019-05-20 12:26:33 +02:00
Manuel Jiménez Friaza
2185ccd4ea Merge branch 'cherry-pick-350e636e' into 'es-es'
Updated Spanish translation

See merge request mjfriaza/core!7
2019-05-19 14:03:17 +02:00
Manuel Jiménez Friaza
125634759d Updated Spanish translation
(cherry picked from commit 350e636e3d)
2019-05-19 13:57:04 +02:00
Xanthor
a921deafd1 Fix a really disturbing comment
(cherry picked from commit 823c0434eb)

(cherry picked from commit af2b263bc7)
2019-05-17 12:28:41 +02:00
Mario Vavti
071fba2f71 wiki: urlencode the entire share link
(cherry picked from commit aa120e0478)
2019-05-17 12:28:13 +02:00
Mario Vavti
9de729e3e7 wiki: urlencode the entire share link
(cherry picked from commit aa120e0478)
2019-05-17 12:27:54 +02:00
Mario Vavti
7cf5bd30f2 use escape_tags() wiki headers
(cherry picked from commit e7f1f496c5)
2019-05-17 12:27:18 +02:00
Mario Vavti
e6cee2965a use escape_tags() wiki headers
(cherry picked from commit e7f1f496c5)
2019-05-17 12:26:03 +02:00
Xanthor
af2b263bc7 Fix a really disturbing comment
(cherry picked from commit 823c0434eb)
2019-05-17 12:25:22 +02:00
Mario Vavti
aa120e0478 wiki: urlencode the entire share link 2019-05-17 12:24:25 +02:00
Mario
b07c55a0d9 Merge branch 'patch-1' into 'master'
Fix a really disturbing comment

See merge request hubzilla/core!1650
2019-05-17 12:01:21 +02:00
Mario Vavti
e7f1f496c5 use escape_tags() wiki headers 2019-05-17 11:57:41 +02:00
Xanthor
823c0434eb Fix a really disturbing comment 2019-05-17 05:23:12 +02:00
Mario Vavti
22162635e7 calendar merge: only export events that will not break the importer. this will probably dismiss some old experimental entries
(cherry picked from commit 8be0031602)
2019-05-15 18:25:59 +02:00
Mario Vavti
8be0031602 calendar merge: only export events that will not break the importer. this will probably dismiss some old experimental entries 2019-05-15 18:21:52 +02:00
Mario Vavti
29c5e74d31 missing backslash
(cherry picked from commit 3c8867a1e8)
2019-05-15 11:40:36 +02:00
Mario Vavti
3c8867a1e8 missing backslash 2019-05-15 11:38:23 +02:00
Mario Vavti
c439fe0437 add autocomplete js to calendar and fix issue with extended likes mid
(cherry picked from commit 15a000bb45)
2019-05-14 09:14:04 +02:00
Max Kostikov
b21db670b4 Fix comments scroll button CSS
(cherry picked from commit d0322f5fbd)
2019-05-14 09:13:40 +02:00
Mario Vavti
1f84aa9809 css fixes
(cherry picked from commit c1f01b7e35)
2019-05-14 09:13:19 +02:00
Mario Vavti
4ac249c26c deal with privacy mentions in event descriptions
(cherry picked from commit 71064f481b)
2019-05-14 09:13:02 +02:00
zotlabs
85a29fce94 bbcode map bypass wasn't catching all map forms.
(cherry picked from commit 436293713b)
2019-05-14 09:12:35 +02:00
Mario
71ecb470b6 Merge branch 'dev' into 'dev'
bbcode map bypass wasn't catching all map forms.

See merge request hubzilla/core!1647
2019-05-14 09:10:48 +02:00
Mario Vavti
15a000bb45 add autocomplete js to calendar and fix issue with extended likes mid 2019-05-14 09:09:48 +02:00
Max Kostikov
18e4a7ac6e Merge branch 'dev' into 'dev'
Fix comments scroll button CSS

See merge request hubzilla/core!1649
2019-05-13 23:19:19 +02:00
Max Kostikov
d0322f5fbd Fix comments scroll button CSS 2019-05-13 23:16:36 +02:00
Mario Vavti
c1f01b7e35 css fixes 2019-05-13 22:00:40 +02:00
Mario Vavti
71064f481b deal with privacy mentions in event descriptions 2019-05-13 15:45:05 +02:00
zotlabs
436293713b bbcode map bypass wasn't catching all map forms. 2019-05-13 05:14:43 -07:00
Mario Vavti
fc726bfb4b fix button size 2019-05-13 13:11:14 +02:00
Mario Vavti
b0c3780667 fix button size 2019-05-13 13:02:23 +02:00
Mario Vavti
3e431c65be bump version 2019-05-13 12:17:08 +02:00
Mario Vavti
5b0b90d1f5 bump version, update autoload cache and update strings 2019-05-13 12:13:18 +02:00
Mario Vavti
d16714e84b calendar merge: cleanup 2019-05-13 11:30:13 +02:00
Mario Vavti
1d5fff9f58 upgrade jgrowl 2019-05-13 10:53:10 +02:00
Mario Vavti
fbe8d6144a port db_indexes() from zap 2019-05-13 10:46:12 +02:00
Mario Vavti
d5f59a57bf don't do oembed processing on naked links and smarty lib cleanup. ported from zap. 2019-05-13 10:39:40 +02:00
Mario Vavti
7465c79884 optimise oembed pdf processing so we do not actually load the content, which could cause performance issues. ported from zap. 2019-05-13 10:28:06 +02:00
Mario Vavti
769195fcff Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-13 10:14:06 +02:00
Mario Vavti
dc786bd1cc form security token for mod register ported from zap 2019-05-13 10:13:51 +02:00
Max Kostikov
960f4ed649 Merge branch 'dev' into 'dev'
Add new Russian translations

See merge request hubzilla/core!1646
2019-05-12 17:15:01 +02:00
Max Kostikov
91ad3bf1b6 Update hstrings.php 2019-05-12 17:09:59 +02:00
Max Kostikov
91b495d526 Update hmessages.po 2019-05-12 17:09:15 +02:00
Mario Vavti
973d91d120 add btlogger to unxmlify() 2019-05-11 16:42:53 +02:00
Max Kostikov
bf5deace8e Merge branch 'dev' into 'dev'
Replace photo URL for gallery on clonned channel post sync

See merge request hubzilla/core!1645
2019-05-11 15:46:16 +02:00
Max Kostikov
0e4acf6299 Replace photo URL for gallery on clonned channel post sync 2019-05-11 15:40:04 +02:00
Mario
a5cd0061c5 Merge branch 'dev' into 'dev'
use 'cache' flag to bbcode() on content destined for Zot6. We've seen rendered...

See merge request hubzilla/core!1644
2019-05-11 15:39:31 +02:00
Mario Vavti
630e3903fa bump version 2019-05-10 15:44:15 +02:00
Mario Vavti
0b6a5fad70 update justified gallery lib 2019-05-10 14:55:37 +02:00
Mario Vavti
67ca1b82cc css fix for bootstrap 4.3.1 2019-05-10 14:36:11 +02:00
Mario Vavti
9866053f0c update bootstrap to version 4.3.1 2019-05-10 14:21:36 +02:00
Mario Vavti
89a2c1a09c fix issue with color selector 2019-05-10 13:56:03 +02:00
Mario Vavti
70220d8b9c typo 2019-05-10 12:21:50 +02:00
Mario Vavti
274f69526f calendar merge: implement channel calendar import in cdav/calendar 2019-05-10 12:18:37 +02:00
zotlabs
d7026fe36b use 'cache' flag to bbcode() on content destined for Zot6. We've seen rendered map HTML in a couple of places and these should never be rendered for outgoing content as they will only be purified on the other end. 2019-05-09 22:06:32 -07:00
Max Kostikov
b9b65d7dfb Merge branch 'dev' into 'dev'
remove the caldav and event app and make calendar the default app

See merge request hubzilla/core!1643
2019-05-09 19:40:47 +02:00
Max Kostikov
1545c78d05 Merge branch 'dev' into 'dev'
Add 'Create' button translation in CalDAV

See merge request hubzilla/core!1642
2019-05-09 14:41:12 +02:00
Mario Vavti
f0c292e77b remove the caldav and event app and make calendar the default app 2019-05-09 14:39:40 +02:00
Max Kostikov
62336127e3 Add 'Create' button translation 2019-05-09 14:36:02 +02:00
Max Kostikov
5beaf8ac98 Add 'Create' button translation 2019-05-09 14:34:58 +02:00
Mario Vavti
9efd484e27 calendar merge: cleanup and comment out some unused code 2019-05-09 13:43:20 +02:00
Max Kostikov
44d5cf980a Merge branch 'dev' into 'dev'
another DB update to fix uid_mid index in item table and add xchan_photo_m index to xchan table

See merge request hubzilla/core!1641
2019-05-08 23:30:48 +02:00
Mario Vavti
e53650d6c6 another DB update to fix uid_mid index in item table and add xchan_photo_m index to xchan table 2019-05-08 20:12:54 +02:00
Max Kostikov
5bf9a9828c Merge branch 'channel_update' into 'dev'
Channel update

See merge request hubzilla/core!1639
2019-05-08 19:55:21 +02:00
Mario
24f3bc9f0c Channel update 2019-05-08 19:55:21 +02:00
Mario Vavti
c200e55f95 remove option which should never have slipped into dev branch 2019-05-08 16:15:26 +02:00
Max Kostikov
ea19d59fca Merge branch 'dev' into 'dev'
Replace own image URL in clonned channel posts

See merge request hubzilla/core!1638
2019-05-08 10:43:06 +02:00
Max Kostikov
d34d14c1f4 Replace own image URL in clonned channel posts 2019-05-08 10:40:46 +02:00
Max Kostikov
7b17306dbd Merge branch 'dev' into 'dev'
Change thumbnails processing logic on image edit

See merge request hubzilla/core!1637
2019-05-08 08:32:57 +02:00
Max Kostikov
6731564c2d Update Photos.php 2019-05-08 08:30:25 +02:00
Max Kostikov
194ba0cf8d Update PhotoDriver.php 2019-05-08 08:28:35 +02:00
Max Kostikov
6fc2429540 Merge branch 'dev' into 'dev'
Respect thumbnail storage location on image editing

See merge request hubzilla/core!1636
2019-05-08 01:54:18 +02:00
Max Kostikov
bdcbe61273 Respect thumbnail storage location on image editing 2019-05-08 01:52:10 +02:00
Max Kostikov
de5d7bfbd3 Add photo usage detection if not exist on thumbnail save 2019-05-08 00:49:41 +02:00
Mario
242878c45c Merge branch 'dev' into 'dev'
possible xchan confusion include/follow

See merge request hubzilla/core!1635
2019-05-06 13:49:17 +02:00
zotlabs
c0911da887 review of last commit 2019-05-06 04:19:54 -07:00
zotlabs
6e0bf04276 possible xchan (protocol) confusion in include/follow 2019-05-06 04:15:34 -07:00
Max Kostikov
56c460d932 Merge branch 'dev' into 'dev'
Remove 'os_syspath' from direct 'photo' table update

See merge request hubzilla/core!1634
2019-05-06 10:46:11 +02:00
Max Kostikov
f0933b66a9 Remove 'os_syspath' from direct 'photo' table update 2019-05-06 10:39:47 +02:00
Max Kostikov
422d633f89 Add system.filesystem_storage_thumbnails description 2019-05-05 20:17:32 +02:00
Max Kostikov
0537be129c More precise scroll back to initial comment in thread 2019-05-05 19:00:00 +02:00
Max Kostikov
9b947c8370 Merge branch 'dev' into 'dev'
Threaded comments usability imrovements

See merge request hubzilla/core!1633
2019-05-05 18:15:58 +02:00
Max Kostikov
14eb4326e7 Scroll back to initial low level comment 2019-05-05 18:13:00 +02:00
Max Kostikov
89a3e8fcc7 Use own variable for "Go to previous comment" hint 2019-05-05 18:10:53 +02:00
Max Kostikov
6fd5133bed Force to add "go to previous comment" hint 2019-05-05 18:09:25 +02:00
Max Kostikov
e010877490 Scroll back if more than one level in thread 2019-05-05 18:07:44 +02:00
Max Kostikov
f56371c79b Merge branch 'dev' into 'dev'
Threaded comments navigation elements fixes

See merge request hubzilla/core!1632
2019-05-05 15:41:17 +02:00
Max Kostikov
c98f3c5d29 Threaded comments navigation elements fixes 2019-05-05 15:38:08 +02:00
Max Kostikov
5c8de9d82f Allign arrows position 2019-05-05 14:28:15 +02:00
Mario
b9c8b6ba23 Merge branch 'dev' into 'dev'
Add arrows to scroll between related comments

See merge request hubzilla/core!1629
2019-05-05 14:14:07 +02:00
Max Kostikov
6cd968b53b Add arrows to scroll between related comments 2019-05-05 14:14:07 +02:00
Max Kostikov
2aa76d257c Merge branch 'db_update' into 'dev'
port db update improvements from zap

See merge request hubzilla/core!1628
2019-05-04 22:37:21 +02:00
Max Kostikov
32c0be8bde Merge branch 'dev' into 'dev'
found another case where channel_r_photos could get referenced

See merge request hubzilla/core!1631
2019-05-04 12:05:38 +02:00
zotlabs
88d283a89d found another case where channel_r_photos could get referenced 2019-05-04 02:58:57 -07:00
Max Kostikov
66b370c421 Merge branch 'dev' into 'dev'
strip obsolete channel_(rw)_photos from channel sync packets

See merge request hubzilla/core!1630
2019-05-04 10:32:31 +02:00
zotlabs
20bf139b3f strip obsolete channel_(rw)_photos from channel sync packets 2019-05-03 15:27:26 -07:00
Mario Vavti
1da4602567 port db update improvements from zap 2019-05-03 15:13:13 +02:00
Max Kostikov
e7ef69e6e7 Merge branch 'dev' into 'dev'
Update Russian translation

See merge request hubzilla/core!1627
2019-05-03 14:59:58 +02:00
Max Kostikov
d55904d4db Update hstrings.php 2019-05-03 14:52:43 +02:00
Max Kostikov
740dc59255 Update hmessages.po 2019-05-03 14:52:08 +02:00
Mario
98b6362c07 Merge branch 'dev' into 'dev'
removing items from ex-connections turns out to be more complicated than originally envisioned

See merge request hubzilla/core!1626
2019-05-03 14:16:56 +02:00
Mario Vavti
cd829c096b update directory on cover photo changes 2019-05-03 14:11:14 +02:00
zotlabs
f127c55802 removing items from ex-connections turns out to be more complicated than originally envisioned 2019-05-03 04:09:04 -07:00
zotlabs
13247a0e00 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-03 04:04:02 -07:00
Max Kostikov
609752d331 Merge branch 'revert-3528610a' into 'dev'
Revert "Fix comment edit field expansion on reply on comment"

See merge request kostikov/core!1
2019-05-03 10:09:54 +02:00
Max Kostikov
413410d02d Revert "Fix comment edit field expansion on reply on comment"
This reverts commit 3528610a51
2019-05-03 10:09:54 +02:00
Max Kostikov
3528610a51 Fix comment edit field expansion on reply on comment 2019-05-03 10:03:40 +02:00
Mario Vavti
59ee045c24 parent -> id 2019-05-03 09:01:53 +02:00
zotlabs
b1dec12893 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-05-03 00:00:00 -07:00
zotlabs
319b0acdd8 fix item query 2019-05-02 23:58:51 -07:00
Mario
c605c46f83 Merge branch 'replyto_fixes' into 'dev'
provide xchan_url if there is no xchan_addr

See merge request hubzilla/core!1622
2019-05-03 08:41:01 +02:00
Mario
9ef692b48c Merge branch 'dev' into 'dev'
work on emoji reactions - sync with matching update to addons

See merge request hubzilla/core!1623
2019-05-03 08:39:01 +02:00
Mario
6da4dfe605 Merge branch 'unfriend_delete_posts_bug' into 'dev'
Unfriend delete posts bug

See merge request hubzilla/core!1624
2019-05-03 08:36:58 +02:00
zotlabs
7b4cb31a10 when removed items for unfriended connections, check if the parent has been retained, not just the item 2019-05-02 22:34:34 -07:00
zotlabs
03ce4d7e2b Merge branch 'dev' of ../hz into dev 2019-05-02 21:19:15 -07:00
zotlabs
f55f5fa92a emojireaction compat 2019-05-02 21:18:54 -07:00
zotlabs
76757ad1f2 Merge branch 'dev' of /home/macgirvin/hz into dev 2019-05-02 20:33:45 -07:00
zotlabs
347e88dc65 move apschema to core to use for emojiReaction mapping for zot6 2019-05-02 20:32:26 -07:00
Mario Vavti
746d032e58 more provide xchan_url if there is no xchan_addr 2019-05-02 13:05:52 +02:00
Mario Vavti
b6d598a001 provide xchan_url if there is no xchan_addr 2019-05-02 12:58:24 +02:00
Max Kostikov
b35961c53c Merge branch 'dev' into 'dev'
Add check if threads are enabled globally

See merge request hubzilla/core!1621
2019-05-02 11:42:39 +02:00
Max Kostikov
47fba5827b Merge branch 'dev' into 'dev'
# Conflicts:
#   Zotlabs/Lib/ThreadItem.php
2019-05-02 11:33:07 +02:00
Max Kostikov
47f75ad8bf Add check if threads are enabled globally 2019-05-02 11:28:29 +02:00
Max Kostikov
516167c0f8 Revert "Merge branch 'dev' into 'dev'"
This reverts merge request !1620
2019-05-02 10:58:00 +02:00
Mario
238b3a97a8 Merge branch 'dev' into 'dev'
Check if 'reply on comment' enabled for this profile

See merge request hubzilla/core!1620
2019-05-02 10:48:55 +02:00
Max Kostikov
d4ab8a5a5d Check if 'reply on comment' enabled for this profile 2019-05-02 10:40:33 +02:00
Mario Vavti
6672299f8a calendar merge: use b64 encoded mid for plink 2019-05-02 10:11:08 +02:00
Max Kostikov
ea5f515f18 Merge branch 'dev' into 'dev'
Add Zap threads support

See merge request hubzilla/core!1619
2019-05-02 08:33:51 +02:00
Max Kostikov
ea6293544d Add Zap threads support 2019-05-02 08:30:38 +02:00
Max Kostikov
cbe35281b9 Merge branch 'dev' into 'dev'
Add AS threaded comments support

See merge request hubzilla/core!1618
2019-05-01 21:45:12 +02:00
Max Kostikov
51a0fc45e2 Add threaded comments support 2019-05-01 21:40:43 +02:00
Max Kostikov
1e7e2bd34f Update Item.php 2019-05-01 19:10:46 +02:00
Max Kostikov
fa2f3d136f Merge branch 'xmlify' into 'dev'
address xmlify/unxmlify performance issue

See merge request hubzilla/core!1616
2019-05-01 16:41:19 +02:00
Max Kostikov
92b6026695 Merge branch 'dev' into 'dev'
Use thr_parent tp handle reply on comment feature

See merge request hubzilla/core!1617
2019-05-01 16:10:40 +02:00
Mario Vavti
c9a5f21344 calendar merge: remove deprecated share variable 2019-05-01 15:52:17 +02:00
Max Kostikov
0174bf3722 Fix missprint 2019-05-01 15:49:17 +02:00
Max Kostikov
0d003e7450 Preserve parent_mid with threaded comments 2019-05-01 15:45:12 +02:00
Mario Vavti
8847838c43 address xmlify/unxmlify performance issue 2019-05-01 15:40:06 +02:00
Mario Vavti
9594ce9a8a calendar merge: fix event_xchan mixup 2019-05-01 15:35:20 +02:00
Max Kostikov
4a91d09c86 Use thr_parent for comment replies 2019-05-01 15:33:59 +02:00
Max Kostikov
06837bd32b Revert code to use thr_parent for comment replies 2019-05-01 15:12:01 +02:00
Mario
b8d8887d5a Merge branch 'dev' into 'dev'
a couple of issues with the suggestions when viewing from the directory module

See merge request hubzilla/core!1615
2019-05-01 10:07:07 +02:00
Mario
256f8dd41b Merge branch 'dev' into 'dev'
Add 'reply on comment' feature

See merge request hubzilla/core!1614
2019-05-01 10:06:24 +02:00
zotlabs
e0fdafc7e5 Merge branch 'dev' of ../hz into dev 2019-04-30 23:39:56 -07:00
zotlabs
9a55df245f disable directory options when using suggestion mode and only return one page (60 items)
so that sorting works correctly
2019-04-30 23:38:48 -07:00
zotlabs
9800d95c50 fix suggestion ordering in directory module 2019-04-30 23:19:04 -07:00
Max Kostikov
c340416c94 Add 'reply on comment' code 2019-05-01 06:24:58 +02:00
Max Kostikov
9af8a1d30c Move JS to main module 2019-05-01 06:23:56 +02:00
Max Kostikov
4da96ee980 Remove 'doreply' JS function 2019-04-30 17:35:53 +02:00
Max Kostikov
21637e033c Add JS 'doreply' function 2019-04-30 17:34:56 +02:00
Max Kostikov
9ebf2dc97b Add "reply to" hint to submit button 2019-04-30 17:33:54 +02:00
Mario Vavti
a04689b784 do not allow editing events that do not belong to us 2019-04-30 12:08:19 +02:00
Max Kostikov
5066945adc Fix add multiple icons on 'Submit' button when reply on comment 2019-04-30 11:17:22 +02:00
Max Kostikov
e945c12856 Add displaying support for threaded comments 2019-04-30 11:00:13 +02:00
Mario Vavti
0b062d0b8a select event by event_hash instead of item_id 2019-04-30 10:47:48 +02:00
Mario Vavti
9cc1eff15c remove logging 2019-04-30 00:12:19 +02:00
Mario Vavti
327e5d06e1 calendar merge: implement single event editing UI 2019-04-30 00:09:57 +02:00
Max Kostikov
a2dd0aea92 Merge branch 'cherry-pick-80ca2023' into 'dev'
Add 'reply on comment' feature

See merge request kostikov/core!1
2019-04-29 23:45:58 +02:00
Max Kostikov
39da3459c7 Add 'reply on comment' feature
(cherry picked from commit 80ca2023aa67ef7c0c43414acaf135e5748044b2)
2019-04-29 23:43:11 +02:00
Max Kostikov
c0be4c36e1 Update main.js 2019-04-29 23:40:21 +02:00
Max Kostikov
31e04378cd Add 'reply to comment' processing 2019-04-29 23:30:51 +02:00
Max Kostikov
e80c99ad74 Add 'reply to comment' button 2019-04-29 23:29:16 +02:00
Max Kostikov
d9be443e53 Add initial threaded comments support 2019-04-29 23:26:20 +02:00
Max Kostikov
6db323b15e Add variables for threaded comments support 2019-04-29 23:24:48 +02:00
Max Kostikov
5abbfd3f19 Add initial threaded comment support 2019-04-29 23:21:17 +02:00
Mario
674215e9e6 Merge branch 'dev' into 'dev'
Add jot videos inline and with poster if possible

See merge request hubzilla/core!1613
2019-04-29 11:58:59 +02:00
Mario Vavti
dce6a5763d calendar merge: d&d support and some minor cleanup and fixes 2019-04-29 11:45:55 +02:00
zotlabs
d89d6e8a01 Merge branch 'dev' of ../hz into dev 2019-04-28 18:21:41 -07:00
zotlabs
6230dbed2d Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-28 18:21:28 -07:00
zotlabs
9641254443 event attachments still weren't being delivered to zot6 2019-04-28 18:20:40 -07:00
zotlabs
95871fe13c Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-28 17:47:26 -07:00
Max Kostikov
0cecfceb14 Merge branch 'sql_fixes' into 'dev'
possible sql performance improvement

See merge request hubzilla/core!1611
2019-04-28 20:59:53 +02:00
harukin
ba9ea3f02a Merge branch 'origin' into 'develop'
Update 4.0.3

See merge request harukin/core!52
2019-04-28 17:52:03 +09:00
zotlabs
13970280d9 Merge branch 'dev' of ../hz into dev 2019-04-27 17:22:00 -07:00
zotlabs
55ce80aabe Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-27 17:21:42 -07:00
zotlabs
9536a490b3 Add jot videos inline and with poster if possible 2019-04-27 17:20:38 -07:00
Mario Vavti
405e07f0a2 improve channel date query 2019-04-27 23:01:05 +02:00
Max Kostikov
d3ce91bd89 Merge branch 'dev' into 'dev'
Use goaway() base function

See merge request hubzilla/core!1612
2019-04-27 21:47:57 +02:00
Max Kostikov
eb44201c5f Use goaway() base function 2019-04-27 21:38:54 +02:00
Mario Vavti
73248aadd5 possible sql performance improvement 2019-04-27 15:35:41 +02:00
Mario
f6a4084f81 bump version 2019-04-26 11:30:23 +02:00
Mario Vavti
d5f89c165a update changelog
(cherry picked from commit a518471a27)
2019-04-26 11:29:01 +02:00
Mario Vavti
a518471a27 update changelog 2019-04-26 11:28:06 +02:00
zotlabs
dce5080e53 permissions cleanup
(cherry picked from commit 2d886b65ce)
2019-04-26 10:52:35 +02:00
zotlabs
2221d4d612 add attachments to zot6 event objects, add zot6 to federated transports (webfinger)
(cherry picked from commit 0615709a7a)
2019-04-26 10:43:56 +02:00
Zot
5f73a46c05 import/export zot6 hublocs+xchans
(cherry picked from commit e2dfa1d72f)
2019-04-26 10:42:09 +02:00
Zot
b782c6bd16 update fix_system_urls() to handle zot6 hublocs (recommend cherry-pick to master)
(cherry picked from commit f8c583636c)
2019-04-26 10:41:52 +02:00
Zot
ab8d8aa552 hubloc confusion in magic auth
(cherry picked from commit 3c8f8b76aa)
2019-04-26 10:41:35 +02:00
Daniel Lowe
f955276694 Fix infinite loop using postgres as backend
unescapebin is handed a string in some cases, and it causes an infinite
loop when it does.  This ensures that the argument is a resource before
loading its contents.


(cherry picked from commit 9a6531e2a2)
2019-04-26 10:41:04 +02:00
zotlabs
77cc60faf2 required php version not available but allowed to continue
(cherry picked from commit 6feddcbced)
2019-04-26 10:40:02 +02:00
Mario
a6f50b8c85 Merge branch 'dev' into 'dev'
import/export zot6 hublocs+xchans

See merge request hubzilla/core!1610
2019-04-26 09:34:58 +02:00
Zot
e2dfa1d72f import/export zot6 hublocs+xchans 2019-04-26 09:34:58 +02:00
zotlabs
9a61c0a6fc Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-26 00:28:29 -07:00
zotlabs
e10b25a12c Merge branch 'dev' of ../hz into dev 2019-04-26 00:25:32 -07:00
zotlabs
0c1e803208 import/export zot6 hublocs+xchans 2019-04-26 00:24:58 -07:00
Mario
b57dcc74d1 Merge branch 'dev' into 'dev'
update fix_system_urls() to handle zot6 hublocs (recommend cherry-pick to master)

See merge request hubzilla/core!1609
2019-04-26 09:12:23 +02:00
Zot
f8c583636c update fix_system_urls() to handle zot6 hublocs (recommend cherry-pick to master) 2019-04-26 09:12:23 +02:00
zotlabs
e6521d1cf3 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-25 21:49:18 -07:00
zotlabs
96785e8df1 update fix_system_urls() to handle zot6 hublocs 2019-04-25 21:45:04 -07:00
Mario
d689778465 Merge branch 'dev' into 'dev'
hubloc confusion in magic auth

See merge request hubzilla/core!1608
2019-04-25 11:54:37 +02:00
Zot
3c8f8b76aa hubloc confusion in magic auth 2019-04-25 11:54:37 +02:00
Mario Vavti
c123fa5422 update blueimp/jquery-file-upload 2019-04-25 11:50:26 +02:00
Mario Vavti
0ade8be7f7 add missing files 2019-04-25 11:47:59 +02:00
Mario Vavti
a60c2f38c6 update sabre/vobject 2019-04-25 11:47:18 +02:00
Mario
f1c0797780 Revert "update composer libs"
This reverts commit e779335d06
2019-04-25 11:24:09 +02:00
Mario
701167bc12 Revert "fix test"
This reverts commit c5fca0a1e7
2019-04-25 11:22:45 +02:00
Mario
a39e63e324 Revert "dbunit does not work wirh phpunit v 8.1.3 - try 7.5.9"
This reverts commit 8401e9c2b4
2019-04-25 11:22:21 +02:00
Mario Vavti
8401e9c2b4 dbunit does not work wirh phpunit v 8.1.3 - try 7.5.9 2019-04-25 11:14:40 +02:00
Mario Vavti
c5fca0a1e7 fix test 2019-04-25 10:52:57 +02:00
Mario Vavti
e779335d06 update composer libs 2019-04-25 08:52:50 +02:00
zotlabs
26039adf5b compound name warning 2019-04-24 16:31:31 -07:00
zotlabs
c88286556a hubloc confusion during magic auth where hublocs with more than one network may exist 2019-04-24 16:21:59 -07:00
zotlabs
831b9d4433 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-24 16:21:13 -07:00
Mario
e937e8fff9 Merge branch 'dev' into 'dev'
Add modification date in Etag hash calculation and optimize cached photos processing

See merge request hubzilla/core!1607
2019-04-24 21:11:19 +02:00
Mario Vavti
f616b2d49a calendar merge: bring back event categories 2019-04-24 14:48:30 +02:00
Max Kostikov
fe84dae313 Optimize cached photos processing 2019-04-24 11:18:17 +02:00
Max Kostikov
9104933b18 Add modified date in Etag hash calculation 2019-04-24 11:13:17 +02:00
Max Kostikov
79654635d3 Merge branch 'update-docs' into 'dev'
Update docs

See merge request hubzilla/core!1606
2019-04-22 19:49:08 +02:00
Max Kostikov
f0edfca75c Merge branch 'fix-infinite-loop' into 'dev'
Fix infinite loop using postgres as backend

See merge request hubzilla/core!1605
2019-04-22 19:47:49 +02:00
Daniel Lowe
e845da2edc Tidy up various bits of documentation 2019-04-22 15:50:02 +00:00
Daniel Lowe
7a3050f2c0 Remove section on techlevels 2019-04-22 15:49:39 +00:00
Daniel Lowe
9a6531e2a2 Fix infinite loop using postgres as backend
unescapebin is handed a string in some cases, and it causes an infinite
loop when it does.  This ensures that the argument is a resource before
loading its contents.
2019-04-21 11:14:17 +00:00
Max Kostikov
a6a17a85f3 Merge branch 'calendar_merge' into 'dev'
calendar merge - initial checkin

See merge request hubzilla/core!1599
2019-04-20 20:14:58 +02:00
Mario Vavti
9275fd16c2 resolve merge conflict 2019-04-20 10:23:11 +02:00
Max Kostikov
904ae05810 Merge branch 'dev' into 'dev'
Add anti SEO link properties in directory listing

See merge request hubzilla/core!1603
2019-04-19 23:19:38 +02:00
Max Kostikov
54f95389a8 Add anti SEO link properties in directory listing 2019-04-19 23:17:24 +02:00
Max Kostikov
a8fc70a5b9 Merge branch 'dev' into 'dev'
Fix update button in cdav_calendar.tpl

See merge request hubzilla/core!1602
2019-04-19 21:26:48 +02:00
Max Kostikov
c374072822 Update cdav_calendar.tpl 2019-04-19 21:22:42 +02:00
Max Kostikov
0212de68a4 Merge branch 'dev' into 'dev'
Add translation to calendar event update button

See merge request hubzilla/core!1601
2019-04-19 21:14:29 +02:00
Max Kostikov
2ea9b6d409 Add translation to update button 2019-04-19 21:11:34 +02:00
Max Kostikov
823d71df28 Merge branch 'dev' into 'dev'
Fix translation to update button

See merge request hubzilla/core!1600
2019-04-19 21:06:09 +02:00
Max Kostikov
7560918b32 Add translation to update button 2019-04-19 21:04:00 +02:00
Mario Vavti
fd87faa7a6 Merge branch 'dev' into calendar_merge 2019-04-19 19:37:06 +02:00
Mario Vavti
cb2d706fa1 provide location and description information 2019-04-19 19:06:01 +02:00
Mario
6b638ac896 Merge branch 'dev' into 'dev'
Add remove profile photo button

See merge request hubzilla/core!1598
2019-04-19 17:23:10 +02:00
Mario Vavti
2bd5ae3617 provide link to source and some cleanup 2019-04-19 17:21:45 +02:00
Mario Vavti
39a5311315 Merge branch 'dev' into calendar_merge 2019-04-19 15:34:02 +02:00
Mario Vavti
9b6e46dc6b calendar merge initial commit 2019-04-19 15:32:56 +02:00
Max Kostikov
7311d1182d Add remove profile photo button 2019-04-19 15:30:05 +02:00
Max Kostikov
ea1d8b8104 Add remove profile photo button 2019-04-19 15:29:08 +02:00
Mario
fb03e3f00e Merge branch 'dev' into 'dev'
required php version not available but allowed to continue

See merge request hubzilla/core!1597
2019-04-19 15:19:43 +02:00
Mario
c9c35255e7 Merge branch 'dev' into 'dev'
Precise cache related headers processing; remove duplicated code and optimization

See merge request hubzilla/core!1596
2019-04-19 15:19:19 +02:00
Mario
99a578dbad Merge branch 'homeinstall_certbot' into 'dev'
Letsencrypt: replaced dehydrated by certbot. Backup: replaced rsnaphsot by...

See merge request hubzilla/core!1592
2019-04-19 15:18:42 +02:00
zotlabs
e56c0a6251 Merge branch 'dev' of ../hm into dev 2019-04-18 13:59:06 -07:00
zotlabs
66479e2aa7 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-18 13:58:43 -07:00
zotlabs
6feddcbced required php version not available but allowed to continue 2019-04-18 13:53:39 -07:00
Max Kostikov
db020ca1a3 Update Photo.php 2019-04-18 21:55:06 +02:00
Max Kostikov
6c93518ef7 Merge branch 'dev' into 'dev'
add attachments to zot6 event objects, add zot6 to federated transports (webfinger)

See merge request hubzilla/core!1593
2019-04-18 20:59:41 +02:00
Max Kostikov
eb02d01eed Update Photo.php 2019-04-18 10:13:03 +02:00
Max Kostikov
7a9093f634 Implement ETag: header support for cache control 2019-04-18 09:50:37 +02:00
harukin
5f691fb05c Merge branch 'origin' into 'develop'
Update 4.0.2

See merge request harukin/core!48
2019-04-18 06:33:41 +09:00
Max Kostikov
1732b2dfe3 Add 'must-revalidate' to Cache-control header for profile photos 2019-04-17 23:15:46 +02:00
Max Kostikov
a62f891a60 Precise 'Modified:' header processing if no profile photo added; remove duplicated code 2019-04-17 18:30:50 +02:00
zotlabs
a22ecd42ed Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-16 18:34:41 -07:00
Max Kostikov
b7cb2a2951 Merge branch 'dev' into 'dev'
Fix file path with filesystem storage

See merge request hubzilla/core!1595
2019-04-16 22:26:53 +02:00
Max Kostikov
c490970324 Fix file path with filesystem storage 2019-04-16 22:24:48 +02:00
Max Kostikov
5a9c8a9343 Merge branch 'dev' into 'dev'
Use base image content instead of os_path; fix base images stats

See merge request hubzilla/core!1594
2019-04-16 17:37:07 +02:00
Max Kostikov
5ba7e5d7d7 Use base image content instead of os_path; fix base images stats 2019-04-16 17:31:27 +02:00
zotlabs
f7b281a65f Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-15 22:29:50 -07:00
zotlabs
df5a1c59e6 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-15 20:53:44 -07:00
zotlabs
0615709a7a add attachments to zot6 event objects, add zot6 to federated transports (webfinger) 2019-04-15 20:51:57 -07:00
OJ Random
d85a0130b7 Letsencrypt: replaced dehydrated by certbot. Backup: replaced rsnaphsot by rsync. Readme: changed install instructions. 2019-04-15 21:01:13 +02:00
Mario
71f17a233e Merge branch 'dev' into 'dev'
Extending GitLab CI/CD.

See merge request hubzilla/core!1589
2019-04-15 17:52:52 +02:00
Max Kostikov
25c35cbbe4 Merge branch 'dev' into 'dev'
Update INSTALL.txt

See merge request hubzilla/core!1591
2019-04-15 15:20:51 +02:00
Max Kostikov
257ba570ee Update INSTALL.txt 2019-04-15 15:18:35 +02:00
Max Kostikov
91e96b2314 Merge branch 'dev' into 'dev'
Update Russian translation

See merge request hubzilla/core!1590
2019-04-15 12:55:34 +02:00
Max Kostikov
c2ee7cbff5 Update Russian hstrings.php 2019-04-15 12:25:40 +02:00
Max Kostikov
27f813e043 Update Russian hmessages.po 2019-04-15 12:24:51 +02:00
Max Kostikov
00ed91f12e Fix space in plurals regexp 2019-04-15 12:23:55 +02:00
Max Kostikov
4cb5efc277 Add command line tool for thumbnails storage convertion 2019-04-14 20:16:16 +02:00
Klaus Weidenbach
65a453d21b Extending GitLab CI/CD.
Add PHP7.3 image and .gitlab-ci.yml restructuring.
Use YAML Anchors for job templates.
Add more DB/PHP version combinations.
2019-04-13 22:55:03 +02:00
Mario
9c8cb4dea3 Merge branch 'dev' into 'dev'
Thumbnails storage in filesystem or database implementation

See merge request hubzilla/core!1588
2019-04-13 21:19:06 +02:00
Max Kostikov
ed902fdb70 Update photo usage only for thumbnails 2019-04-13 14:12:58 +02:00
Max Kostikov
509067391b Update xchan profile edited date only once 2019-04-13 14:08:44 +02:00
Max Kostikov
04b261057d Set 'os_syspath' with local path 2019-04-12 22:34:32 +02:00
Max Kostikov
852343f254 Override received 'content' if we saving thumbnail in filesystem 2019-04-12 16:27:58 +02:00
Max Kostikov
26e35344d0 Add multiple profiles support on image operations in photo driver 2019-04-12 15:53:00 +02:00
Max Kostikov
d3a619659f Fix 'os_syspath' if we store thumbnails in filesystem 2019-04-12 15:38:10 +02:00
Max Kostikov
979f2415fb Save profile photo in filesystem or database; more precise modification time processing 2019-04-12 15:06:59 +02:00
Max Kostikov
28c1d219f6 Save cover photo thumbnails in filesystem or database 2019-04-12 15:03:59 +02:00
Max Kostikov
5792f4bf07 Add comment on required changes in upcoming releases 2019-04-12 15:00:56 +02:00
Max Kostikov
3a0fa5cb29 Store thumbnails in filesystem or database 2019-04-12 14:59:13 +02:00
Max Kostikov
074ee656f0 Fetch thumbnails and store it in filesystem or DB; update xchan profile edit time on fetch 2019-04-12 14:56:07 +02:00
Mario
064f93185c Merge branch 'dev' into 'dev'
Fix use UNIX socket file to connect DB

See merge request hubzilla/core!1587
2019-04-12 14:49:01 +02:00
Max Kostikov
4b5922f652 Fix wrong image resolution selection 2019-04-10 22:09:10 +02:00
Max Kostikov
85be906b68 Fix image scale on thumbnail save 2019-04-10 14:44:50 +02:00
Max Kostikov
775285cdf8 Update comment htconfig.sample.php 2019-04-10 14:14:14 +02:00
Max Kostikov
42f96dc7a6 Fix use UNIX socket file to connect DB 2019-04-10 14:13:16 +02:00
Mario
e96fa64625 Merge branch 'dev' into 'dev'
Dev

See merge request hubzilla/core!1586
2019-04-10 13:25:57 +02:00
Mario
8dc495c9bc Merge branch 'dev' into 'dev'
Initial preparation to move local thumbnails in filesystem storage

See merge request hubzilla/core!1585
2019-04-10 13:25:03 +02:00
Max Kostikov
5d70d889e9 Revert "Update htconfig.sample.php"
This reverts commit f2126ef18c8b66020305d07dcefeacc4e55a3c12
2019-04-10 13:25:03 +02:00
zotlabs
999ae6eb49 typo 2019-04-08 17:03:08 -07:00
zotlabs
ae1450bbcf missing endTime on Zot6 encoded events, optimise the url fetch of embedphotos 2019-04-08 16:45:07 -07:00
Mario Vavti
dcd8a05809 version bump 2019-04-08 11:12:02 +02:00
Mario Vavti
62e466f774 Merge branch 'dev' 2019-04-08 11:10:10 +02:00
Mario Vavti
70777a047d Merge branch 'master' of https://framagit.org/hubzilla/core 2019-04-08 11:09:55 +02:00
Mario Vavti
47fd95db9d more changelog 2019-04-08 11:03:33 +02:00
Mario Vavti
7602d9e54b changelog and version bump 2019-04-08 11:00:21 +02:00
zotlabs
1ed0079882 Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-04-07 19:23:38 -07:00
Mario Vavti
b026be410c Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-04-07 22:48:33 +02:00
Mario Vavti
767a1711ff enable list views 2019-04-06 16:10:50 +02:00
zotlabs
a93bd8d944 security: perms_pending not evaluated correctly
(cherry picked from commit 5a46f1229d)
2019-04-06 10:30:32 +02:00
Mario
4e12f86e90 Merge branch 'dev' into 'dev'
security: perms_pending not evaluated correctly

See merge request hubzilla/core!1583
2019-04-06 10:27:30 +02:00
Mario Vavti
3007009fab upgrade cdav calendar to version 4 2019-04-06 10:22:03 +02:00
zotlabs
2d886b65ce permissions cleanup 2019-04-05 18:06:59 -07:00
zotlabs
8700b87030 Merge branch 'dev' of ../hz into dev 2019-04-05 16:48:04 -07:00
zotlabs
5a46f1229d security: perms_pending not evaluated correctly 2019-04-05 16:46:52 -07:00
Max Kostikov
9d5f8883a7 Merge branch 'dev' into 'dev'
Prevent return wrong profile photo modification date by plugin

See merge request hubzilla/core!1582
2019-04-05 14:24:22 +02:00
Max Kostikov
8e0b9b82e9 Update Photo.php 2019-04-05 14:21:05 +02:00
Max Kostikov
ea4b4ddce4 Update Photo.php 2019-04-05 14:17:39 +02:00
Max Kostikov
bd95c7b82a Update Photo.php 2019-04-05 14:15:40 +02:00
Max Kostikov
e20c5cf9cf Prevent return wrong profile photo modification date by plugin 2019-04-05 14:10:48 +02:00
Mario
6adb489cb3 Merge branch 'dev' into 'dev'
Sync cover photo removal with clones

See merge request hubzilla/core!1581
2019-04-04 16:46:40 +02:00
Max Kostikov
0c2db1cea5 Skip removal if no cover image found 2019-04-04 11:00:19 +02:00
Max Kostikov
e33604887b Sync cover photo removal with clones 2019-04-03 12:05:22 +02:00
Max Kostikov
410f37df1b Fix sync cover photo for clonned channels 2019-04-03 00:15:34 +02:00
Mario
c9f3883c8c Remove suggest channels from features 2019-04-02 15:12:32 +02:00
Mario
4346d7605d Revert "Revert "suggestion widget using feature_enabled still - upgrade to use apps.""
This reverts commit a0a2c27973
2019-04-02 14:59:35 +02:00
Mario
a0a2c27973 Revert "suggestion widget using feature_enabled still - upgrade to use apps."
This reverts commit b2bdc73164
2019-04-02 14:55:03 +02:00
Max Kostikov
3fb87ee76e Merge branch 'cover_photo_fixes' into 'dev'
missing string

See merge request hubzilla/core!1580
2019-04-01 17:26:27 +02:00
Max Kostikov
242aeea24c Add text to cover remove button 2019-04-01 13:15:16 +02:00
Mario Vavti
c305dc8d22 missing string 2019-04-01 12:55:36 +02:00
Mario
f61b898633 Merge branch 'dev' into 'dev'
Add remove cover photo function

See merge request hubzilla/core!1577
2019-04-01 12:42:28 +02:00
Mario
2bdcd436bb Merge branch 'dev' into 'dev'
check service class limits when syncing files

See merge request hubzilla/core!1578
2019-04-01 12:42:07 +02:00
zotlabs
a1bea7d7cc Merge branch 'dev' of ../hz into dev 2019-03-31 16:23:04 -07:00
zotlabs
b2bdc73164 suggestion widget using feature_enabled still - upgrade to use apps. 2019-03-31 16:22:02 -07:00
zotlabs
cbaf0a3864 check service class limits when syncing files 2019-03-30 15:11:13 -07:00
zotlabs
103563b375 we no longer use xchan_instance_url - this is an abook thing 2019-03-30 15:10:28 -07:00
Max Kostikov
595429fdde Add submit button styling 2019-03-30 23:08:41 +01:00
Max Kostikov
b384b27546 Revert "Add submit button styling"
This reverts commit 0b996245d5
2019-03-30 23:05:37 +01:00
Max Kostikov
0b996245d5 Add submit button styling 2019-03-30 23:01:07 +01:00
Max Kostikov
1ee91dd690 Add remove cover photo processing 2019-03-30 22:55:36 +01:00
Max Kostikov
f9e602c44c Add remove cover button 2019-03-30 22:54:20 +01:00
M. Dent
4fa827ddfd Merge branch 'connections_ordering' into 'dev'
add backend support for connections ordering

See merge request hubzilla/core!1576
2019-03-29 18:19:06 +01:00
Mario Vavti
1b3c73618c backslash 2019-03-29 15:51:31 +01:00
Mario Vavti
7b08f1cc8c missing use declaration 2019-03-29 15:50:10 +01:00
Max Kostikov
7d392e5adb Merge branch 'z6_discover_fixes' into 'dev'
fix various issues in z6_discover() and add zot6 hubloc creation on channel import

See merge request hubzilla/core!1575
2019-03-29 15:28:28 +01:00
Mario Vavti
f44cc2b60c fix typo 2019-03-28 15:56:28 +01:00
Mario Vavti
31680898e3 another fix for z6_discover() and create a zot6 hubloc if applicable 2019-03-28 15:51:24 +01:00
Mario Vavti
318fd7c9e3 add backend support for connections ordering 2019-03-27 20:42:56 +01:00
Mario Vavti
b10b8ca3f4 fix various issues in z6_discover() 2019-03-27 15:20:43 +01:00
Max Kostikov
b0c33308be Fix wrong bracket 2019-03-27 00:34:38 +01:00
Max Kostikov
1421c4e9d3 Merge branch 'dev' into 'dev'
Fix wrong permissions on attached images in personal messages

See merge request hubzilla/core!1574
2019-03-27 00:26:26 +01:00
Max Kostikov
f55dfc9025 Fix wrong permissions on attached images in personal messages 2019-03-27 00:17:14 +01:00
Max Kostikov
c218970890 Merge branch 'duplicate_fixes_1' into 'dev'
if we have an uuid deduplicate by uuid otherwise by mid

See merge request hubzilla/core!1573
2019-03-25 12:24:36 +01:00
Mario
bd27ce2520 Merge branch 'patch-20190324a' into 'dev'
Add ITEM_TYPE_CUSTOM support to Zotlabs/Module/Display.php

See merge request hubzilla/core!1572
2019-03-25 11:58:38 +01:00
Mario Vavti
44795b65f9 if we have an uuid deduplicate by uuid otherwise by mid 2019-03-25 11:33:01 +01:00
DM42.Net (Matt Dent)
af84c4e6bd Add ITEM_TYPE_CUSTOM support to Zotlabs/Module/Display.php 2019-03-24 22:56:18 -04:00
Mario Vavti
0a28207200 fix wrong field name 2019-03-24 21:45:23 +01:00
Mario Vavti
8ca2a5832c Revert "item_store(): deduplicate by mid OR uuid"
This reverts commit d8ce0d0df0.
2019-03-24 21:22:20 +01:00
Max Kostikov
333534dfe7 Merge branch 'items_fixes' into 'dev'
item_store(): deduplicate by mid OR uuid possible fix for #1349

See merge request hubzilla/core!1570
2019-03-24 16:45:21 +01:00
Mario Vavti
d8ce0d0df0 item_store(): deduplicate by mid OR uuid 2019-03-24 15:51:31 +01:00
Mario Vavti
28c3259449 Revert "item_store(): deduplicate by mid OR uuid"
This reverts commit 0d0ede7b14.
2019-03-24 15:49:03 +01:00
Mario Vavti
0d0ede7b14 item_store(): deduplicate by mid OR uuid 2019-03-24 15:47:57 +01:00
M. Dent
9ebf6bcc92 Merge branch 'core_fixes' into 'dev'
Core fixes

See merge request hubzilla/core!1569
2019-03-24 03:20:24 +01:00
Mario
9d186e9ba3 add punify() again 2019-03-23 22:53:29 +01:00
Mario
3c3a4526bf fix typo 2019-03-23 22:49:27 +01:00
Mario
3094c2ce17 fix subthread on sys channel items 2019-03-23 22:48:52 +01:00
Mario
393494a728 fix revert accidental moving of Features.php 2019-03-23 22:01:46 +01:00
Mario
d2725c3f49 aparently we do not use underscores anymore. this fixes spaming of dreports with recipient not found entries for our own xchan 2019-03-23 21:50:50 +01:00
Mario
4d4425a5bf fix variables for xporof_locale and xprof_postcode 2019-03-23 20:57:22 +01:00
Mario
c11fbe0868 revert accidental moving of Features.php 2019-03-23 20:33:43 +01:00
Mario
c676689df0 fix 48 hours timeframe check and remove unused var in mod changeaddr 2019-03-23 20:32:15 +01:00
Mario
0f5625d721 revert accidental moving of Enotify.php 2019-03-23 20:22:11 +01:00
Mario
6f5e6bd0f1 fix typo 2019-03-23 20:17:35 +01:00
Mario
a0af092ecb fix wrong variable in unused function 2019-03-23 20:01:20 +01:00
Mario
3a07a194ab Webfinger::zot_url() requires a string (webfinger address), empty var given in update_directory_entry() 2019-03-23 19:42:22 +01:00
Mario
682ffa7cf5 db_columns() requires a string, empty var given in process_channel_sync_delivery() 2019-03-23 19:21:28 +01:00
zotlabs
dc4a4ca9d3 nomadic is not a parameter in the hz version of encode_item_collection 2019-03-21 18:00:33 -07:00
harukin
087b45ab90 Merge branch 'origin' into 'develop'
marge from origin 4.1

See merge request harukin/core!45
2019-03-21 21:42:45 +09:00
Mario Vavti
33ac85f637 bump version 2019-03-21 11:16:35 +01:00
Mario Vavti
efd9421dc9 Merge branch 'dev' 2019-03-21 11:13:54 +01:00
Mario Vavti
9b696a872b bump version 2019-03-21 11:01:57 +01:00
Mario Vavti
aab515b16c optimize autoload cache and update changelog 2019-03-21 11:01:01 +01:00
Mario
f220628354 Merge branch 'dev' into 'dev'
hubzilla core issue #1356 , permissions not getting decrypted on follow

See merge request hubzilla/core!1563
2019-03-21 09:46:36 +01:00
Mario Vavti
322bc5dc87 another whitespace to trigger tests 2019-03-21 09:37:23 +01:00
zotlabs
75c3bda866 hubzilla core issue #1356 , permissions not getting decrypted on follow 2019-03-20 16:09:34 -07:00
Mario Vavti
b2b776169b just whitespace to trigger a new build test 2019-03-20 14:02:18 +01:00
M. Dent
8e8d7ae614 Merge branch 'video' into 'dev'
Video

See merge request hubzilla/core!1561
2019-03-20 03:17:01 +01:00
Mario
fa1af5a2cb Video 2019-03-20 03:17:01 +01:00
Max Kostikov
a27e4072b4 Merge branch 'update_1231' into 'dev'
mysql: remove some unused indices and add thr_parent index. pgsql: sync...

See merge request hubzilla/core!1560
2019-03-19 11:18:23 +01:00
Mario Vavti
fad26a49be mysql: remove some unused indices and add thr_parent index. pgsql: sync indices with mysql indices after testing on hub.disroot.org and add thr_parent 2019-03-19 10:52:10 +01:00
Mario
1742159345 Merge branch 'dev' into 'dev'
messagefilter enhancements and fix for advisory permissions edge case

See merge request hubzilla/core!1559
2019-03-19 09:17:39 +01:00
zotlabs
ed8d2cb482 Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-03-18 20:42:58 -07:00
zotlabs
8e1f022810 share encoding issue between hz and zap 2019-03-18 20:41:59 -07:00
Mike Macgirvin
4c25072c18 Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-03-19 13:13:21 +11:00
Mike Macgirvin
564ec32520 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-19 13:12:39 +11:00
zotlabs
a743feb040 Merge branch 'dev' of ../hz into dev 2019-03-18 19:10:38 -07:00
zotlabs
b028667de1 messagefilter enhancements, fix edge case in unsupported advisory privacy 2019-03-18 19:09:12 -07:00
M. Dent
41888f84bc Merge branch 'dev' into 'dev'
composer: add phpmd and phpcs to require-dev

See merge request hubzilla/core!1557
2019-03-19 00:56:29 +01:00
Mike Macgirvin
6a918dbde9 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-19 09:05:27 +11:00
Mario Vavti
578230e32c fix typos
(cherry picked from commit d486b03089)
2019-03-18 21:59:09 +01:00
Mario Vavti
d486b03089 fix typos 2019-03-18 21:58:18 +01:00
Mario Vavti
8559334339 some more xss prevention
(cherry picked from commit 968c6ed8be)
2019-03-18 21:37:02 +01:00
Mario Vavti
968c6ed8be some more xss prevention 2019-03-18 21:30:25 +01:00
Mario Vavti
8893d9edc4 use urlencode
(cherry picked from commit 2ec3e4a912)
2019-03-18 13:31:25 +01:00
Mario Vavti
43753ec113 ENT_COMPAT will only take care of double-quotes. Use double-quotes here to prevent XSS
(cherry picked from commit a086745ec0)
2019-03-18 13:31:03 +01:00
Mario Vavti
2ec3e4a912 use urlencode 2019-03-18 13:29:08 +01:00
Mario Vavti
a086745ec0 ENT_COMPAT will only take care of double-quotes. Use double-quotes here to prevent XSS 2019-03-18 13:19:24 +01:00
Mario
51156d0582 Merge branch 'dev' into 'dev'
misc fixes

See merge request hubzilla/core!1558
2019-03-18 09:35:53 +01:00
Zot
ea9925f489 clone systems apps to the extent possible, auto-configure imagick thumbnail binary during setup if possible 2019-03-18 09:35:53 +01:00
zotlabs
026b96b8f2 clone systems apps to the extent possible, auto-configure imagick thumbnail binary during setup if possible 2019-03-17 17:56:29 -07:00
zotlabs
136b2ae37f calling unserialize on array in util/service_class 2019-03-17 15:49:01 -07:00
Mike Macgirvin
97009a2748 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-18 08:55:54 +11:00
Mario
e123f7c743 add phpmd and phpcs to require-dev 2019-03-17 21:42:14 +01:00
Max Kostikov
e28bde6ccd Merge branch 'dreport_fixes' into 'dev'
fix dreport redeliver

See merge request hubzilla/core!1556
2019-03-17 12:16:20 +01:00
zotlabs
a976f418e3 use php_eol for all mail header generation 2019-03-16 15:28:21 -07:00
zotlabs
3c701e780c use the php_eol constant for encoded subjects 2019-03-16 15:23:17 -07:00
Mario Vavti
769dd174bd fix dreport redeliver 2019-03-15 23:10:17 +01:00
Mario
e92514ee63 Merge branch 'dev' into 'dev'
email_header_encode() producing output that is not spec compliant

See merge request hubzilla/core!1555
2019-03-15 19:12:51 +01:00
zotlabs
8ebc517b41 Merge branch 'dev' of ../hz into dev 2019-03-14 21:19:56 -07:00
zotlabs
91b03e52f1 email_header_encode() producing lines of illegal length because header field length was not considered in length calculation. 2019-03-14 21:18:17 -07:00
M. Dent
a22406c9f8 Merge branch 'cleanup' into 'dev'
Cleanup and fixes

See merge request hubzilla/core!1554
2019-03-15 02:51:51 +01:00
Mario
ebc3666c6f Cleanup and fixes 2019-03-15 02:51:51 +01:00
Mario Vavti
f1fee1239b Merge branch 'dev' 2019-03-14 09:40:26 +01:00
Mario
8769fa0156 Merge branch 'dev' into 'dev'
two compatibility issues zot/zot6

See merge request hubzilla/core!1553
2019-03-14 09:38:46 +01:00
Mike Macgirvin
f4d7338687 Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-03-14 10:34:22 +11:00
zotlabs
6a8c3f82ef Merge branch 'dev' of ../hz into dev 2019-03-13 16:32:27 -07:00
zotlabs
05bcbfa28c signature issue for zot6 content imported from zotfeeds to hubzilla 2019-03-13 16:31:37 -07:00
Mike Macgirvin
6a55500c1b Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-03-14 10:30:01 +11:00
zotlabs
a5a5ac60ba find unregistered z6 clones on hubzilla sites (does not happen automatically since z6 is not the default protocol on hubzilla). This will need to be pushed to master for the next point release. 2019-03-13 16:27:52 -07:00
M. Dent
6ed7f47b3f Merge branch 'core_fixes_2' into 'dev'
add zot6 to clonable networks

See merge request hubzilla/core!1552
2019-03-13 18:16:33 +01:00
Mario Vavti
a3e94855f9 add zot6 to clonable networks 2019-03-13 17:48:00 +01:00
Mario
503da97a79 Merge branch 'dev' into 'dev'
Dev

See merge request hubzilla/core!1551
2019-03-13 09:40:19 +01:00
Mike Macgirvin
088a93e023 limit 1 2019-03-13 13:21:04 +11:00
Mike Macgirvin
30f71ad632 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-13 10:42:25 +11:00
Mike Macgirvin
0026849821 Merge branch 'dev' of https://gitlab.com/macgirvin/hubzilla into dev 2019-03-13 10:40:23 +11:00
zotlabs
cf5a310286 rework authenticated item fetches (check ACL on the parent, not on the requested item) 2019-03-12 16:17:34 -07:00
zotlabs
72384ff2cb add owner permission checks to AS item fetch 2019-03-12 15:17:25 -07:00
Mario
c33ef01af8 Merge branch 'dev' into 'dev'
perform zot6 discovery in import_author_xchan

See merge request hubzilla/core!1550
2019-03-12 13:40:04 +01:00
zotlabs
11116bdcb7 typos 2019-03-12 03:40:43 -07:00
zotlabs
09a5cf4e68 Merge branch 'dev' of ../hz into dev 2019-03-11 22:24:13 -07:00
zotlabs
a9172129d2 check zot6 in import_author_xchan 2019-03-11 22:17:36 -07:00
Mike Macgirvin
3ec06705ca perform zot6 discovery in import_author_xchan 2019-03-12 16:12:29 +11:00
zotlabs
5fb0d38ad8 security updates for multiple xchans 2019-03-11 16:29:12 -07:00
Mario
9ed5cddb89 Merge branch 'dev' into 'dev'
init_groups_visitor: include xchans from all zot-like networks

See merge request hubzilla/core!1549
2019-03-11 09:38:27 +01:00
zotlabs
4e97fb0e58 testing init_groups_visitor changes - also add virtual groups for both zot identities 2019-03-10 22:32:37 -07:00
zotlabs
1688e373bc Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-10 15:52:07 -07:00
zotlabs
cada0b6df1 init_groups_visitor: include xchans from all zot-like networks 2019-03-10 15:50:45 -07:00
Mario
91358010a0 Merge branch 'dev' into 'dev'
non-critical: port zot_record_preferred()

See merge request hubzilla/core!1546
2019-03-10 11:40:33 +01:00
zotlabs
51024d3821 authenticated fetch fixes 2019-03-09 12:58:03 -08:00
harukin
b329d998ca Merge branch 'japanese' into 'develop'
marge from origin 4.0

See merge request harukin/core!44
2019-03-09 18:03:04 +09:00
harukin
8f594ad6d9 Merge branch 'origin' into 'japanese'
marge from origin 4.0

See merge request harukin/core!41
2019-03-09 17:58:02 +09:00
harukin
d8d46039a2 Merge branch 'origin' into 'develop'
marge from origin 4.0

See merge request harukin/core!40
2019-03-09 17:48:31 +09:00
harukin
19e1325604 edit translation 2019-03-09 17:36:26 +09:00
zotlabs
220d6ed494 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-08 14:56:13 -08:00
zotlabs
b5ed3edc8f port zot_record_preferred 2019-03-08 14:51:30 -08:00
Mario Vavti
9772726065 merge text.php and hmessages.po 2019-03-08 12:32:20 +01:00
Mario Vavti
8ecdde6cb5 Merge branch '4.0RC' 2019-03-08 11:52:57 +01:00
Mario Vavti
73c96f35c1 update changelog
(cherry picked from commit 5b3824917d)
2019-03-08 11:48:52 +01:00
Mario Vavti
5b3824917d update changelog 2019-03-08 11:48:01 +01:00
Mario Vavti
ca4f10dc5e bump version 2019-03-08 11:46:36 +01:00
Mario
853fb33913 $sender is supposed to be string in libzot
(cherry picked from commit 507c71f64c)
2019-03-08 09:45:15 +01:00
zotlabs
e352cfc861 fetch private objects using delivery channel credentials
(cherry picked from commit 1f7622e4c4)
2019-03-08 09:35:04 +01:00
M. Dent
b8d79d9132 Merge branch 'core_fixes_1' into 'dev'
$sender is supposed to be string in libzot

See merge request hubzilla/core!1544
2019-03-08 05:45:02 +01:00
Mario
507c71f64c $sender is supposed to be string in libzot 2019-03-08 05:45:02 +01:00
zotlabs
ce0067d8eb It is in fact the 'Content Import' app string that needs to be translated. A previous commit errantly included the string 'Content Filter'. But don't remove 'Content Filter'. That is actually a thing in Zap and will eventually make its way to Hubzilla. 2019-03-07 20:01:41 -08:00
M. Dent
c0b238b19a Merge branch 'dev' into 'dev'
fetch private objects using delivery channel credentials

See merge request hubzilla/core!1545
2019-03-08 02:48:03 +01:00
zotlabs
d961cf21fb Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-07 16:05:15 -08:00
zotlabs
1f7622e4c4 fetch private objects using delivery channel credentials 2019-03-07 15:45:42 -08:00
Mario Vavti
b019ca0746 update changelog
(cherry picked from commit 04fe7e61de)
2019-03-07 09:32:39 +01:00
Mario Vavti
04fe7e61de update changelog 2019-03-07 09:32:12 +01:00
zotlabs
beb4e00afb guest access tokens: xchan record not created on URL login
(cherry picked from commit 0b2213dd41)
2019-03-07 09:30:38 +01:00
Mario
3e6607585f Merge branch 'dev' into 'dev'
guest access tokens: xchan record not created on URL login

See merge request hubzilla/core!1543
2019-03-07 09:29:21 +01:00
zotlabs
0b2213dd41 guest access tokens: xchan record not created on URL login 2019-03-06 19:01:28 -08:00
Mario Vavti
9450305568 changelog
(cherry picked from commit 08725c44c6)
2019-03-06 21:10:51 +01:00
Mario Vavti
08725c44c6 changelog 2019-03-06 21:08:56 +01:00
Mario Vavti
e18c64c9d9 bump version 2019-03-06 10:02:33 +01:00
Mario Vavti
7b018c60cb while in legacy zot $sender is expected to be an array, in zot6 $sender is expected to be a string (xchan_hash)
(cherry picked from commit 117a8cafca)
2019-03-06 09:58:11 +01:00
M. Dent
a81286c795 Add CURLOPT_CONNECTTIMEOUT
(cherry picked from commit 0c05e6593e)
2019-03-06 09:56:01 +01:00
Mario
75a66b716e Merge branch 'patch-20190305a' into 'dev'
Add CURLOPT_CONNECTTIMEOUT

See merge request hubzilla/core!1542
2019-03-06 09:52:26 +01:00
M. Dent
0c05e6593e Add CURLOPT_CONNECTTIMEOUT 2019-03-06 09:52:26 +01:00
zotlabs
571e9bf26a channel_type is not integer
(cherry picked from commit 26e7da0b96)
2019-03-06 09:49:40 +01:00
zotlabs
c4714e95b6 maintain compatibility with recent zot6 changes
(cherry picked from commit 98b1c7a38c)
2019-03-06 09:49:18 +01:00
Mario
c43ab50d66 Merge branch 'dev' into 'dev'
sync recent z6 protocol change

See merge request hubzilla/core!1541
2019-03-06 09:47:40 +01:00
harukin
0d283b2666 edit translation 2019-03-06 10:32:47 +09:00
zotlabs
26e7da0b96 channel_type is not integer 2019-03-05 17:06:42 -08:00
zotlabs
98b1c7a38c maintain compatibility with recent zot6 changes 2019-03-05 16:57:32 -08:00
zotlabs
d407e5556e api_router - allow parameters as final path argument
(cherry picked from commit 47001c3303)
2019-03-05 09:44:36 +01:00
zotlabs
6a3cfe54af remove clones from delivery recipients for top-level posts - they will get the post via clone sync
(cherry picked from commit 8e50fecccc)
2019-03-05 09:43:51 +01:00
zotlabs
a0bffe4a78 mod_oep: photos/album/xxxxx is no longer hex2bin/bin2hex but the album hash and is throwing php warnings when trying to decode
(cherry picked from commit 938fcdd1a6)
2019-03-05 09:43:29 +01:00
zotlabs
336c716a44 translate name of content filter (addon) app.
(cherry picked from commit 29cb62af3d)
2019-03-05 09:42:58 +01:00
Mario
ccdbec619c Merge branch 'dev' into 'dev'
assorted minor fixes from downstream

See merge request hubzilla/core!1540
2019-03-05 09:40:45 +01:00
zotlabs
47001c3303 api_router - allow parameters as final path argument 2019-03-04 20:11:43 -08:00
zotlabs
8e50fecccc remove clones from delivery recipients for top-level posts - they will get the post via clone sync 2019-03-04 20:09:47 -08:00
zotlabs
938fcdd1a6 mod_oep: photos/album/xxxxx is no longer hex2bin/bin2hex but the album hash and is throwing php warnings when trying to decode 2019-03-04 20:07:01 -08:00
zotlabs
9ede57b228 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-03-04 14:50:33 -08:00
mike
8810658858 Addressing new 'support@zotadel.net' support forum instead of old 'support@gravizot.de'
(cherry picked from commit e26de9c1d1)
2019-03-04 09:50:47 +01:00
Mario
e074d02714 Merge branch 'dev' into 'dev'
Addressing new 'support@zotadel.net' support forum instead of old 'support@gravizot.de'

See merge request hubzilla/core!1539
2019-03-04 09:50:12 +01:00
mike
e26de9c1d1 Addressing new 'support@zotadel.net' support forum instead of old 'support@gravizot.de' 2019-03-03 18:24:36 +03:00
M. Dent
7dc3835a54 Merge branch 'core_fixes' into 'dev'
while in legacy zot $sender is expected to be an array, in zot6 $sender is...

See merge request hubzilla/core!1538
2019-03-03 03:37:33 +01:00
Mario Vavti
117a8cafca while in legacy zot $sender is expected to be an array, in zot6 $sender is expected to be a string (xchan_hash) 2019-03-02 15:50:53 +01:00
mike
337dfd5ee4 Mention php-zip module dependency in administrator guide
(cherry picked from commit 747ce9b1f1)
2019-03-02 15:37:47 +01:00
DM42.Net (Matt Dent)
e37c9ed0a1 Use sender hash
(cherry picked from commit 5febc3e07d)
2019-03-02 15:37:22 +01:00
Mario Vavti
aa6a31eba5 iron out some kinks with scrollToItem() in combination with collapsed content and images
(cherry picked from commit 2244bf2ba2)
2019-03-02 15:32:36 +01:00
Mario
8a0a0aef5c Merge branch 'dev' into 'dev'
Mention php-zip module dependency in administrator guide

See merge request hubzilla/core!1537
2019-03-02 15:01:50 +01:00
Mario
4750e15c20 Merge branch 'patch-20190301a' into 'dev'
Use sender hash

See merge request hubzilla/core!1535
2019-03-02 15:00:20 +01:00
mike
747ce9b1f1 Mention php-zip module dependency in administrator guide 2019-03-02 12:21:59 +03:00
M. Dent
7fa874d9ef Merge branch 'js_fixes' into 'dev'
iron out some kinks with scrollToItem() in combination with collapsed content and  images

See merge request hubzilla/core!1534
2019-03-01 17:43:16 +01:00
DM42.Net (Matt Dent)
5febc3e07d Use sender hash 2019-03-01 10:50:10 -05:00
Mario Vavti
2244bf2ba2 iron out some kinks with scrollToItem() in combination with collapsed content and images 2019-03-01 14:16:19 +01:00
zotlabs
29cb62af3d translate name of content filter (addon) app. 2019-02-28 17:51:13 -08:00
harukin
8134ba1faf add cmd support test 2019-02-27 10:53:11 +09:00
harukin
d30748f1de edit translation 2019-02-27 10:47:05 +09:00
Mario Vavti
6aa041b193 version 2019-02-26 09:30:54 +01:00
Mario Vavti
0fdc0a01d0 Merge branch 'dev' into 4.0RC 2019-02-26 09:29:00 +01:00
Mario Vavti
de7f2eef47 use $channel_id until the function is adapted to not need it 2019-02-26 09:28:16 +01:00
Mario
a449ffe49d Merge branch 'fix-sync_an_item' into 'dev'
Fix sync an item

See merge request hubzilla/core!1531
2019-02-26 09:26:00 +01:00
Mario Vavti
08cacc4943 Merge branch 'dev' into 4.0RC 2019-02-26 09:06:46 +01:00
Mario
04b9216758 Merge branch 'dev' into 'dev'
zot api changes to support combined content (items+files) import addon

See merge request hubzilla/core!1533
2019-02-25 14:06:37 +01:00
zotlabs
1ff97754af issues uncovered testing combined item/file import 2019-02-24 21:43:15 -08:00
zotlabs
20e43311db zot api changes to support combined content (items+files) import addon 2019-02-24 14:46:09 -08:00
M. Dent
89bcb1de42 Merge branch 'js_fixes' into 'dev'
fix regression from commit 04ec35d9cc where...

See merge request hubzilla/core!1532
2019-02-24 03:32:39 +01:00
DM42.Net (Matt Dent)
7a1a44f802 xchan_query and fetch_post_tags uses full query results not a single row 2019-02-23 21:03:05 -05:00
harukin
e9edec0875 edit translation 2019-02-24 09:19:28 +09:00
Mario Vavti
06aa32db22 fix regression from commit 04ec35d9cc where selecting multiple images from embed photos dialog broke and fix issue where items were not scrolled to there correct position if justifiedGalleryActive flag was true 2019-02-23 21:48:45 +01:00
DM42.Net (Matt Dent)
6f8593cf47 Fixes - sync item based on item's user 2019-02-23 10:24:05 -05:00
DM42.Net (Matt Dent)
3b2efb1000 Fix misspelled variable 2019-02-23 10:09:58 -05:00
Klaus Weidenbach
87482e3746 Update PHP Version check during Setup.
Hubzilla 4.0 requires PHP7. The oldest still supported PHP branch is 7.1.
So check during Setup for PHP >= 7.1.


(cherry picked from commit 3f13c85b64)
2019-02-22 12:52:25 +01:00
Mario
ef6a280019 Merge branch 'php' into 'dev'
Update PHP Version check during Setup.

See merge request hubzilla/core!1530
2019-02-22 12:51:48 +01:00
Max Kostikov
326ae05b06 Merge branch 'es-es' into 'dev'
Quickfix es-es/hstrings.php

See merge request hubzilla/core!1529
2019-02-22 11:32:33 +01:00
Klaus Weidenbach
3f13c85b64 Update PHP Version check during Setup.
Hubzilla 4.0 requires PHP7. The oldest still supported PHP branch is 7.1.
So check during Setup for PHP >= 7.1.
2019-02-21 21:31:36 +01:00
Manuel Jiménez Friaza
1ae7bd6477 Merge branch 'cherry-pick-f92d2e3f' into 'es-es'
Quickfix es-es/hstrings.php

See merge request mjfriaza/core!6
2019-02-21 18:55:39 +01:00
Manuel Jiménez Friaza
c91641aa83 Quickfix es-es/hstrings.php
(cherry picked from commit f92d2e3f7c)
2019-02-21 18:37:21 +01:00
Manuel Jiménez Friaza
3e2489465f Merge branch 'cherry-pick-a9b75d05' into 'es-es'
Fix es-es/hstrings.php

See merge request mjfriaza/core!5
2019-02-21 12:59:29 +01:00
Manuel Jiménez Friaza
a5bf32a97d Fix es-es/hstrings.php
(cherry picked from commit a9b75d059b)
2019-02-21 12:46:48 +01:00
Manuel Jiménez Friaza
8bb2d29a8d Update Spanish translation
(cherry picked from commit e6f289deb6)

(cherry picked from commit a3a90ea09b)
2019-02-21 12:43:03 +01:00
Mario
938e8110ca Merge branch 'es-es' into 'dev'
Update es-es

See merge request hubzilla/core!1526
2019-02-21 12:34:31 +01:00
Mario Vavti
93039081d5 fix summary and use item_normal_search() for viewsrc so we can also view the source for articles, cards, etc.
(cherry picked from commit a0ad110cff)
2019-02-21 12:10:31 +01:00
M. Dent
3d253309b7 Merge branch 'core_fixes' into 'dev'
fix summary and use item_normal_search() for viewsrc so we can also view the...

See merge request hubzilla/core!1525
2019-02-21 12:03:56 +01:00
Manuel Jiménez Friaza
301c1861f3 Merge branch 'cherry-pick-e6f289de' into 'es-es'
Update Spanish translation

See merge request mjfriaza/core!4
2019-02-21 11:54:41 +01:00
Manuel Jiménez Friaza
a3a90ea09b Update Spanish translation
(cherry picked from commit e6f289deb6)
2019-02-21 11:38:45 +01:00
Mario Vavti
a0ad110cff fix summary and use item_normal_search() for viewsrc so we can also view the source for articles, cards, etc. 2019-02-21 08:48:47 +01:00
Max Kostikov
89ee28f858 Update Russian hstrings.php
(cherry picked from commit 3a6ea57d2c)
2019-02-20 09:20:31 +01:00
Max Kostikov
5917786296 Update Russian hmessages.po
(cherry picked from commit e960bcfd1c)
2019-02-20 09:20:09 +01:00
Mario Vavti
7f1e0313a0 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-02-20 09:12:24 +01:00
Mario Vavti
c89be96209 bump dev version 2019-02-20 09:12:04 +01:00
Max Kostikov
fcd6c3065e Merge branch 'dev' into 'dev'
Update Russian translation

See merge request hubzilla/core!1524
2019-02-20 09:06:12 +01:00
Mario Vavti
a700ef5e24 bump version 2019-02-20 09:04:48 +01:00
Max Kostikov
3a6ea57d2c Update Russian hstrings.php 2019-02-20 09:00:05 +01:00
Max Kostikov
e960bcfd1c Update Russian hmessages.po 2019-02-20 08:59:50 +01:00
Mario
65e8ed6871 Merge branch 'dev' into 'dev'
basic support for nomadic content, fix for permitted guests deleting their own files in cloud space of other channel,urlencode category widget links

See merge request hubzilla/core!1523
2019-02-20 08:52:13 +01:00
zotlabs
a77d7b8442 urlencode links in category widget 2019-02-19 20:51:06 -08:00
zotlabs
51e9f302b0 hubzilla has uuid - use that instead of wildcard 2019-02-19 13:36:53 -08:00
zotlabs
72fd1cc5a6 remove extraneous logging 2019-02-19 13:23:46 -08:00
zotlabs
1a77bdd1d0 fix ability for file storage creators (visitors) to be able to delete their own content 2019-02-19 13:14:19 -08:00
zotlabs
1ea9002fe8 Merge branch 'dev' of https://framagit.org/zot/core into dev 2019-02-19 11:56:26 -08:00
zotlabs
7d1c3920fd mod_id should return object not collection 2019-02-19 11:45:42 -08:00
Mario Vavti
cead10b9af update composer autoload cache 2019-02-19 10:24:20 +01:00
Mario Vavti
382e94e282 update strings 2019-02-19 10:21:53 +01:00
Mario
7e8434404f Merge branch 'patch-20190218a' into 'dev'
Fix: post_activity_item returns success => true even on failure.

See merge request hubzilla/core!1521
2019-02-19 08:46:03 +01:00
M.Dent
cfcbaf33af Fix: post_activity_item returns success => true even on failure. 2019-02-18 22:40:19 -05:00
zotlabs
175f78fa84 support zot location independent urls 2019-02-18 18:16:50 -08:00
M. Dent
c8ab2bec5e Merge branch 'js_fixes' into 'dev'
prevent page jumping on like if comments are expanded (show all x comments)

See merge request hubzilla/core!1520
2019-02-19 01:24:35 +01:00
M. Dent
136d50a7c5 Merge branch 'mod_display_fixes' into 'dev'
if local_channel() and updating the page do not query for another item if the...

See merge request hubzilla/core!1519
2019-02-19 01:23:28 +01:00
M. Dent
0fa653d580 Merge branch 'core_fixes' into 'dev'
remove zottel.net from fallback servers. it switched to directory_mode_normal from secondary

See merge request hubzilla/core!1518
2019-02-19 01:21:37 +01:00
Mario Vavti
48f2c85791 prevent page jumping on like if comments are expanded (show all x comments) 2019-02-18 14:40:41 +01:00
Mario Vavti
13ca56d380 if local_channel() and updating the page do not query for another item if the first query returned no results. we will most probably find an item from another channel (e.g. after liking a comment) and end up with multiple items with the same mid from different channels after the page update 2019-02-18 14:27:01 +01:00
Mario
b5109d2a1a Merge branch 'photo_driver_refactor' into 'dev'
Photo driver refactor

See merge request hubzilla/core!1515
2019-02-18 10:02:46 +01:00
Mario Vavti
8ab532efb5 remove zottel.net from fallback servers. it switched to directory_mode_normal from secondary 2019-02-18 10:02:18 +01:00
Mario
f11c17063c Merge branch 'QA' into 'dev'
Improve gitlab-ci environment.

See merge request hubzilla/core!1516
2019-02-18 09:44:26 +01:00
Mario
72eb44aebc Merge branch 'dev' into 'dev'
MySQL 8 admin summary compatibility

See merge request hubzilla/core!1517
2019-02-18 09:41:38 +01:00
Max Kostikov
b070503e77 MySQL 8 admin summary compatibility 2019-02-17 22:47:08 +01:00
Klaus Weidenbach
f48e1ee0ac Improve gitlab-ci environment.
Use a custom Hubzilla image to speed up pipeline.
Single test jobs were around 4:30-5:00 minutes, now ~1:30 minute.
Improve Composer cache in Gitlab CI/CD.
Add more recent databases (MySQL8, MariaDB10.3) to the pipeline.
2019-02-17 18:19:09 +01:00
M. Dent
a5b7590d3a Merge branch 'exclude_addon_common' into 'dev'
exclude addon_common from addon list

See merge request hubzilla/core!1513
2019-02-15 22:03:33 +01:00
M. Dent
f0955f1620 Merge branch 'rm_addon_settings' into 'dev'
Remove deprecated addon settings

See merge request hubzilla/core!1514
2019-02-15 22:02:33 +01:00
harukin
6dda2713cf edit translation 2019-02-15 23:29:31 +09:00
Mario
4769254978 deprecate addon settings 2019-02-15 12:35:19 +01:00
Mario
ca917f7b9a exclude addon_common from addon list 2019-02-15 11:39:59 +01:00
Klaus Weidenbach
b9df4c99cf Remove duplicate code in PhotoDriver classes.
cropImage is just a special case of cropImageRect, no need to
duplicate all the code.
2019-02-14 22:06:42 +01:00
Klaus Weidenbach
e6dadb215e Refactor photo_driver to use namespaces.
Add simple UnitTest, but it is not yet very meaningful.
2019-02-14 22:06:42 +01:00
Klaus Weidenbach
d70bba2806 Clean up and documentation in photo_drive. 2019-02-14 22:06:42 +01:00
Mario Vavti
3217452b02 missing use app 2019-02-14 14:48:16 +01:00
M. Dent
ff0494b180 Merge branch 'affinity_fixes' into 'dev'
affinity tool fixes

See merge request hubzilla/core!1511
2019-02-14 14:06:25 +01:00
M. Dent
8be15c1b5b Merge branch 'disable_repeats' into 'dev'
disable repeats until issues are resolved

See merge request hubzilla/core!1512
2019-02-14 14:05:24 +01:00
Mario Vavti
0207b5ba8b disable repeats until issues are resolved 2019-02-14 11:32:43 +01:00
Mario Vavti
5ab917f606 affinity tool fixes 2019-02-14 11:06:52 +01:00
Mario
ea541ca21b Merge branch 'aff2' into 'dev'
affinity slider as app

See merge request hubzilla/core!1449
2019-02-14 09:56:53 +01:00
phani00
fc223f5924 affinity slider as app 2019-02-14 09:56:53 +01:00
Mario
7b8eb84cb8 Merge branch 'patch-20190212a' into 'dev'
Fix: only first lock red with privacy_warning

See merge request hubzilla/core!1510
2019-02-13 20:36:33 +01:00
harukin
38443c72c3 おまえかぁぁぁぁぁぁぁぁぁあ!!!!!!!!!!!!!!!!!!!!!11 2019-02-13 23:56:49 +09:00
harukin
0cef3e67ce fix delete strings.php.... 2019-02-13 23:49:33 +09:00
harukin
b98d4875da fix strings.php 2019-02-13 23:24:13 +09:00
harukin
ae52db41de edit translation 2019-02-13 23:19:40 +09:00
M.Dent
c3e2b463e4 Only cascade privacy warning if thread parent has privacy concerns. 2019-02-13 08:26:03 -05:00
M.Dent
5b3ea012ab Fix: only first lock red with privacy_warning 2019-02-12 22:05:57 -05:00
Max Kostikov
07df43aa2a Merge branch 'dev' into 'dev'
Update Russian translayion

See merge request hubzilla/core!1509
2019-02-12 11:55:17 +01:00
Max Kostikov
6e3bc77369 Update hstrings.php 2019-02-12 11:48:50 +01:00
Max Kostikov
24ddefe3ad Update hmessages.po 2019-02-12 11:47:53 +01:00
Mario
7db645587b Merge branch 'fix-20190211a' into 'dev'
Get all listeners

See merge request hubzilla/core!1508
2019-02-12 08:45:48 +01:00
M.Dent
cbf6d53e84 Get all listeners 2019-02-11 20:24:17 -05:00
harukin
5e0ce96e49 Merge branch 'origin' into 'japanese'
marge from origin 3.8.9

See merge request harukin/core!37
2019-02-11 17:51:12 +09:00
harukin
4a2228a372 Merge branch 'origin' into 'develop'
marge from origin 3.8.9

See merge request harukin/core!36
2019-02-11 17:48:25 +09:00
harukin
d9a0382539 edit translation 2019-02-11 17:15:48 +09:00
Mario Vavti
f52a532771 use ACTIVITY_SHARE to match the verb 2019-02-08 11:33:01 +01:00
Mario Vavti
efc4c53b44 missing use App 2019-02-08 10:15:28 +01:00
zotlabs
4837f9cdad Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2019-02-07 19:54:07 -08:00
zotlabs
317c53acf6 disable repeat unless mid is a resolvable uri since this will do radically different things on different network stacks (e.g. Diaspora) and it turns out there is no possible way to make Diaspora reshares compatible with ActivityPub or Zot6 repeat/announce/boost/whatever. 2019-02-07 14:38:05 -08:00
zotlabs
f02af5fe6e automatically redirect repeat to share for posts with unresolvable message-ids (diaspora, hz < 4.0, etc.). 2019-02-07 14:25:25 -08:00
zotlabs
92e6c21210 add missing zot6 conversation completion (required for message repeats) 2019-02-07 14:13:13 -08:00
zotlabs
beb26e84f3 fix mid generation for shares 2019-02-07 11:18:34 -08:00
Mario Vavti
2b7a605223 exec updateInit() instead of notificationsUpdate() in jotShare() 2019-02-07 09:55:22 +01:00
Mario Vavti
d70f0092f7 Merge remote-tracking branch 'mike/master' into dev 2019-02-07 09:34:22 +01:00
zotlabs
7f6e4a9744 fix verb for reshares 2019-02-06 19:59:05 -08:00
zotlabs
96a4fc7ca2 more work on share/repeat 2019-02-06 19:26:28 -08:00
zotlabs
29c1797493 work on repeat/share for Hubzilla 2019-02-06 17:26:09 -08:00
Mario Vavti
860dead985 Merge remote-tracking branch 'mike/master' into dev 2019-02-06 06:46:05 +01:00
zotlabs
518ceb53a8 allow conversation completion for new comments to expired posts, regardless of hyperdrive settings.
Note that hyperdrive conversations may still be fetched from zap/osada servers but will be ignored.
2019-02-05 14:51:01 -08:00
Max Kostikov
4bcddca1f0 Merge branch 'viewsrc_update' into 'dev'
add the actual mid for debuging reasons

See merge request hubzilla/core!1506
2019-02-04 10:38:26 +01:00
Mario Vavti
cf80f03084 Merge remote-tracking branch 'mike/master' into dev 2019-02-04 10:03:38 +01:00
zotlabs
47f31eed37 update tests for changes in handle_tags() 2019-02-03 17:10:33 -08:00
zotlabs
8ff9a9ff08 fix linkify_tags() so it works with xchans across multiple protocols, also some fixes to activity parsing from upstream. 2019-02-03 16:53:49 -08:00
Mario Vavti
8dcf27ba29 add the actual mid for debuging reasons 2019-02-03 21:12:09 +01:00
Mario Vavti
d97043725d update changelog 2019-02-03 15:12:38 +01:00
Mario
90fd323ac5 bump version 2019-02-03 15:03:56 +01:00
Mario Vavti
b6c384a0f7 cleanup logging and return if query returns empty result
(cherry picked from commit c657d766cf)
2019-02-03 15:02:06 +01:00
Mario Vavti
cda8a7be38 do not overwrite $sql_extra
(cherry picked from commit 4706ff6938)
2019-02-03 15:01:39 +01:00
Mario Vavti
c657d766cf cleanup logging and return if query returns empty result 2019-02-03 14:58:19 +01:00
Mario Vavti
4706ff6938 do not overwrite $sql_extra 2019-02-03 14:52:50 +01:00
M. Dent
c444af007f Merge branch 'core_fixes' into 'dev'
fix #1332

See merge request hubzilla/core!1505
2019-02-03 02:22:16 +01:00
Mario Vavti
6e80bb49fb fix #1332 2019-02-02 22:11:26 +01:00
Mario
bf3d0c1274 Merge branch 'patch-20190201a' into 'dev'
Add filter hooks and the ability to add buttons to the default status editor

See merge request hubzilla/core!1502
2019-02-02 20:50:40 +01:00
M. Dent
0ded1d326c Merge branch 'dev' into 'dev'
Prevent Hubzilla usage for SEO backlinks

See merge request hubzilla/core!1501
2019-02-01 18:01:01 +01:00
DM42.Net (Matt Dent)
708d288121 Add filter hooks and the ability to add buttons to the default status editor 2019-02-01 09:49:11 -05:00
Max Kostikov
6462c83f69 Prevent Hubzilla usage for SEO backlinks 2019-02-01 15:47:51 +01:00
Mario
f30bb452cc Merge branch 'patch-20190130a' into 'dev'
Set lock red and provide warning  if a forum is tagged in the post

See merge request hubzilla/core!1499
2019-02-01 09:29:59 +01:00
M. Dent
ad4dd2def5 Set lock red and provide warning if a forum is tagged in the post 2019-02-01 09:29:59 +01:00
Max Kostikov
76582a60b5 Merge branch 'core_fixes' into 'dev'
starring and filing is only supported for post item type

See merge request hubzilla/core!1498
2019-01-31 18:39:07 +01:00
Mario
004246163d starring and filing is only supported for post item type 2019-01-31 18:39:07 +01:00
Max Kostikov
a2cae45f00 Merge branch 'dev' into 'dev'
Fix typos in Russian translation

See merge request hubzilla/core!1500
2019-01-31 18:14:16 +01:00
Max Kostikov
c1159337da Update hstrings.php 2019-01-31 18:06:19 +01:00
Max Kostikov
71adbd7c39 Update hmessages.po 2019-01-31 18:06:09 +01:00
harukin
ded949052c edit translation 2019-01-31 18:44:51 +09:00
harukin
d1bf0da144 Merge branch 'japanese' into 'develop'
日本語の実装(暫定的)

See merge request harukin/core!33
2019-01-31 16:55:50 +09:00
harukin
de15a1e7c8 edit translation 2019-01-31 16:50:53 +09:00
zotlabs
a56bc0e1e0 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2019-01-30 18:34:44 -08:00
zotlabs
519db2aace set document title when title changes on a page update 2019-01-30 18:33:10 -08:00
Mario Vavti
e64c5661da Merge remote-tracking branch 'mike/master' into dev 2019-01-30 09:48:07 +01:00
zotlabs
b15421826d cache embeds in the background on initial storage rather than on first access 2019-01-29 15:14:49 -08:00
Mario Vavti
3b31dbaa16 clean up whitespace and remove superfluous semicolon 2019-01-29 22:37:30 +01:00
Mario
318957cb81 Merge branch 'dev' into 'dev'
Custom sessionhandler support, as requested

See merge request hubzilla/core!1497
2019-01-29 22:22:59 +01:00
Mark Nowiasz
4b516fdb09 Custom sessionhandler support, as requested 2019-01-29 21:41:23 +01:00
Mario
913b620c66 Revert "Make session handler pluggable"
This reverts commit 8972ca8134
2019-01-29 21:16:38 +01:00
Mario
cd4d90c647 Revert "fix wrong function name and coding style"
This reverts commit 456207b4e7
2019-01-29 21:16:16 +01:00
Mario Vavti
456207b4e7 fix wrong function name and coding style 2019-01-29 10:13:49 +01:00
Mario
39604d2fdc Merge branch 'sessionhandlerhook' into 'dev'
Make session handler pluggable

See merge request hubzilla/core!1494
2019-01-29 10:06:37 +01:00
Mario
27e415e664 Merge branch 'boot' into 'dev'
Correct variable in boot.php

See merge request hubzilla/core!1495
2019-01-29 10:06:18 +01:00
Mario
c57a4cf926 Merge branch 'doku' into 'dev'
Extend documentation.

See merge request hubzilla/core!1496
2019-01-29 10:06:04 +01:00
Mario Vavti
0a868b5c27 Merge remote-tracking branch 'mike/master' into dev 2019-01-29 09:49:53 +01:00
zotlabs
753f137575 disable hyperdrive in hubzilla 2019-01-28 15:29:39 -08:00
Klaus Weidenbach
728788e3b9 Extend documentation. 2019-01-28 23:58:19 +01:00
Klaus Weidenbach
ec6e130eb3 Correct variable in boot.php 2019-01-28 23:10:36 +01:00
DM42.Net (Matt Dent)
8972ca8134 Make session handler pluggable 2019-01-28 14:20:46 -05:00
Mario Vavti
671b6d2eda Merge remote-tracking branch 'mike/master' into dev 2019-01-28 12:48:21 +01:00
zotlabs
043f7bf2ab Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2019-01-28 02:48:57 -08:00
zotlabs
625cdde9a4 block private reshares from zot6 due to different parents 2019-01-28 02:46:45 -08:00
M. Dent
e3d39fbf3f Merge branch 'core_fixes' into 'dev'
update nginx and lighttpd sample server configs to explicit dissalow access to util

See merge request hubzilla/core!1493
2019-01-28 05:41:26 +01:00
zotlabs
94cbc8bd31 share fixes 2019-01-27 12:38:51 -08:00
Mario Vavti
e262de9b2d update nginx and lighttpd sample server configs to explicit dissalow access to util 2019-01-27 18:05:46 +01:00
Mario
17d9e30be5 Merge branch 'patch-20190125a' into 'dev'
Remove extraneous sync logic

See merge request hubzilla/core!1490
2019-01-27 17:36:56 +01:00
M. Dent
37b7dc8e7c Remove extraneous sync logic 2019-01-27 17:36:56 +01:00
Mario Vavti
5c2f7a744a Merge remote-tracking branch 'mike/master' into dev 2019-01-27 17:30:10 +01:00
zotlabs
535f0f45c9 cleanup of cli admin tool 2019-01-26 12:55:12 -08:00
zotlabs
b9cef2f38f command line tool for managing site admins 2019-01-26 12:17:52 -08:00
M. Dent
793d78fba6 Merge branch 'core_fixes' into 'dev'
return false if http signatue is not valid

See merge request hubzilla/core!1489
2019-01-26 00:21:09 +01:00
Max Kostikov
5ad055efb4 Merge branch 'dev' into 'dev'
Update Russian translation

See merge request hubzilla/core!1491
2019-01-25 20:04:19 +01:00
Max Kostikov
3277595366 Update hstrings.php 2019-01-25 19:56:15 +01:00
Max Kostikov
b11be32063 Update hmessages.po 2019-01-25 19:55:23 +01:00
Mario Vavti
725652006d bump version 2019-01-25 12:14:17 +01:00
Mario Vavti
10587e3a84 return false if http signatue is not valid 2019-01-25 10:49:17 +01:00
Mario
073115e7ab Merge branch 'apidocpublishing' into 'dev'
Suggestion: Publish doxygen API documentation at gitlab pages.

See merge request hubzilla/core!1488
2019-01-25 10:32:12 +01:00
Mario
45dcd987c5 Merge branch 'doku' into 'dev'
Correct and extend Doxygen comments.

See merge request hubzilla/core!1485
2019-01-25 10:31:09 +01:00
Mario Vavti
960246fbb9 Merge remote-tracking branch 'mike/master' into dev 2019-01-25 09:51:36 +01:00
zotlabs
2fa274de1e support photo items between zot and zot6 2019-01-24 19:08:57 -08:00
Klaus Weidenbach
4cc98874a0 Publish doxygen API documentation at gitlab pages.
Create the API documentation with Doxygen and
publish it through gitlab-ci as a Gitlab page at:
https://hubzilla.frama.io/core
This should only happen when master gets updated.

Update Doxyfile configuration. Correct image usage.
Replace RedMatrix with Hubzilla icon.
2019-01-24 22:03:15 +01:00
Max Kostikov
fafd05afb2 Merge branch 'js_fixes' into 'dev'
possibly more  page jumping fixes

See merge request hubzilla/core!1486
2019-01-24 21:57:42 +01:00
Max Kostikov
7a3ad30bfa Merge branch 'zot6_fixes' into 'dev'
macke mod chanview aware of zot6

See merge request hubzilla/core!1487
2019-01-24 21:57:14 +01:00
Mario Vavti
32acf9cb72 macke mod chanview aware of zot6 2019-01-24 18:06:27 +01:00
Mario Vavti
ddbc35181c fix page jumping when liking a collapsed/expanded post
(cherry picked from commit 54806f6ee8)
2019-01-24 13:39:49 +01:00
Mario Vavti
0946ac2ff9 possibly more page jumping fixes 2019-01-24 12:53:38 +01:00
Max Kostikov
1d314834a4 Merge branch 'js_fixes' into 'dev'
fix page jumping when liking a collapsed/expanded post

See merge request hubzilla/core!1484
2019-01-24 10:40:33 +01:00
harukin
875aecf9c6 edit translation 2019-01-24 17:43:03 +09:00
Klaus Weidenbach
13e0151cd2 Correct and extend Doxygen comments.
Correct some documentation errors for Doxygen and add
more comments.
Document some undefined variables with @FIXME.
2019-01-23 22:25:47 +01:00
Mario
51a7be29f5 Merge branch 'prepare_text' into 'dev'
Correct parameter in include/text.php prepare_text()

See merge request hubzilla/core!1483
2019-01-23 15:41:54 +01:00
Mario
ef46738384 Merge branch 'dev' into 'dev'
Skip tags detection in URL

See merge request hubzilla/core!1482
2019-01-23 15:39:13 +01:00
Mario Vavti
54806f6ee8 fix page jumping when liking a collapsed/expanded post 2019-01-23 15:36:34 +01:00
Klaus Weidenbach
ae538a2259 Correct parameter in include/text.php prepare_text()
Also extend documentation.
2019-01-22 23:25:30 +01:00
Max Kostikov
66f443fd00 Skip tags detection in URL 2019-01-22 16:23:44 +01:00
Mario
ca9c29e2b6 Merge branch 'embedphotos' into 'dev'
Try to fix some warnings in Zotlabs\Module\Embedphotos.

See merge request hubzilla/core!1481
2019-01-22 12:23:20 +01:00
Mario
273beb016b Merge branch 'patch-20190114a' into 'dev'
Add remaining hook insertions

See merge request hubzilla/core!1471
2019-01-22 12:13:16 +01:00
M. Dent
cd8a0f33b5 Add remaining hook insertions 2019-01-22 12:13:16 +01:00
Klaus Weidenbach
b1e05b4832 Try to fix some warnings in Zotlabs\Module\Embedphotos.
$phototypes was undefined, hope this is correct selection
to fix it.
Correct Doxygen and clean up some variables and refactoring.
2019-01-22 00:59:00 +01:00
Mario Vavti
4c0378eeae Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2019-01-21 12:04:57 +01:00
Mario Vavti
ea14398929 Merge remote-tracking branch 'mike/master' into dev 2019-01-21 12:04:01 +01:00
zotlabs
1b5dd8bbd7 comment permission fix 2019-01-20 15:09:35 -08:00
harukin
c85acf8044 edit translation 2019-01-20 22:33:47 +09:00
harukin
78a587791f edit translation 2019-01-20 21:38:53 +09:00
harukin
f4a3ebcb41 edit translation 2019-01-20 21:31:43 +09:00
harukin
086dab902c edit translation 2019-01-20 17:22:38 +09:00
harukin
722c03b6c6 edit translation 2019-01-20 17:08:14 +09:00
M. Dent
39128c34cc Merge branch 'dev' into 'dev'
Some fixes in include/help.php.

See merge request hubzilla/core!1479
2019-01-19 05:21:53 +01:00
M. Dent
542d21c4e1 Merge branch 'bugfix-plugin' into 'dev'
Fix wrong variable name in include/plugin.php.

See merge request hubzilla/core!1480
2019-01-19 05:18:35 +01:00
Klaus Weidenbach
90a62405ca Fix wrong variable name in include/plugin.php. 2019-01-19 00:28:01 +01:00
Klaus Weidenbach
bba20c27fe Some fixes in include/help.php.
Remove unused variables and a wrong function name.
2019-01-18 22:37:05 +01:00
Mario Vavti
d355e57fa6 Merge remote-tracking branch 'mike/master' into dev 2019-01-18 10:09:16 +01:00
Mario
f2d7c4091a Merge branch 'QA' into 'dev'
Add PostgreSQL to gitlab-ci setup.

See merge request hubzilla/core!1478
2019-01-18 10:05:13 +01:00
M. Dent
bf879ce742 Merge branch 'dreport_fixes' into 'dev'
fix delivery report for zot6 connections

See merge request hubzilla/core!1476
2019-01-18 06:15:01 +01:00
M. Dent
e89a3b05ec Merge branch 'core_fixes' into 'dev'
possible fix for #1326

See merge request hubzilla/core!1477
2019-01-18 06:13:04 +01:00
zotlabs
52305ca91b more specific network checking in several places and remove some old debugging crud 2019-01-17 14:45:53 -08:00
Klaus Weidenbach
d6167636fa Add PostgreSQL to gitlab-ci setup.
Run our tests against a PostgreSQL again.
2019-01-17 22:13:12 +01:00
Mario Vavti
cc1e1a525f possible fix for #1326 2019-01-17 21:42:24 +01:00
zotlabs
96deae43fa this should fix the rest of the event stuff 2019-01-17 11:47:55 -08:00
Mario Vavti
5aa0267936 add space 2019-01-17 20:09:19 +01:00
zotlabs
b1b1e0eba4 channel connect issue 2019-01-17 10:47:04 -08:00
Mario Vavti
07f6465872 fix delivery report for zot6 connections 2019-01-17 11:39:52 +01:00
zotlabs
eda7c5369c event attendance testing continued (now works at a basic level from one direction, more testing needed) 2019-01-16 21:09:04 -08:00
zotlabs
e9f709301c more z6 event work 2019-01-16 17:32:16 -08:00
zotlabs
7e29bd10b6 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2019-01-16 16:52:21 -08:00
zotlabs
20eea2184b more work on z6 events 2019-01-16 16:50:44 -08:00
zotlabs
eaa375936f more z6 compatibility fixes 2019-01-16 15:28:30 -08:00
Mario Vavti
de8582ec07 Merge branch 'fix_dreport_issue' into dev 2019-01-16 21:52:16 +01:00
M. Dent
e6ccdc2378 Merge branch 'queue_fixes_1' into 'dev'
do not return if delivery report could not bedecrypted

See merge request hubzilla/core!1475
2019-01-16 15:58:13 +01:00
Mario Vavti
4450a01014 do not return if delivery report could not bedecrypted 2019-01-16 15:09:18 +01:00
harukin
bb962b90cc edit translation 2019-01-16 21:19:38 +09:00
Mario Vavti
a1ac507a94 change logic for consistency 2019-01-16 10:02:13 +01:00
Mario Vavti
ad6eb15eac fix legacy zot dreport not passing the is_storable check 2019-01-15 22:36:01 +01:00
Mario
2e94e4cd67 Merge branch 'core_fixes' into 'dev'
Core fixes

See merge request hubzilla/core!1470
2019-01-15 11:38:41 +01:00
harukin
44f75d94e1 edit translation 2019-01-15 18:07:33 +09:00
harukin
ad89310c45 edit translation 2019-01-15 17:36:43 +09:00
Mario Vavti
c26e112bee whitespace 2019-01-14 15:06:21 +01:00
Mario Vavti
7daf18b077 fix a new instance of autocomplete created on each conversation update 2019-01-14 14:07:56 +01:00
Mario
a8a5d2fc4e Merge branch 'patch-20190113c' into 'dev'
Hooks to allow addons to add "extras" to privacy group settings edit page.

See merge request hubzilla/core!1469
2019-01-14 10:29:48 +01:00
Mario
90f6abfa7c Merge branch 'patch-20190113a' into 'dev'
Add collect_public_recipients hook

See merge request hubzilla/core!1467
2019-01-14 10:29:19 +01:00
Mario Vavti
65f2d7fd66 Merge branch 'dev' into core_fixes 2019-01-14 10:14:44 +01:00
Mario Vavti
f3554804bf only load new content onpopstate if the mid has actually changed 2019-01-14 10:14:37 +01:00
DM42.Net (Matt Dent)
f5e571ba40 Remove stray $ 2019-01-13 20:04:12 -05:00
DM42.Net (Matt Dent)
e43331b7a2 Add privacygroup_extras_post/drop hooks 2019-01-13 15:43:25 -05:00
Max Kostikov
e78fd09e07 Merge branch 'patch-20190113b' into 'dev'
FIX: aggregated query error in MYSQL

See merge request hubzilla/core!1468
2019-01-13 20:49:03 +01:00
DM42.Net (Matt Dent)
b4c1ca88f3 move order by and rewrite similar in update_queue_item() 2019-01-13 14:41:44 -05:00
DM42.Net (Matt Dent)
dba9c2fbb0 Add pgrp_extras hook & display 2019-01-13 14:34:04 -05:00
DM42.Net (Matt Dent)
ab074f52fe outq_created not outq_scheduled 2019-01-13 14:10:35 -05:00
DM42.Net (Matt Dent)
121fa834d5 FIX: aggregated query error in MYSQL 2019-01-13 14:06:36 -05:00
DM42.Net (Matt Dent)
598cbf2210 Add collect_public_recipients hook 2019-01-12 22:37:44 -05:00
harukin
f481ba1c1c edit translation 2019-01-13 10:39:40 +09:00
Mario
9e42dfd094 Merge branch 'patch-20190111a' into 'dev'
FIX: memory exhaustion on zot message pickup with large message queue

See merge request hubzilla/core!1466
2019-01-12 09:22:37 +01:00
M. Dent
8aa117e4ae FIX: memory exhaustion on zot message pickup with large message queue 2019-01-12 09:22:37 +01:00
Mario
f6f4e40a64 Merge branch 'patch-20190110a' into 'dev'
FIX: memory exhaustion on exceptionally large message queues & multiple...

See merge request hubzilla/core!1465
2019-01-11 20:03:34 +01:00
DM42.Net (Matt Dent)
caf2c0a6c4 Use dba_driver.php::db_getfunc() 2019-01-11 07:35:12 -05:00
zotlabs
57dde3e980 failure to import mail
(cherry picked from commit 7b30fc4b82)
2019-01-11 12:20:50 +01:00
Mario Vavti
dc8da4717f Merge remote-tracking branch 'mike/master' into dev 2019-01-11 10:14:06 +01:00
zotlabs
7b30fc4b82 failure to import mail 2019-01-10 15:02:58 -08:00
DM42.Net (Matt Dent)
6791b05a40 Fix for PGSQL/MYSQL difference 2019-01-10 15:29:24 -05:00
ZotSocial Admin
b54ddccd7b FIX: memory exhaustion on exceptionally large message queues & multiple Queue.php invocations duplicate work 2019-01-10 13:15:00 -05:00
Max Kostikov
d32360cb3e Merge branch 'core_fixes' into 'dev'
we must sslify all possible content variables

See merge request hubzilla/core!1464
2019-01-10 14:12:16 +01:00
Mario Vavti
3eba0c2297 do not count removed channels
(cherry picked from commit 01f4ce96f1)
2019-01-10 13:36:31 +01:00
Mario Vavti
01f4ce96f1 do not count removed channels 2019-01-10 13:35:27 +01:00
Mario Vavti
90b6afe06b we must sslify all possible content variables 2019-01-10 00:29:05 +01:00
M. Dent
b22caef65f Merge branch 'composer_updates' into 'dev'
update composer libs

See merge request hubzilla/core!1455
2019-01-09 19:09:20 +01:00
M. Dent
db4281164c Merge branch 'core_gallery_05' into 'dev'
core changes for gallery 05

See merge request hubzilla/core!1463
2019-01-09 19:04:52 +01:00
Mario Vavti
217c2cacaf Merge branch 'dev' into core_gallery_05 2019-01-09 10:30:44 +01:00
Mario Vavti
df4b6f0376 Merge remote-tracking branch 'mike/master' into dev 2019-01-09 10:25:04 +01:00
Mario
6ec1bfebec Merge branch 'patch-20190106a' into 'dev'
Remove Experimental Worker Queue from CORE - add hook 'daemon_master_release'

See merge request hubzilla/core!1461
2019-01-09 10:16:53 +01:00
M. Dent
5d88326915 Remove Experimental Worker Queue from CORE - add hook 'daemon_master_release' 2019-01-09 10:16:53 +01:00
Mario
24354b9dcc Merge branch 'patch-20190107a' into 'dev'
Tweak to deal with changes that may happen within the same second.

See merge request hubzilla/core!1462
2019-01-09 10:16:05 +01:00
zotlabs
39de8e28da make Apps::get_base_apps() pluggable 2019-01-08 14:14:55 -08:00
Mario Vavti
06beb59628 slightly improve item.is_new rendering 2019-01-08 15:23:08 +01:00
harukin
2dbe567e3b edit translation 2019-01-08 21:48:31 +09:00
DM42.Net (Matt Dent)
563a5088be Tweak to deal with changes that may happen within the same second. 2019-01-07 19:48:14 -05:00
M. Dent
c10c59db4b Merge branch 'browser_compatibility' into 'dev'
fix issue with IE

See merge request hubzilla/core!1460
2019-01-07 17:09:26 +01:00
M. Dent
463f084b3e Merge branch 'update_bbcode' into 'dev'
Update bbcode

See merge request hubzilla/core!1459
2019-01-07 17:09:00 +01:00
Mario
312e0dcbc8 Update bbcode 2019-01-07 17:09:00 +01:00
Mario Vavti
6f93001658 fix issue with IE 2019-01-07 09:47:08 +01:00
Max Kostikov
48821a6da5 Merge branch 'check_content_type-1' into 'dev'
fix content type check

See merge request hubzilla/core!1458
2019-01-03 19:41:00 +01:00
Mario Vavti
b93bc142d3 missing closing parenthesis 2019-01-03 19:18:49 +01:00
Mario Vavti
ab9b8b8b0a fix content type check 2019-01-03 19:13:56 +01:00
Max Kostikov
1c4a90626a Merge branch 'revert-3f61d24d' into 'dev'
Revert "Merge branch 'check_content_type' into 'dev'"

See merge request hubzilla/core!1456
2019-01-03 17:18:52 +01:00
Max Kostikov
3bf1866f4a Revert "Merge branch 'check_content_type' into 'dev'"
This reverts merge request !1453
2019-01-03 17:13:40 +01:00
Max Kostikov
1a652b555f Merge branch 'update_boot' into 'dev'
add zotsite.net to directory fallback servers

See merge request hubzilla/core!1454
2019-01-03 16:32:31 +01:00
Max Kostikov
3f61d24d0a Merge branch 'check_content_type' into 'dev'
check suppported type if we get content type from header

See merge request hubzilla/core!1453
2019-01-03 16:31:48 +01:00
Max Kostikov
16064d5614 Merge branch 'fix_pconfig' into 'dev'
fix preg_match(): Delimiter must not be alphanumeric or backslash warning

See merge request hubzilla/core!1452
2019-01-03 16:30:14 +01:00
Mario Vavti
d9f21db623 Merge remote-tracking branch 'mike/master' into dev 2019-01-03 14:05:08 +01:00
zotlabs
8ac541e634 better handling of notification updates while commenting 2019-01-02 23:33:33 -08:00
Mario Vavti
da2688403e Merge remote-tracking branch 'mike/master' into dev 2019-01-02 23:07:37 +01:00
Mario Vavti
dbd230da74 update composer libs 2019-01-02 22:41:03 +01:00
zotlabs
f660530ef5 allow notification updates when composing comments. This was disabled when it was possible to have liveUpdate run automatically while composing comments, but it seems that live update is no longer possible (however the setting still remains - this should probably be removed). 2019-01-02 12:49:04 -08:00
Mario
a19563e139 Revert "Use subselect"
This reverts commit a50433dd95
2019-01-02 19:56:11 +01:00
Mario
c4400cf72a Merge branch 'patch-20181230a' into 'dev'
Use subselect

See merge request hubzilla/core!1451
2019-01-02 19:47:39 +01:00
Mario Vavti
aae4943e64 add zotsite.net to directory fallback servers 2019-01-02 19:43:52 +01:00
Mario Vavti
b0339b848f fix preg_match(): Delimiter must not be alphanumeric or backslash warning 2019-01-02 17:53:28 +01:00
Mario Vavti
f3f106c21f check suppported type if we get content type from header 2019-01-02 17:49:21 +01:00
harukin
7fbff885dd edit translation 2019-01-01 15:22:09 +09:00
harukin
60b0e652df edit translation 2018-12-31 12:04:53 +09:00
harukin
bb3405ef60 edit translation 2018-12-31 11:57:32 +09:00
harukin
9ef0883011 edit translation 2018-12-31 10:36:15 +09:00
DM42.Net (Matt Dent)
a50433dd95 Use subselect 2018-12-30 15:05:45 -05:00
Max Kostikov
37d7d18bb7 Faster image processing with photo cache addon 2018-12-24 09:22:58 +01:00
harukin
fa0176c1e6 Merge branch 'develop' into 'japanese'
merge upstream/master for 3.8.8

See merge request harukin/core!32
2018-12-24 01:00:50 +09:00
harukin
ffadb70d81 Merge branch 'origin' into 'develop'
merge upstream/master for 3.8.8

See merge request harukin/core!30
2018-12-24 00:54:15 +09:00
Mario
414b7e28d3 bump version 2018-12-22 21:02:49 +01:00
Mario Vavti
fca464071f update changelog
(cherry picked from commit cdb85f1309)
2018-12-22 21:01:50 +01:00
Mario Vavti
cdb85f1309 update changelog 2018-12-22 21:00:01 +01:00
Mario Vavti
4f08f4b84c use count() instead of sizeof()
(cherry picked from commit 774dd6d5e3)
2018-12-22 20:20:58 +01:00
Mario Vavti
1b5175d018 check if we deal with an array before sizeof()
(cherry picked from commit 339c9cceec)
2018-12-22 20:20:13 +01:00
Mario
6d7fba6758 Merge branch 'fix_linkinfo_warning' into 'dev'
check if we deal with an array before sizeof()

See merge request hubzilla/core!1444
2018-12-22 20:18:41 +01:00
Mario Vavti
0bfda6d4c8 revert padding for text highlight. It is messing with indent punctuation and decreases legibility of the highlighted text.
(cherry picked from commit fac3579fb0)
2018-12-22 20:18:12 +01:00
Mario
880b22604b manualy Fix cURL with HTTP/2 due to merge conflicts 2018-12-22 20:17:20 +01:00
Mario
04a2dc075f manualy remove scale_external_images() due to merge conflicts 2018-12-22 20:08:44 +01:00
Max Kostikov
01448c152c Remove scale_external_images()
(cherry picked from commit 1541f67eab)
2018-12-22 20:04:09 +01:00
Max Kostikov
a09beb3833 Remove scale_external_images()
(cherry picked from commit a2959c6e9e)
2018-12-22 20:03:49 +01:00
phani00
feda1e6d84 remove color from style.css (default) but add a little padding; add color & border radius to dark.css.
(cherry picked from commit 2354bb5427)
2018-12-22 19:54:48 +01:00
phani00
4256bea418 change hl text color to the default text color in non-dark schema. looks good, except in dark, where i can change it in dark.css.
(cherry picked from commit b97143e9db)
2018-12-22 19:54:31 +01:00
phani00
4d47b098e5 remove some fancy formatting.
(cherry picked from commit aaab905e72)
2018-12-22 19:54:11 +01:00
Mario Vavti
163754a46c make mod channel deal with b64 encoded mid\s
;


(cherry picked from commit bc6d384ca9)
2018-12-22 19:53:37 +01:00
phani00
66b56416b6 new fix for dark theme
change implementation of hl-tags in include/bbcode.php
insert class='default-highlight' instead of background-color: 'yellow' into span
add span.default-highlight definition to view/theme/redbasic/css/style.css

this works for all schemas incl. dark.


(cherry picked from commit aace8a14ce)
2018-12-22 19:52:39 +01:00
phani00
c855346358 remove my dark theme fixes.
(cherry picked from commit 70a7661711)
2018-12-22 19:52:09 +01:00
Pascal Deklerck
0e32c86c3d Update OAuth2Storage.php - fix email retrieval in getUser
(cherry picked from commit 6a825cc504)
2018-12-22 19:51:16 +01:00
Mario Vavti
fac3579fb0 revert padding for text highlight. It is messing with indent punctuation and decreases legibility of the highlighted text. 2018-12-22 19:47:46 +01:00
M. Dent
19952264c8 Add reload to util/addons
(cherry picked from commit 0e5d76e735)
2018-12-22 19:43:16 +01:00
Mario Vavti
5ec1e97cae do not add timestamp to the photo src. caching is handled in mod photo now.
(cherry picked from commit e34853e19e)
2018-12-21 21:45:33 +01:00
zotlabs
5f5746a2f6 like permission issue
(cherry picked from commit 389b4beba4)
2018-12-21 21:44:33 +01:00
Mario
458b023204 Merge branch 'dev' into 'dev'
Fix for cURL with default HTTP/2

See merge request hubzilla/core!1447
2018-12-21 21:35:54 +01:00
Max Kostikov
4bad4ec632 Merge branch 'remove-legacy-photo-cache-prevention' into 'dev'
do not add timestamp to the photo src. caching is handled in mod photo now.

See merge request hubzilla/core!1448
2018-12-21 15:19:36 +01:00
Mario Vavti
e34853e19e do not add timestamp to the photo src. caching is handled in mod photo now. 2018-12-21 12:51:19 +01:00
Mario Vavti
6cbdb1b4c3 Merge remote-tracking branch 'mike/master' into dev 2018-12-21 12:19:52 +01:00
Max Kostikov
60f890ce0d Fix for cURL with default HTTP/2 2018-12-20 21:13:05 +01:00
Max Kostikov
c82c0a9812 Merge branch 'dev' into 'dev'
Dev

See merge request kostikov/core!2
2018-12-20 21:09:16 +01:00
Max Kostikov
123b1d4002 Merge branch 'revert-090fe394' into 'dev'
Revert "Fix cURL with HTTP/2"

See merge request hubzilla/core!1446
2018-12-20 21:04:12 +01:00
Max Kostikov
e4958d5bb9 Revert "Fix cURL with HTTP/2"
This reverts commit 090fe394e4
2018-12-20 20:58:48 +01:00
Max Kostikov
89e734dcca Merge branch 'dev' into 'dev'
Sync dev

See merge request kostikov/core!1
2018-12-20 20:51:26 +01:00
Max Kostikov
090fe394e4 Fix cURL with HTTP/2 2018-12-20 20:38:35 +01:00
zotlabs
389b4beba4 like permission issue 2018-12-20 11:06:52 -08:00
Mario Vavti
d0ee6d1ad2 missing observer check
(cherry picked from commit ec769bc9f9)
2018-12-20 19:45:59 +01:00
Mario Vavti
ec769bc9f9 missing observer check 2018-12-20 19:45:11 +01:00
Mario Vavti
6b259070f0 Merge remote-tracking branch 'mike/master' into dev 2018-12-20 12:59:04 +01:00
harukin
651ea8cc2f edit translation 2018-12-20 20:34:39 +09:00
harukin
3f0e948981 edit translation 2018-12-20 17:07:24 +09:00
harukin
24ed7fbf3f edit translation 2018-12-20 17:04:54 +09:00
harukin
b13c3979c2 edit translation 2018-12-20 16:59:24 +09:00
zotlabs
7a55dd512a reverse activity mapping improvements 2018-12-19 20:03:31 -08:00
harukin
fdd0dbd973 edit translation 2018-12-19 20:48:05 +09:00
Mario Vavti
774dd6d5e3 use count() instead of sizeof() 2018-12-19 11:08:28 +01:00
Mario
4cbaddf4c4 Merge branch 'dark-fix-dev' into 'dev'
fix for dark theme; includes one changes to bbcode.php and redbasic/css/style.css

See merge request hubzilla/core!1442
2018-12-19 10:14:29 +01:00
Mario
10f1da2736 Merge branch 'util-reload_addons' into 'dev'
Add reload to util/addons

See merge request hubzilla/core!1434
2018-12-19 10:12:59 +01:00
M. Dent
0e5d76e735 Add reload to util/addons 2018-12-19 10:12:59 +01:00
Mario Vavti
339c9cceec check if we deal with an array before sizeof() 2018-12-19 10:05:18 +01:00
phani00
2354bb5427 remove color from style.css (default) but add a little padding; add color & border radius to dark.css. 2018-12-18 17:54:39 +01:00
Max Kostikov
fe80f8179c Merge branch 'channel_b64_enc_mid' into 'dev'
make mod channel deal with b64 encoded mid's

See merge request hubzilla/core!1443
2018-12-18 15:10:58 +01:00
phani00
b97143e9db change hl text color to the default text color in non-dark schema. looks good, except in dark, where i can change it in dark.css. 2018-12-18 14:02:50 +01:00
phani00
aaab905e72 remove some fancy formatting. 2018-12-18 12:37:51 +01:00
Mario Vavti
bc6d384ca9 make mod channel deal with b64 encoded mid\s
;
2018-12-18 10:43:06 +01:00
Mario
6fc8c174f9 Merge branch 'dev' into 'dev'
Remove scale_external_images()

See merge request hubzilla/core!1441
2018-12-18 10:17:57 +01:00
Mario Vavti
63b205c601 Merge remote-tracking branch 'mike/master' into dev 2018-12-18 09:59:34 +01:00
harukin
f0a834f7e8 edit translation 2018-12-18 15:05:36 +09:00
harukin
fdb2cf09c7 edit translation 2018-12-18 14:26:16 +09:00
harukin
a67738380c edit translation 2018-12-18 14:19:34 +09:00
zotlabs
15ce8bc79b Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-12-17 18:45:42 -08:00
zotlabs
8d70b91955 regression: mail from dev to core not delivering 2018-12-17 18:14:32 -08:00
zotlabs
a33ed05bec fix default values for affinity tool and other information which could be lost when approving a connection without the entire form provided by connedit. 2018-12-17 11:32:59 -08:00
phani00
aace8a14ce new fix for dark theme
change implementation of hl-tags in include/bbcode.php
insert class='default-highlight' instead of background-color: 'yellow' into span
add span.default-highlight definition to view/theme/redbasic/css/style.css

this works for all schemas incl. dark.
2018-12-17 15:28:15 +00:00
phani00
d80b8ff30f Merge branch 'dev' into dark-fix-dev 2018-12-17 15:18:24 +00:00
Max Kostikov
3a66255576 Remove scale_external_images() 2018-12-17 13:29:37 +01:00
Max Kostikov
1541f67eab Remove scale_external_images() 2018-12-17 13:28:58 +01:00
Max Kostikov
a2959c6e9e Remove scale_external_images() 2018-12-17 13:28:18 +01:00
zotlabs
06c71eec65 default curl to http/1.1
(cherry picked from commit 04a45a407e)
2018-12-17 12:17:44 +01:00
phani00
70a7661711 remove my dark theme fixes. 2018-12-17 10:08:45 +00:00
Mario
d190b1995b Merge branch 'dev' into 'dev'
Keep remote site headers to respect caching policy

See merge request hubzilla/core!1440
2018-12-17 10:55:53 +01:00
Mario
a6f8230063 Merge branch 'memory-warn2' into 'dev'
add warning if upload_filesize < 4MB.

See merge request hubzilla/core!1438
2018-12-17 10:55:29 +01:00
DM42.Net (Matt Dent)
aabc6c2825 Add return if no local_channel()
(cherry picked from commit 5bcc379530)
2018-12-17 10:46:43 +01:00
DM42.Net (Matt Dent)
8323458da9 ARTICLES MODULE: Default to local_channel() user when no argv(1) is passed.
(cherry picked from commit 3f06a857c2)
2018-12-17 10:46:24 +01:00
Mario Vavti
e4c60d70b0 Merge remote-tracking branch 'mike/master' into dev 2018-12-17 10:12:53 +01:00
Max Kostikov
4d8a815932 Keep remote site headers for caching 2018-12-17 09:34:30 +01:00
Max Kostikov
b0e5f5973a Merge branch 'dev' into 'dev'
Move SSLify code from Photo cache addon

See merge request hubzilla/core!1439
2018-12-17 09:19:08 +01:00
Max Kostikov
05cb4fd897 Move SSLify code from Photo cache addon 2018-12-17 09:13:03 +01:00
Max Kostikov
72dc6ea77c Revert Photos.php code 2018-12-17 01:16:08 +01:00
Max Kostikov
1b0a6fe9eb SSLify cached URL on redirect if needed 2018-12-17 00:58:46 +01:00
Max Kostikov
363ad01bce SSLify cached URL on redirect if needed 2018-12-17 00:30:36 +01:00
zotlabs
04a45a407e default curl to http/1.1 2018-12-16 14:38:58 -08:00
phani00
14735e0a48 Update Zotlabs/Module/Setup.php 2018-12-16 22:04:28 +01:00
phani00
1c07428f89 add warning if upload_filesize < 4MB. 2018-12-16 20:35:20 +00:00
Max Kostikov
e0d68664c4 Remove photo_cache_enable variable 2018-12-16 20:48:36 +01:00
Mario
6c72c3d4a5 Merge branch 'patch-20181214a' into 'dev'
ARTICLES MODULE: Default to local_channel() user when no argv(1) is passed.

See merge request hubzilla/core!1427
2018-12-16 20:08:52 +01:00
harukin
9df8dbee08 Merge branch 'develop' into 'japanese'
add harukin- picture

See merge request harukin/core!29
2018-12-16 18:44:51 +09:00
harukin
140af45bb0 Merge branch 'add-harukin--future' into 'develop'
add harukin- picture

See merge request harukin/core!28
2018-12-16 18:43:41 +09:00
harukin
2bf2f2518c add harukin- picture 2018-12-16 18:35:45 +09:00
DM42.Net (Matt Dent)
5bcc379530 Add return if no local_channel() 2018-12-15 19:49:59 -05:00
M. Dent
c854ec0686 Merge branch 'dev' into 'dev'
Update OAuth2Storage.php - fix email retrieval in getUser

See merge request hubzilla/core!1436
2018-12-15 22:33:03 +01:00
Pascal Deklerck
6a825cc504 Update OAuth2Storage.php - fix email retrieval in getUser 2018-12-15 22:19:18 +01:00
Mario
3ed6763da9 Merge branch 'custom-item-types' into 'dev'
Add ITEM_TYPE_CUSTOM and hooks for processing custom item types

See merge request hubzilla/core!1431
2018-12-15 20:55:28 +01:00
Mario
dbeabb8ff0 Merge branch 'patch-20181214f' into 'dev'
Set min/maxversion for plugins to STD_VERSION unless otherwise specified

See merge request hubzilla/core!1430
2018-12-15 20:32:01 +01:00
Mario
cc66e1d966 Merge branch 'patch-20181214d' into 'dev'
Make Affinity Slider (optionally) 'sticky' across page loads.

See merge request hubzilla/core!1429
2018-12-15 20:31:06 +01:00
Mario Vavti
d7c7ff1c12 fix wiki preview issue with hyperlinks
(cherry picked from commit 919ea9f750)
2018-12-15 18:20:21 +01:00
Mario Vavti
919ea9f750 fix wiki preview issue with hyperlinks 2018-12-15 18:19:29 +01:00
harukin
5816ee9f9a Merge branch 'develop' into 'japanese'
merge again upstream/master for 3.8.7

See merge request harukin/core!27
2018-12-15 17:20:44 +09:00
harukin
e02c09d361 merge again upstream/master for 3.8.7 2018-12-15 17:17:00 +09:00
DM42.Net (Matt Dent)
09b2cdd618 Add ITEM_TYPE_CUSTOM and hooks for processing custom item types 2018-12-14 20:20:26 -05:00
Max Kostikov
1e526e68ab Merge branch 'patch-20181214b' into 'dev'
Recreate MR#1419 for dev branch

See merge request hubzilla/core!1428
2018-12-14 22:58:22 +01:00
Mario Vavti
d77c7d51e3 update changelog
(cherry picked from commit 4ff3c57976)
2018-12-14 21:47:20 +01:00
Mario Vavti
4ff3c57976 update changelog 2018-12-14 21:46:48 +01:00
Mario Vavti
d51d0160d3 fix issue with linkdropper
(cherry picked from commit f81a3ba45d)
2018-12-14 21:32:23 +01:00
zotlabs
c2ad9d4996 regression: the ability to order apps messed up since adding pinned apps to the ordering
(cherry picked from commit 6464099364)
2018-12-14 21:31:02 +01:00
DM42.Net (Matt Dent)
3416190e4b Set min/maxversion for plugins to STD_VERSION unless otherwise specified 2018-12-14 14:22:28 -05:00
DM42.Net (Matt Dent)
de7cb6d6ad Fix syntax error 2018-12-14 13:59:41 -05:00
DM42.Net (Matt Dent)
eb297104de Make Affinity Slider (optionally) 'sticky' across page loads. (default is current behavior: reset slider with each page load) 2018-12-14 12:55:49 -05:00
harukin
dfa6463e5b Merge branch 'develop' into 'japanese'
merge from upsream

See merge request harukin/core!25
2018-12-15 00:48:21 +09:00
harukin
097afab9f4 merge from upsream 2018-12-15 00:40:38 +09:00
DM42.Net (Matt Dent)
03a214c8b9 Recreate MR#1419 for dev branch 2018-12-14 10:05:41 -05:00
DM42.Net (Matt Dent)
3f06a857c2 ARTICLES MODULE: Default to local_channel() user when no argv(1) is passed. 2018-12-14 09:55:27 -05:00
Mario
79f828125d version bump 2018-12-14 11:47:02 +01:00
Mario Vavti
ad4b18cbbe return on readImageBlob() exception
(cherry picked from commit 993db01400)
2018-12-14 11:31:11 +01:00
Mario Vavti
1bd49671b7 add photo_view_filter hook and fix minor issue with unset auto_save_draft variable which resultet in a javascript error
(cherry picked from commit 7894fed741)
2018-12-14 11:30:57 +01:00
zotlabs
9896057549 home notifications won't expand if there are more than 300 unseen network notifications ahead of them.
(cherry picked from commit 30efeb5bec)
2018-12-14 11:30:25 +01:00
phani00
44832bbacb change redbasic dark schema to make categories and highlights readable
additions to /view/theme/redbasic/schema/dark.css to change the appearance of category
badges and highlighted text ([hl]...[/hl]).

hl text changed from master: it's not 'strong' anymore. commented out the pseudo-class
selector that works in master but not in dev anymore.


(cherry picked from commit 18caf0273f)
2018-12-14 11:30:05 +01:00
zotlabs
f20a923dd7 total_identities restriction off by one
(cherry picked from commit e60fb17524)
2018-12-14 11:29:33 +01:00
zotlabs
30403da326 reset page title if article has no title.
(cherry picked from commit 8ab1f31058)
2018-12-14 11:29:06 +01:00
Mario Vavti
f81a3ba45d fix issue with linkdropper 2018-12-14 11:23:08 +01:00
harukin
018fa052f2 edit translation 2018-12-14 19:21:10 +09:00
Mario Vavti
c771d2809f Merge remote-tracking branch 'mike/master' into dev 2018-12-14 10:28:55 +01:00
zotlabs
fc78206049 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-12-13 16:13:13 -08:00
zotlabs
6464099364 regression: the ability to order apps messed up since adding pinned apps to the ordering 2018-12-12 19:11:30 -08:00
harukin
7c19f0cca7 edit translation 2018-12-12 11:42:46 +09:00
harukin
c2181c23ef edit translation 2018-12-12 11:31:05 +09:00
harukin
3cf145aa6a edit translation 2018-12-11 23:01:28 +09:00
Max Kostikov
6bea3d6bfc Merge branch 'fix_photo_imagick' into 'dev'
return on readImageBlob() exception

See merge request hubzilla/core!1426
2018-12-11 13:31:34 +01:00
Mario Vavti
993db01400 return on readImageBlob() exception 2018-12-11 12:21:09 +01:00
harukin
f2d078e3cd edit translation 2018-12-11 10:02:20 +09:00
M. Dent
4cb4f17500 Merge branch 'photo-hook' into 'dev'
add photo_view_filter hook and fix minor issue with unset auto_save_draft…

See merge request hubzilla/core!1425
2018-12-10 21:49:12 +01:00
Mario Vavti
15a689c6f5 Merge remote-tracking branch 'mike/master' into dev 2018-12-10 10:38:06 +01:00
Mario Vavti
7894fed741 add photo_view_filter hook and fix minor issue with unset auto_save_draft variable which resultet in a javascript error 2018-12-10 10:37:29 +01:00
M. Dent
61f7c1e7d7 Merge branch 'dark-theme-dev' into 'dev'
change redbasic dark schema to make categories and highlights readable

See merge request hubzilla/core!1424
2018-12-10 05:36:58 +01:00
zotlabs
30efeb5bec home notifications won't expand if there are more than 300 unseen network notifications ahead of them. 2018-12-09 20:24:04 -08:00
phani00
18caf0273f change redbasic dark schema to make categories and highlights readable
additions to /view/theme/redbasic/schema/dark.css to change the appearance of category
badges and highlighted text ([hl]...[/hl]).

hl text changed from master: it's not 'strong' anymore. commented out the pseudo-class
selector that works in master but not in dev anymore.
2018-12-10 03:03:28 +00:00
zotlabs
214b81e491 rmagic discovery for z6 networks 2018-12-09 16:37:15 -08:00
zotlabs
e60fb17524 total_identities restriction off by one 2018-12-09 11:20:57 -08:00
harukin
4f1fdf85c8 edit translation 2018-12-09 13:31:34 +09:00
harukin
33865993db edit translation 2018-12-09 13:29:24 +09:00
harukin
5a27aaef24 edit translation 2018-12-06 22:10:55 +09:00
Mario Vavti
7f65d82a74 Merge remote-tracking branch 'mike/master' into dev 2018-12-06 12:50:23 +01:00
zotlabs
8ab1f31058 reset page title if article has no title. 2018-12-05 16:24:30 -08:00
harukin
770036c5a8 Merge branch 'develop' into 'japanese'
merge from upsream 3.8.6 release

See merge request harukin/core!23
2018-12-04 23:55:59 +09:00
harukin
e8acf7e87a merge from upsream 3.8.6 release 2018-12-04 23:52:59 +09:00
harukin
2a4aea67b8 edit translation 2018-12-04 23:47:09 +09:00
Max Kostikov
d12744011a Merge branch 'dev' into 'dev'
Add strings to Russian translation

See merge request hubzilla/core!1418
2018-12-04 11:50:04 +01:00
Max Kostikov
c0e4c92d47 Update hstrings.php 2018-12-04 11:41:59 +01:00
Max Kostikov
cc3e910194 Update hmessages.po 2018-12-04 11:41:42 +01:00
Mario Vavti
5d9f993352 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-12-04 11:39:14 +01:00
Mario
eaa52c19a8 Merge branch 'photocache' into 'dev'
Less dependence on cache logic

See merge request hubzilla/core!1417
2018-12-04 11:38:58 +01:00
zotlabs
42aeb19562 partial solution for obj|tgt multiple (zot and zot6) encodings; the zot6 version will be stored under $item['obj']['asld'] 2018-12-03 20:09:57 -08:00
zotlabs
ffc3dba682 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-12-03 19:19:31 -08:00
zotlabs
1acc5ceb5f more merging 2018-12-03 19:18:20 -08:00
zotlabs
7d694dca07 more work on z6 commenting 2018-12-03 18:50:45 -08:00
zotlabs
7a693500c4 fix generated plink 2018-12-03 14:21:33 -08:00
Max Kostikov
1c44912aff Update Photo.php 2018-12-03 21:33:32 +01:00
Mario Vavti
5e14da67e1 quickfix for es-es language
(cherry picked from commit 6b68a76bbe)
2018-12-03 21:24:29 +01:00
Mario Vavti
6b68a76bbe quickfix for es-es language 2018-12-03 21:22:02 +01:00
Max Kostikov
b586fcebab Update Photo.php 2018-12-03 21:21:23 +01:00
Max Kostikov
244c0d828a Update Photo.php 2018-12-03 13:29:27 +01:00
Max Kostikov
57ebd7e170 New logic for less dependence on cache logic 2018-12-03 13:10:55 +01:00
Mario Vavti
8f10b58cb1 version 3.8.6 2018-12-03 12:23:55 +01:00
Mario Vavti
f8bc408abc update strings 2018-12-03 12:07:56 +01:00
Mario Vavti
f581f6163a optimize autoload cache 2018-12-03 11:52:38 +01:00
Mario Vavti
5776471547 changelog
(cherry picked from commit 88486a1278)
2018-12-03 11:48:30 +01:00
Mario Vavti
88486a1278 changelog 2018-12-03 11:47:28 +01:00
Mario Vavti
9fcadc2d7c prevent incompatible export files (osada/zap) from being imported (manual patch from dev) 2018-12-03 11:08:39 +01:00
Mario Vavti
c50e3a702a more notifications fixes
(cherry picked from commit 9ef6c57ca5)
2018-12-03 10:49:08 +01:00
Mario Vavti
2173ef5fb6 catch exception if readImageBlob() receives bogus data
(cherry picked from commit 443d7684db)
2018-12-03 10:48:39 +01:00
Mario Vavti
9ef6c57ca5 more notifications fixes 2018-12-03 10:46:49 +01:00
Mario Vavti
443d7684db catch exception if readImageBlob() receives bogus data 2018-12-03 10:45:43 +01:00
Max Kostikov
1f6da1c653 Merge branch 'photocache' into 'dev'
Add flag to allow to save image without validation

See merge request hubzilla/core!1416
2018-12-03 00:57:52 +01:00
Max Kostikov
c165894ce9 Add Expires field support 2018-12-03 00:51:09 +01:00
Max Kostikov
19903ea3c1 Add flag to allow to save image without validation 2018-12-02 21:59:08 +01:00
M. Dent
0b38ab259c Merge branch 'photocache' into 'dev'
Add Photo Cache addon support

See merge request hubzilla/core!1412
2018-12-02 19:33:54 +01:00
harukin
5d82037ffb edit translation 2018-12-02 20:36:14 +09:00
harukin
a41713febb edit translation 2018-12-02 20:29:11 +09:00
harukin
5002d8e1fa edit translation 2018-12-02 19:59:58 +09:00
Mario Vavti
237c6eed50 fallback to url if we have not got an addr
(cherry picked from commit a3ba7f0788)
2018-12-02 11:39:04 +01:00
Mario Vavti
a3ba7f0788 fallback to url if we have not got an addr 2018-12-02 11:38:13 +01:00
Mario Vavti
f13b1e8604 fix filtering by addr in handleNotificationsItems()
(cherry picked from commit f083c0cba1)
2018-12-02 10:59:33 +01:00
Mario Vavti
f083c0cba1 fix filtering by addr in handleNotificationsItems() 2018-12-02 10:58:54 +01:00
Mario Vavti
defa2d9df1 make pdf preview 100% width and 300px height to match it openstreetmaps preview
(cherry picked from commit df84352385)
2018-12-02 10:18:37 +01:00
Mario Vavti
05c422ef23 redbasic sticky aside fixes
(cherry picked from commit 8d4f6a7865)
2018-12-02 10:18:20 +01:00
zotlabs
51d274961b typo
(cherry picked from commit 6f22e47feb)
2018-12-02 10:18:05 +01:00
zotlabs
4b4cc04897 allow notification filtering by name or addr
(cherry picked from commit c6acb6191c)
2018-12-02 10:17:45 +01:00
zotlabs
4bf3d4d87a attached photo permissions regression
(cherry picked from commit 6cade7d935)
2018-12-02 10:17:29 +01:00
Manuel Jiménez Friaza
71cc980e96 Revision 1 doc/es-es/about/about.bb
(cherry picked from commit 5ac08ec3aa)

(cherry picked from commit 37d563c30e)
2018-12-02 10:16:50 +01:00
Mario
58c0b81908 use flex for the default template
(cherry picked from commit 3775be4ce9)
2018-12-02 10:16:24 +01:00
M. Dent
3b42bd43ab Do not store serialized pconfig value received via to Module/Pconfig.php
(cherry picked from commit 6b02c664fb)
2018-12-02 10:15:55 +01:00
Mario
a151532ffa update jquery-file-upload and psr-log via composer
(cherry picked from commit c7ae3fdc9a)
2018-12-02 10:14:58 +01:00
Mario
a0d1ce77dc update imagesloaded to version 4.1.4 via composer
(cherry picked from commit c667572d3e)
2018-12-02 10:14:37 +01:00
Manuel Jiménez Friaza
863cae1bab Update es-es
(cherry picked from commit ca98a566ee)
2018-12-02 10:13:43 +01:00
zotlabs
4010ea814a fix mastodon tag notifications (again)
(cherry picked from commit 8e71324514)
2018-12-02 10:13:12 +01:00
zotlabs
8e25c091f4 no mention notifications from mastodon (and pleroma)
(cherry picked from commit ea235c0c67)
2018-12-02 10:12:44 +01:00
Max Kostikov
2a57e00cb4 Remove local_channel() check on cache_body_hook call 2018-12-02 10:07:12 +01:00
M. Dent
52424b0f9c Merge branch 'pdf_embed_fixes' into 'dev'
make pdf preview 100% width and 300px height to match it openstreetmaps preview

See merge request hubzilla/core!1414
2018-12-02 05:09:45 +01:00
M. Dent
132547a9d9 Merge branch 'sticky_aside_fixes' into 'dev'
redbasic sticky aside fixes

See merge request hubzilla/core!1415
2018-12-02 05:07:59 +01:00
Mario Vavti
fdb0459288 Merge remote-tracking branch 'mike/master' into dev 2018-12-01 21:43:54 +01:00
Mario Vavti
df84352385 make pdf preview 100% width and 300px height to match it openstreetmaps preview 2018-12-01 21:37:33 +01:00
Mario Vavti
8d4f6a7865 redbasic sticky aside fixes 2018-12-01 21:30:18 +01:00
harukin
d72276df94 edit translation 2018-12-01 23:15:39 +09:00
harukin
450bb1c2cb edit translation 2018-12-01 22:54:51 +09:00
zotlabs
6f22e47feb typo 2018-11-30 22:39:10 -08:00
zotlabs
c6acb6191c allow notification filtering by name or addr 2018-11-30 19:03:14 -08:00
zotlabs
6cade7d935 attached photo permissions regression 2018-11-30 13:54:17 -08:00
Max Kostikov
c857ecab46 Create plink depending on message id format 2018-11-30 19:56:49 +01:00
Max Kostikov
53d9cbc69c Check local_channel() before cache call 2018-11-30 11:38:47 +01:00
Max Kostikov
0ee403eab3 Move cache code to addon 2018-11-30 10:50:00 +01:00
Max Kostikov
6f2d09eb20 Fix wrong parameter 2018-11-29 23:28:45 +01:00
Max Kostikov
d6442ec991 Update text.php 2018-11-29 23:07:39 +01:00
Max Kostikov
f3831fa77f Better cache settings logic 2018-11-29 21:27:06 +01:00
Max Kostikov
3265c2e543 Skip sslify for images if it already were cached with https enabled 2018-11-29 20:36:21 +01:00
Max Kostikov
1a9ea64523 Update text.php 2018-11-29 19:28:54 +01:00
Max Kostikov
9de650e175 Cache for viewer channel 2018-11-29 19:13:43 +01:00
Max Kostikov
d8b5f383f5 Disable links to cached photos for non logged viewers 2018-11-29 16:21:50 +01:00
harukin
658c0734e2 edit translation 2018-11-30 00:19:54 +09:00
harukin
5c7f01140a edit translation 2018-11-29 22:53:13 +09:00
harukin
12767746ca edit translation 2018-11-29 22:50:12 +09:00
harukin
ffa86b25db edit translation 2018-11-29 22:46:14 +09:00
harukin
2763c0f40e edit translation 2018-11-29 22:42:28 +09:00
Max Kostikov
6aa99a903f Code cleanup 2018-11-29 11:56:56 +01:00
Max Kostikov
d9faf6c4bb Update text.php 2018-11-29 11:48:12 +01:00
Max Kostikov
48cd5855fe Add photo cache support using sslify() 2018-11-29 11:06:14 +01:00
Max Kostikov
bd0fc8a2d7 Add photo cache hooks 2018-11-29 10:38:25 +01:00
Max Kostikov
476bd7400d Add photo cache cleanup 2018-11-29 10:37:39 +01:00
Max Kostikov
bd10d48338 Update database with expires field for photo 2018-11-29 10:36:56 +01:00
Max Kostikov
bb91064416 Add expires for photo 2018-11-29 10:35:56 +01:00
Max Kostikov
72d2fe2fd4 Add expires for photo 2018-11-29 10:35:11 +01:00
Max Kostikov
92a5b9ac41 Add PHOTO_CACHE photo type 2018-11-29 10:34:18 +01:00
M. Dent
cded6b1136 Merge branch 'es-es' into 'dev'
Revision 1 doc/es-es/about/about.bb

See merge request hubzilla/core!1410
2018-11-28 05:32:10 +01:00
M. Dent
19f0ce7e37 Merge branch 'default2flex-conversion' into 'dev'
use flex for the default template

See merge request hubzilla/core!1409
2018-11-28 04:03:39 +01:00
M. Dent
a88a515fa0 Merge branch 'composer-updates' into 'dev'
update jquery-file-upload and psr-log via composer

See merge request hubzilla/core!1408
2018-11-28 03:55:13 +01:00
M. Dent
a4b2eac0f0 Merge branch 'update-imagesloaded' into 'dev'
update imagesloaded to version 4.1.4 via composer

See merge request hubzilla/core!1407
2018-11-28 03:52:53 +01:00
M. Dent
0bd38290e6 Merge branch 'pg-fixes' into 'dev'
fix db upgrade 1228 for postgres

See merge request hubzilla/core!1403
2018-11-28 03:49:22 +01:00
zotlabs
19e4f3c2f0 prevent incompatible export files (osada/zap) from being imported. This is to keep your DB from getting trashed. We probably need a similar thing for item import since the object formats aren't compatible 2018-11-27 11:53:02 -08:00
harukin
e6edac1589 edit translation 2018-11-28 00:29:24 +09:00
harukin
781d0c0fe0 edit translation 2018-11-27 23:26:03 +09:00
harukin
b48cb47f41 edit translation 2018-11-27 19:38:00 +09:00
harukin
1ece7caa57 edit translation 2018-11-27 19:35:54 +09:00
harukin
0c1a3b1a61 edit translation 2018-11-27 19:10:07 +09:00
harukin
2b5d4ef346 edit translation 2018-11-27 19:07:33 +09:00
harukin
2dbd990017 edit translate 2018-11-27 18:59:50 +09:00
harukin
34961b39fe edit translation 2018-11-27 18:53:26 +09:00
harukin
088a54dacb edit translation 2018-11-27 18:47:25 +09:00
harukin
bc9d4a7643 edit translation 2018-11-27 18:32:55 +09:00
harukin
e0ee14d5b0 edit translation 2018-11-27 16:19:46 +09:00
harukin
e88db3d609 edit translation 2018-11-27 15:45:10 +09:00
harukin
f7d3550122 edit translation 2018-11-27 15:35:48 +09:00
harukin
896681b671 edit translation 2018-11-27 14:47:19 +09:00
harukin
fbdbd440d2 edit translation 2018-11-27 14:40:32 +09:00
harukin
c0af854cb6 fixed translation 2018-11-27 14:37:10 +09:00
harukin
92889397e6 edit translation 2018-11-27 14:29:43 +09:00
harukin
7c10b53209 えぢ らんぁちおん 2018-11-27 14:19:23 +09:00
harukin
a154fedbfb edit translation 2018-11-27 14:13:47 +09:00
harukin
7c43f5b554 edit translation 2018-11-27 14:09:58 +09:00
harukin
d19769115c edit translation 2018-11-27 14:03:06 +09:00
harukin
561ffce031 edit translation & add OSUSHI!.svg 2018-11-27 11:48:06 +09:00
harukin
61e2190f98 edit translation 2018-11-27 03:14:59 +09:00
harukin
c56abbf7df fixed translation 2018-11-27 03:11:16 +09:00
harukin
1cd2f7e0f4 edit translation 2018-11-27 03:08:22 +09:00
harukin
516ad23aa5 fix translation miss 2018-11-27 03:05:27 +09:00
harukin
0599d27463 edit translation 2018-11-27 03:04:07 +09:00
harukin
f56107c84d edit translation 2018-11-27 02:59:08 +09:00
harukin
dd61824df5 edit translation 2018-11-27 02:54:15 +09:00
harukin
531b4d955c edit translation 2018-11-27 02:00:16 +09:00
Manuel Jiménez Friaza
8bede7b81f Merge branch 'cherry-pick-5ac08ec3' into 'es-es'
Revision 1 doc/es-es/about/about.bb

See merge request mjfriaza/core!3
2018-11-26 12:59:03 +01:00
Manuel Jiménez Friaza
37d563c30e Revision 1 doc/es-es/about/about.bb
(cherry picked from commit 5ac08ec3aa)
2018-11-26 12:53:24 +01:00
Mario
3775be4ce9 use flex for the default template 2018-11-26 12:44:10 +01:00
harukin
87e2aa42b8 edit translation 2018-11-26 13:23:18 +09:00
harukin
d9560ad124 edit translation 2018-11-26 13:19:32 +09:00
harukin
b93397e415 edit translation 2018-11-26 13:14:51 +09:00
harukin
44d89c7209 edit translation 2018-11-26 12:49:12 +09:00
harukin
5bb9890660 edit translation 2018-11-26 12:33:13 +09:00
harukin
f22d589c49 edit translation 2018-11-26 10:55:54 +09:00
harukin
17f873db70 edit translation /settings/display fin 2018-11-26 10:43:55 +09:00
harukin
1647c39bf2 Merge branch 'develop' into 'japanese'
merge from master/upstream

See merge request harukin/core!21
2018-11-26 10:22:21 +09:00
harukin
026d6d4a70 edit translation /settings/display 2018-11-26 03:44:07 +09:00
harukin
93113e0f00 edit translation /settings/channel fin 2018-11-26 03:29:31 +09:00
harukin
236692908a edit translation /settings/channel 2018-11-26 03:22:27 +09:00
harukin
6eea7c7e50 edit translation /settings/channel 2018-11-26 00:48:51 +09:00
harukin
31516acec2 edit translation /settings/editor/ fin 2018-11-26 00:32:55 +09:00
harukin
c9728961bf edit settings/editor/ launguage 2018-11-26 00:12:46 +09:00
harukin
7bd89a9ab1 2018-11-26 00:00:41 +09:00
harukin
39b553529d add manifest.json 2018-11-25 23:36:59 +09:00
Mario
e5883dd605 Merge branch 'patch-20181120a' into 'dev'
Do not store serialized pconfig value received via  to Module/Pconfig.php

See merge request hubzilla/core!1402
2018-11-25 10:22:09 +01:00
M. Dent
6b02c664fb Do not store serialized pconfig value received via to Module/Pconfig.php 2018-11-25 10:22:09 +01:00
Mario
c7ae3fdc9a update jquery-file-upload and psr-log via composer 2018-11-25 10:18:26 +01:00
Mario
c667572d3e update imagesloaded to version 4.1.4 via composer 2018-11-25 10:09:26 +01:00
Mario
9bbd6ff67d Merge branch 'es-es' into 'dev'
Update es-es

See merge request hubzilla/core!1406
2018-11-24 21:16:59 +01:00
Manuel Jiménez Friaza
ca98a566ee Update es-es 2018-11-24 13:23:20 +01:00
Manuel Jiménez Friaza
f865d6e5da Resolved merge conflicts 2018-11-24 13:01:01 +01:00
Mario
bc9f2922e0 Merge remote-tracking branch 'mike/master' into dev 2018-11-23 22:04:51 +01:00
zotlabs
c5a9b00eae Organization actor type was missing 2018-11-23 12:25:05 -08:00
Mario
f408ff982c Merge remote-tracking branch 'mike/master' into dev 2018-11-23 15:42:40 +01:00
zotlabs
9a8d1200ec use uuid in file storage 2018-11-22 18:39:38 -08:00
Mario
16c7aa2813 fix db upgrade 1228 for postgres 2018-11-22 12:52:08 +01:00
Mario
85f52d2aed Merge remote-tracking branch 'mike/master' into dev 2018-11-22 10:17:18 +01:00
zotlabs
8e71324514 fix mastodon tag notifications (again) 2018-11-21 20:25:59 -08:00
zotlabs
ea235c0c67 no mention notifications from mastodon (and pleroma) 2018-11-21 20:03:58 -08:00
harukin
1aecbbece5 merge from master 2018-11-21 21:49:47 +09:00
Mario Vavti
e30be643c9 fix call to undefined function
(cherry picked from commit 0bba9482df)
2018-11-21 13:27:21 +01:00
Mario Vavti
0bba9482df fix call to undefined function 2018-11-21 13:21:29 +01:00
Mario
07fd2dbc99 Merge branch 'dev' into 'dev'
Update Russian translation

See merge request hubzilla/core!1400
2018-11-20 11:08:27 +01:00
Mario Vavti
f8a8559523 fix typo which prevented propagation of comments
(cherry picked from commit 0c94747ab1)
2018-11-20 10:09:46 +01:00
zotlabs
6481c9dca1 use this form instead 2018-11-19 15:20:28 -08:00
zotlabs
7aaa1973f4 push recent changes 2018-11-19 15:04:08 -08:00
harukin
a12abaac9d 規約誤植修正 2018-11-19 22:30:10 +09:00
Max Kostikov
4dea1b5a0d Replace hmessages.po 2018-11-19 13:52:31 +01:00
Max Kostikov
da44ab0529 Replace hstrings.php 2018-11-19 13:51:54 +01:00
harukin
1a1e8463cc Merge branch 'develop' into 'japanese'
merge from upsream 3.8.5 release

See merge request harukin/core!19
2018-11-19 21:44:09 +09:00
Mario
73b836c73d Revert "Fix return on wrong sotred in Content-Length size for full size photos"
This reverts commit 6010b5c619
2018-11-19 13:11:18 +01:00
Mario
af0c2f59cc Revert "Add filesize for streaming content"
This reverts commit 238a616292
2018-11-19 13:11:04 +01:00
harukin
f5faa053bf merge from upsream 3.8.5 release 2018-11-19 20:40:12 +09:00
Mario Vavti
1044e8e91a version 3.8.5 2018-11-19 11:12:32 +01:00
Mario Vavti
dffc0a4ed8 changelog
(cherry picked from commit 5cb4cdaa5e)
2018-11-19 11:11:47 +01:00
Mario Vavti
ba4b1cb5af Merge branch 'master' of https://framagit.org/hubzilla/core 2018-11-19 11:10:36 +01:00
Mario Vavti
5cb4cdaa5e changelog 2018-11-19 11:10:22 +01:00
Mario Vavti
0525eb2d29 update sql schemas to include update column in pconfig table
(cherry picked from commit ae97649948)
2018-11-19 10:45:33 +01:00
Mario
7be1d9e45a Merge branch 'patch-20181118a' into 'dev'
Patch 20181118a - fix delayed publication of posts

See merge request hubzilla/core!1398

(cherry picked from commit f34af496ec)

3787c490 Fix: delayed items propagate before publication on cloned channels
2018-11-19 10:45:01 +01:00
Mario
f34af496ec Merge branch 'patch-20181118a' into 'dev'
Patch 20181118a - fix delayed publication of posts

See merge request hubzilla/core!1398
2018-11-19 10:44:41 +01:00
Mario Vavti
ae97649948 update sql schemas to include update column in pconfig table 2018-11-19 10:42:18 +01:00
DM42.Net (Matt Dent)
3787c490d4 Fix: delayed items propagate before publication on cloned channels 2018-11-18 07:00:06 -05:00
Max Kostikov
c3f1aae570 Merge branch 'mod-zot-fix' into 'dev'
fix typo which prevented propagation of comments

See merge request hubzilla/core!1399
2018-11-18 11:21:07 +01:00
Mario Vavti
0c94747ab1 fix typo which prevented propagation of comments 2018-11-18 11:02:01 +01:00
Mario Vavti
783cca1e13 recalculate photo filesize when rotating an image
(cherry picked from commit f15e32d063)
2018-11-17 09:51:28 +01:00
Mario Vavti
f15e32d063 recalculate photo filesize when rotating an image 2018-11-17 09:41:26 +01:00
Max Kostikov
238a616292 Add filesize for streaming content 2018-11-16 23:33:45 +01:00
Max Kostikov
6010b5c619 Fix return on wrong sotred in Content-Length size for full size photos 2018-11-16 23:14:10 +01:00
Mario Vavti
4812c5486d strlen($this->imageString()) does not return the correct size when dealing with os_storage images. use filesize() instead.
(cherry picked from commit afc75af62f)
2018-11-16 22:19:01 +01:00
Mario Vavti
afc75af62f strlen($this->imageString()) does not return the correct size when dealing with os_storage images. use filesize() instead. 2018-11-16 22:14:11 +01:00
Mario
23b30fdd10 Merge branch 'dev_homeinstall_raspihub' into 'dev'
localhost, URLs, version updates

See merge request hubzilla/core!1396
2018-11-16 11:30:53 +01:00
Mario
2778a7220f Merge branch 'master' into 'master'
delivery issue

See merge request hubzilla/core!1397
2018-11-16 10:29:45 +01:00
Mario Vavti
c69556f2ff Merge remote-tracking branch 'mike/master' into dev 2018-11-16 10:11:46 +01:00
zotlabs
b0689614bf datetime_convert wrong args 2018-11-15 21:14:14 -08:00
zotlabs
e42a401987 more work on the mid/uuid conversion 2018-11-15 20:50:47 -08:00
zotlabs
5162459e4a delivery report issue 2018-11-15 18:07:58 -08:00
zotlabs
39d914c9df add item.uuid to relevant places 2018-11-15 16:34:09 -08:00
zotlabs
8d2f4d9dfd mid -> uuid conversions for basic reactions 2018-11-15 16:02:29 -08:00
zotlabs
a7d2f9b530 remove checkjs and nojs 2018-11-15 15:35:06 -08:00
zotlabs
26f593afaa delivery issue 2018-11-15 13:52:25 -08:00
Mario Vavti
ca4e7f9b4f fix update 1228 2018-11-15 10:11:04 +01:00
zotlabs
b11858bcac separate by network 2018-11-14 20:34:00 -08:00
zotlabs
034f23b47e update httpsig unit test which is failing 2018-11-14 19:09:18 -08:00
zotlabs
9c25f300cf fixes to old z6 delivery 2018-11-14 18:56:38 -08:00
zotlabs
db4ff56f0b more logging 2018-11-14 18:41:36 -08:00
zotlabs
830c2472cb more logging 2018-11-14 18:39:23 -08:00
zotlabs
079e2af0c0 check keyid 2018-11-14 18:33:00 -08:00
zotlabs
5f166158c3 filter by network 2018-11-14 18:25:02 -08:00
zotlabs
4a06378d67 crypto fix 2018-11-14 18:19:35 -08:00
zotlabs
d0f0a74df8 encrypted header issue 2018-11-14 18:14:47 -08:00
zotlabs
65a8965e85 extra logging 2018-11-14 18:07:39 -08:00
zotlabs
ab2376f8d8 fix dreport link 2018-11-14 17:42:02 -08:00
zotlabs
48717dff00 change db update counter 2018-11-14 16:56:07 -08:00
zotlabs
b64dd7ab57 Merge branch 'master' into zvi 2018-11-14 16:42:03 -08:00
zotlabs
bf013ecf00 db updates for zot6 2018-11-14 16:40:30 -08:00
OJ Random
22b744fa23 Merge remote-tracking branch 'official/dev' into dev_homeinstall_raspihub 2018-11-14 17:32:24 +01:00
harukin
839a29a2a6 Merge branch 'develop' into 'japanese'
利用規約追加

See merge request harukin/core!17
2018-11-15 00:33:51 +09:00
harukin
81bc44b30f 利用規約追加 2018-11-15 00:33:51 +09:00
harukin
58083ccb0c 2018-11-15 00:28:19 +09:00
OJ Random
71cc2d7d5d localhost, URLs, version updates 2018-11-14 16:27:27 +01:00
harukin
976a4da0a1 2018-11-15 00:25:55 +09:00
harukin
74c48e5906 利用規約追加 2018-11-15 00:24:20 +09:00
harukin
1d0ad72800 Merge branch 'develop' into 'japanese'
Merge Upstream to here. 3.8.4

See merge request harukin/core!14
2018-11-14 19:51:21 +09:00
harukin
23b65c8e6e Merge Upstream to here. 3.8.4 2018-11-14 19:45:51 +09:00
Mario Vavti
62b367fa81 version 3.9.5 2018-11-14 11:22:41 +01:00
Mario Vavti
beac45b075 more changelog 2018-11-14 11:20:39 +01:00
Mario Vavti
dfc5159aa3 Merge branch 'dev' 2018-11-14 11:12:20 +01:00
Mario Vavti
886cdb440b changelog and version 2018-11-14 11:08:25 +01:00
Mario
6ed9443972 Merge branch 'patch-20181113b' into 'dev'
Patch 20181113b

See merge request hubzilla/core!1395
2018-11-14 09:30:54 +01:00
Mario
08e0f172de Merge branch 'dev' into 'dev'
Remove unneccessary fetch_image_from_url() function

See merge request hubzilla/core!1393
2018-11-14 09:30:28 +01:00
zotlabs
cfc43f6dea Merge branch 'master' into zvi 2018-11-13 20:37:52 -08:00
DM42.Net (Matt Dent)
f1d168f781 Fix double escaping after xss fix 2018-11-13 23:06:00 -05:00
DM42.Net (Matt Dent)
302d9796c4 Revert "Filter search box before display"
This reverts commit 35e66770be.
2018-11-13 22:59:36 -05:00
zotlabs
ee85784be1 stay ahead of the game 2018-11-13 19:55:43 -08:00
M. Dent
1260887fa7 Merge branch 'patch-20181113a' into 'dev'
Patch 20181113a

See merge request hubzilla/core!1394
2018-11-14 03:21:32 +01:00
DM42.Net (Matt Dent)
ce8073d25e Merge remote-tracking branch red/master into patch-20181113a. Add Mike's fix to search xss and Superblock fix. 2018-11-13 20:19:12 -05:00
zotlabs
31f4d9066b xss in search 2018-11-13 14:23:56 -08:00
DM42.Net (Matt Dent)
35e66770be Filter search box before display 2018-11-13 17:20:21 -05:00
Max Kostikov
cf2f7f2132 Update Photo.php 2018-11-13 12:52:35 +01:00
Max Kostikov
a145559662 Remove uneccessary include/photos.php 2018-11-13 11:45:18 +01:00
Max Kostikov
d029e3dc16 Text formatting in Photo.php 2018-11-13 11:39:42 +01:00
Max Kostikov
286326a98e Replace fetch_image_from_url() with z_fetch_url() 2018-11-13 11:38:49 +01:00
Max Kostikov
2f59d78737 Remove fetch_image_from_url() because of functions duplicate 2018-11-13 11:37:32 +01:00
Max Kostikov
adf4782076 Merge branch 'revert-6375f2d7' into 'dev'
Revert "Replace fetch_image_from_url() with z_fetch_url()"

See merge request hubzilla/core!1392
2018-11-13 11:36:02 +01:00
Max Kostikov
b38ffef2be Revert "Replace fetch_image_from_url() with z_fetch_url()"
This reverts commit 6375f2d73a
2018-11-13 11:25:46 +01:00
Max Kostikov
6375f2d73a Replace fetch_image_from_url() with z_fetch_url() 2018-11-13 11:25:14 +01:00
zotlabs
1a2df9c51c item uuid changes 2018-11-12 18:25:55 -08:00
zotlabs
770fdb2b7d dreport updates 2018-11-12 16:08:22 -08:00
M. Dent
a7d3a49171 Merge branch 'fix-activity-filter-widget' into 'dev'
use the correct javascript function for this case

See merge request hubzilla/core!1390
2018-11-12 21:50:08 +01:00
M. Dent
920e7db709 Merge branch 'css-fixes' into 'dev'
css fixes

See merge request hubzilla/core!1391
2018-11-12 21:49:07 +01:00
zotlabs
4a6b45cf04 enotify::format hook for superblock 2018-11-12 11:13:36 -08:00
Mario Vavti
7bd60adfbe fix css issues in bbcode conversion and focus-light schema 2018-11-12 09:35:12 +01:00
zotlabs
171ff54ea4 translate zot message packets to zot6 for delivery 2018-11-11 21:55:10 -08:00
zotlabs
da452decf6 more z6 debugging 2018-11-11 15:12:01 -08:00
Mario Vavti
c335719e8f use the correct javascript function for this case 2018-11-11 14:46:35 +01:00
Mario Vavti
d57cdf645e Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-11-11 14:01:25 +01:00
Mario
e47a96bf24 Merge branch 'dev' into 'dev'
Preserve photo modification date on edit

See merge request hubzilla/core!1389
2018-11-11 13:49:29 +01:00
Mario
daad607c7c Merge branch 'dev' into 'dev'
fix shared_header img expanding to 100% width when sharing a share

See merge request hubzilla/core!1387
2018-11-11 13:47:03 +01:00
Max Kostikov
29f1f9c872 Merge branch 'dev' into 'dev'
# Conflicts:
#   include/photo/photo_driver.php
2018-11-10 20:47:35 +01:00
Max Kostikov
a49cfa8142 Update photo_driver.php 2018-11-10 20:45:20 +01:00
Max Kostikov
b57d296adc Preserve photo modification date 2018-11-10 20:35:14 +01:00
Mario
01d8bd445e Merge branch 'dev' into 'dev'
Remove DNS check for database connection during installation...

See merge request hubzilla/core!1384
2018-11-10 15:02:27 +01:00
harukin
04e220cc4b Merge branch 'develop' into 'japanese'
ctrl+enter適用

See merge request harukin/core!13
2018-11-10 21:34:03 +09:00
Mario Vavti
750d6f4be9 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-11-10 12:22:09 +01:00
Max Kostikov
c6e14a696e Fixed wrong value assign on compare with 0 2018-11-10 11:56:34 +01:00
Max Kostikov
d34423fce9 Fixed wrong value assign on compare with 0 2018-11-10 11:53:49 +01:00
Mario
4999547f87 Merge branch 'dev' into 'dev'
Preserve received image modification date on caching

See merge request hubzilla/core!1386
2018-11-10 11:47:20 +01:00
Mario Vavti
fc5dc9717a fix shared_header img expanding to 100% width when sharing a share 2018-11-10 11:31:06 +01:00
Max Kostikov
d20759c141 Do not return default images from vCard 2018-11-10 11:11:23 +01:00
Max Kostikov
f7b00c62a4 Remove unnecessary Zulu timezone mention 2018-11-10 10:05:28 +01:00
Max Kostikov
32873ce70d Preserve received image modification date on caching 2018-11-09 22:20:41 +01:00
Max Kostikov
dc59561a95 Fixed timezone conversion 2018-11-09 22:17:11 +01:00
Mario
4bf3fdd898 Merge branch 'patch-1' into 'dev'
Return image modification date on remote fetch for caching

See merge request hubzilla/core!1383
2018-11-09 16:51:36 +01:00
harukin
d87eece1d2 コメント欄ctl+enter対応化 2018-11-09 22:22:36 +09:00
harukin
4fe4eacc00 ctl+enter試験実装 2018-11-09 22:11:12 +09:00
Andrew Manning
108a892a11 Remove DNS check for database connection during installation. Causes friction with Docker deployment. 2018-11-09 05:31:55 -05:00
Max Kostikov
2c4bd9a3fe Workaround for local resource path to photo from Diaspora 2018-11-09 10:03:58 +01:00
zotlabs
c80ac58eff add zot6 delivery method 2018-11-08 20:42:09 -08:00
zotlabs
d56e1f6285 begin native summary support 2018-11-08 19:49:57 -08:00
zotlabs
22b3ddab66 refresh packets 2018-11-08 19:24:02 -08:00
zotlabs
3fe2491b73 didn't need xchan_portable_id 2018-11-08 15:53:48 -08:00
zotlabs
4e6758e31d item db updates 2018-11-08 15:51:52 -08:00
Max Kostikov
098ec1abb4 remove image type double guess by checking HTTP headers 2018-11-08 22:43:17 +01:00
Max Kostikov
17cf824545 Return image modification date using HTTP 'Last-Modified' and '304 Not Modified' on remote fetch for caching 2018-11-08 18:00:18 +01:00
M. Dent
e35f5d3c93 Merge branch 'fix-photo' into 'dev'
Fix photo

See merge request hubzilla/core!1382
2018-11-08 13:09:05 +01:00
Mario
f4f98e5856 Merge branch 'patch-1' into 'fix-photo'
Correct "Content-Length:" calculation added

See merge request mario/core!1
2018-11-08 12:13:00 +01:00
Max Kostikov
dc0335d1d5 Correct "Content-Length:" calculation added 2018-11-08 11:53:27 +01:00
M. Dent
6013814cf4 Merge branch 'fix-photo' into 'dev'
$data only contains the link to the image if the image is in os storage. The…

See merge request hubzilla/core!1379
2018-11-08 11:25:36 +01:00
Mario Vavti
e0a0570cc4 $data only contains the link to the image if the image is in os storage. The size is calculatet wrong in this case and the download fails. rely on filesize from the db for content-length 2018-11-08 11:06:44 +01:00
Mario
61deb4fcfd Merge branch 'patch-1' into 'dev'
Disable image caching if personal or group permissions enabled

See merge request hubzilla/core!1377
2018-11-08 10:25:11 +01:00
Mario Vavti
7c4c60425b Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-11-08 10:16:17 +01:00
Mario Vavti
302f49baf2 provide a function to log to syslog 2018-11-08 10:12:33 +01:00
Max Kostikov
3f6cd5a663 Disable image caching if personal or group permissions enabled 2018-11-07 19:52:38 +01:00
M. Dent
1b232041c9 Merge branch 'patch-1' into 'dev'
Added `If-Modified-Since` header support for better image caching and fixed absent 404 for photos

See merge request hubzilla/core!1375
2018-11-07 18:22:55 +01:00
Max Kostikov
eaf117cce1 Added If-Modified-Since header support for better image caching and fixed absent 404 for photos 2018-11-07 18:22:55 +01:00
harukin
88d49c7c3e 2018-11-07 22:13:29 +09:00
harukin
db8bd30dcd 2018-11-07 20:46:58 +09:00
harukin
9e3ec63637 2018-11-07 20:43:31 +09:00
zotlabs
d2aa2c080f Merge branch 'master' into zvi 2018-11-07 01:43:43 -08:00
zotlabs
7148311953 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-11-07 01:43:26 -08:00
Mario Vavti
c23dfa0d23 Merge remote-tracking branch 'mike/master' into dev 2018-11-07 10:15:40 +01:00
Mario Vavti
b08de33b0b fix es-es hstrings.php 2018-11-07 10:02:24 +01:00
Mario
fc1d8c0138 Merge branch 'revert-40d9277e' into 'dev'
Revert "remove 'Expiries' HTTP header"

See merge request hubzilla/core!1372
2018-11-07 09:36:30 +01:00
Max Kostikov
a5a77d1e7c Revert "remove 'Expiries' HTTP header"
This reverts commit 40d9277ef3
2018-11-07 08:41:32 +01:00
zotlabs
f57fcefe6b signature issue 2018-11-06 21:45:43 -08:00
zotlabs
a5483a03c9 fix signatures 2018-11-06 21:44:57 -08:00
zotlabs
bb8b3b9291 this is brutal 2018-11-06 20:44:40 -08:00
M. Dent
6c6dca05e7 Merge branch 'patch-25' into 'dev'
'Last-Modified' and 'Content-Length' HTTP headers added for better image caching

See merge request hubzilla/core!1369
2018-11-06 19:25:38 +01:00
M. Dent
97b4a31b16 Merge branch 'patch-26' into 'dev'
New plural functions for JavaScript compatibility

See merge request hubzilla/core!1370
2018-11-06 18:26:58 +01:00
Max Kostikov
40d9277ef3 remove 'Expiries' HTTP header 2018-11-06 16:22:34 +01:00
Max Kostikov
009044b71e Update hmessages.po 2018-11-06 14:58:06 +01:00
Max Kostikov
4760a3f3e8 Update hmessages.po 2018-11-06 14:57:12 +01:00
Max Kostikov
3302012c02 New pt-br plural function for JavaScript compatibility 2018-11-06 14:55:58 +01:00
Max Kostikov
812c5a314f New nl plural function for JavaScript compatibility 2018-11-06 14:55:21 +01:00
Max Kostikov
c2da8c3fd4 New nb-no plural function for JavaScript compatibility 2018-11-06 14:54:49 +01:00
Max Kostikov
aa78640491 New it plural function for JavaScript compatibility 2018-11-06 14:54:06 +01:00
Max Kostikov
7c49688e1b New he plural function for JavaScript compatibility 2018-11-06 14:53:29 +01:00
Max Kostikov
dbe10c7965 New fi plural function for JavaScript compatibility 2018-11-06 14:52:58 +01:00
Max Kostikov
f1f5107282 New es plural function for JavaScript compatibility 2018-11-06 14:52:23 +01:00
Max Kostikov
cc06250bf8 New fr plural function for JavaScript compatibility 2018-11-06 14:50:37 +01:00
Max Kostikov
af1ea7f495 New plural function for JavaScript compatibility 2018-11-06 14:48:58 +01:00
Max Kostikov
3491c488d3 Update Photo.php 2018-11-06 13:51:01 +01:00
Max Kostikov
1828b6daab Update Photo.php 2018-11-06 13:41:41 +01:00
Max Kostikov
c26f45b7c2 Update Photo.php 2018-11-06 13:39:36 +01:00
Max Kostikov
e116b90116 'Last-Modified' and 'Content-Length' HTTP headers added for better image caching 2018-11-06 13:37:50 +01:00
harukin
fff14fca50 2018-11-06 18:41:31 +09:00
harukin
1c0290df2d 2018-11-06 18:13:19 +09:00
harukin
c72b7a8830 2018-11-06 18:10:38 +09:00
harukin
a31ea72ced 2018-11-06 18:09:03 +09:00
harukin
487e415de5 2018-11-06 17:55:29 +09:00
harukin
825709870d 2018-11-06 17:42:22 +09:00
harukin
970ef5e51c 2018-11-06 17:12:20 +09:00
harukin
04aa58d920 2018-11-06 17:00:59 +09:00
zotlabs
e7f1d350c9 more zot6 work 2018-11-05 21:29:26 -08:00
harukin
cb4a1d51c1 2018-11-06 14:24:46 +09:00
harukin
352d110622 2018-11-06 12:53:15 +09:00
zotlabs
3b9aedec5f populate new fields 2018-11-05 19:52:30 -08:00
zotlabs
fabcf841c9 z6 work 2018-11-05 19:34:10 -08:00
zotlabs
43a5f928ba these changes needed to ensure cloning/syncing works in the future to non-zot6 enabled servers after the (coming) zot6 schema updates. This should probably be on a fast track to master branch 2018-11-05 16:57:32 -08:00
M. Dent
873fa16517 Merge branch 'patch-23' into 'dev'
Use modern get_config() syntax

See merge request hubzilla/core!1368
2018-11-06 01:27:06 +01:00
Max Kostikov
f7ce374a28 Update Photo.php 2018-11-05 21:26:10 +01:00
Max Kostikov
2dd124d09e Use modern get_config() syntax 2018-11-05 21:25:08 +01:00
harukin
bd6c1b06c1 2018-11-05 22:41:39 +09:00
harukin
116915890d Merge branch 'master' into 'japanese'
Ver.3.8.3 release merge

See merge request harukin/core!11
2018-11-05 21:41:30 +09:00
harukin
0e9347efa5 Merge branch 'master' into 'develop'
Ver.3.8.3 release merge

See merge request harukin/core!10
2018-11-05 21:39:29 +09:00
harukin
d3bd55e628 commit 2018-11-05 21:33:01 +09:00
harukin
6901a37cd2 merge master 2018-11-05 21:31:21 +09:00
harukin
c52a5a2974 2018-11-05 21:25:43 +09:00
Mario
d6523c67a6 Merge branch 'patch-20181028a' into 'dev'
Add timestamp to pconfig

See merge request hubzilla/core!1355
2018-11-05 10:40:29 +01:00
Mario Vavti
a9fd3608ea version 3.8.3 2018-11-05 10:26:59 +01:00
Mario Vavti
b25cace3ea update changelog 2018-11-05 10:25:57 +01:00
Mario Vavti
4320f047db update changelog and bump version 2018-11-05 10:22:56 +01:00
Mario Vavti
b4b3e7b9a4 update linkinfo from dev 2018-11-05 09:59:25 +01:00
Mario Vavti
b6938da552 Merge remote-tracking branch 'mike/master' into dev 2018-11-05 09:56:52 +01:00
Mario Vavti
4830a1559d Merge branch 'dev' 2018-11-05 09:55:23 +01:00
Mario
92ea3ef720 Merge branch 'dev' into 'dev'
more fixes for forum notifications handling: do not count likes/dislikes if…

See merge request hubzilla/core!1367
2018-11-05 09:42:07 +01:00
zotlabs
73d2719330 debug zot6 discovery 2018-11-04 19:35:55 -08:00
zotlabs
af82aab3a6 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-11-04 13:58:02 -08:00
zotlabs
51b4b6216f z6 updates to owa, linkinfo improved image detection 2018-11-04 13:56:32 -08:00
harukin
3eb6748578 2018-11-04 16:18:36 +09:00
Mario Vavti
de32b0bba5 more fixes for forum notifications handling: do not count likes/dislikes if likes notifications are disabled and also do not show like activities when clicking a forum notification and like notifications are disabled 2018-11-03 20:53:23 +01:00
Mario
de0fab78ed Merge branch 'dev' into 'dev'
Fixed typo at view/es-es/hstrings.php

See merge request hubzilla/core!1366
2018-11-03 20:11:14 +01:00
Manuel Jiménez Friaza
71425c3b23 Fixed typo at view/es-es/hstrings.php 2018-11-03 19:19:01 +01:00
Mario
75f7b1e261 Merge branch 'patch-3' into 'dev'
Update hmessages.po

See merge request hubzilla/core!1365
2018-11-03 13:22:34 +01:00
Mario
9af35d998f Merge branch 'patch-2' into 'dev'
Update hstrings.php

See merge request hubzilla/core!1364
2018-11-03 13:21:53 +01:00
Mario
34e3f3907a Merge branch 'patch-22' into 'dev'
More precise content encoding detection on conversion

See merge request hubzilla/core!1363
2018-11-03 13:21:22 +01:00
Max Kostikov
46b0510b99 Update Linkinfo.php 2018-11-03 10:41:31 +01:00
Max Kostikov
a7624ea48b Update Linkinfo.php 2018-11-03 00:10:05 +01:00
Max Kostikov
2f3b4a7aaf Update Linkinfo.php 2018-11-03 00:01:15 +01:00
Max Kostikov
a9bbe0b128 Update Linkinfo.php 2018-11-02 22:40:48 +01:00
Max Kostikov
0d9d0a4b70 more precise codepage detection 2018-11-02 22:37:53 +01:00
gia vec
8235d0bd50 Update hmessages.po 2018-11-02 19:41:07 +01:00
gia vec
c2e01bedc5 Update hstrings.php 2018-11-02 19:27:11 +01:00
Max Kostikov
32c4614a32 Workaround for incorrect ISO-8859-5 encoded content conversion 2018-11-02 10:52:52 +01:00
Mario
24ae6c91ea Merge branch 'patch-21' into 'dev'
Fix wrong image resize for some external images

See merge request hubzilla/core!1362
2018-11-02 10:20:18 +01:00
M.Dent
346a4f5933 strpos needs to test with ===0 not ==0 2018-11-01 20:23:22 -04:00
Max Kostikov
c6551336c8 Fix wrong image resize for some external images 2018-11-01 21:50:36 +01:00
harukin
a240e1de75 Merge branch 'develop' into 'japanese'
5000兆円欲しい!!

See merge request harukin/core!9
2018-11-01 23:03:58 +09:00
harukin
a776210aa7 Merge branch 'develop' into 'master'
5000兆円欲しい!!

See merge request harukin/core!8
2018-11-01 23:03:07 +09:00
harukin
88a6a2d1de 2018-11-01 23:01:27 +09:00
harukin
e022a7edee 2018-11-01 22:59:08 +09:00
harukin
5d912efb32 2018-11-01 22:58:08 +09:00
harukin
5243af975c 2018-11-01 22:56:50 +09:00
harukin
43486e7137 2018-11-01 22:55:18 +09:00
harukin
b2430495f5 修正 2018-11-01 22:53:44 +09:00
harukin
1b1a6e357a 修正 2018-11-01 22:50:16 +09:00
harukin
626b5f36ad 修正 2018-11-01 22:46:40 +09:00
harukin
746ceebcdc 5000兆円欲しい!! 2018-11-01 22:39:28 +09:00
harukin
2a40051475 Merge branch 'develop' into 'japanese'
archkinux絵文字の追加

See merge request harukin/core!7
2018-11-01 22:06:04 +09:00
harukin
2406574041 Merge branch 'develop' into 'master'
archlinux絵文字の追加

See merge request harukin/core!6
2018-11-01 22:04:54 +09:00
harukin
23c40b9618 2018-11-01 21:53:18 +09:00
harukin
95e4dca38a 2018-11-01 21:41:46 +09:00
harukin
66e562af72 2018-11-01 14:21:12 +09:00
harukin
1f70331a12 2018-11-01 12:04:21 +09:00
harukin
38e3369566 2018-11-01 10:40:58 +09:00
harukin
7303cdbe08 2018-11-01 10:32:16 +09:00
harukin
4677e34ea6 2018-11-01 10:20:22 +09:00
harukin
a48dc3ddf6 2018-11-01 10:13:48 +09:00
harukin
c548969877 2018-11-01 09:55:26 +09:00
harukin
68150edbb9 2018-11-01 09:50:24 +09:00
harukin
8e347e1b2e 2018-11-01 09:47:43 +09:00
harukin
b26989f594 2018-11-01 09:08:25 +09:00
harukin
0a3259d77c 2018-11-01 09:07:30 +09:00
harukin
d95492c5d0 2018-11-01 09:03:09 +09:00
harukin
3555c7f0c5 2018-10-31 22:04:50 +09:00
harukin
272e2d5654 2018-10-31 21:31:56 +09:00
Mario Vavti
3dab0d365d css fix for reshared-content images and whitespace 2018-10-31 13:20:09 +01:00
harukin
3abd110d45 2018-10-31 21:19:37 +09:00
harukin
cebb406277 2018-10-31 20:58:18 +09:00
harukin
71e4f1c8a7 2018-10-31 20:01:59 +09:00
harukin
403e42b662 2018-10-31 19:20:29 +09:00
harukin
a5598c33f3 2018-10-31 17:54:29 +09:00
harukin
0c1cc32017 2018-10-31 17:52:29 +09:00
harukin
994fb6c043 2018-10-31 17:43:50 +09:00
Mario Vavti
0252bac4ba Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-31 09:39:10 +01:00
Mario
b468069875 Merge branch 'patch-20' into 'dev'
Beautiful embedding for Hubzilla links

See merge request hubzilla/core!1360
2018-10-31 09:36:09 +01:00
harukin
a1842491ad 2018-10-31 17:30:40 +09:00
harukin
241e449564 2018-10-31 16:31:28 +09:00
harukin
ad8848f96a 2018-10-31 16:23:56 +09:00
harukin
7f3c1a89c3 2018-10-31 16:20:09 +09:00
Mike Macgirvin
7e1f431eca yet another blueimp vulnerability. Move to composer. 2018-10-31 15:56:08 +11:00
zotlabs
70c55da1df Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-10-30 18:11:49 -07:00
M. Dent
f9ab7647dd Merge branch 'composer-updates' into 'dev'
update html_to_markdown, smarty and sabredav libs via composer

See merge request hubzilla/core!1361
2018-10-31 01:32:44 +01:00
zotlabs
623aa7ea48 remove primary/clone counts from admin summary. The last checkins should fix this count "eventually" but the information has little direct value and may require location information for a local channel to change before it is actually corrected. 2018-10-30 17:30:59 -07:00
M. Dent
046d264688 Merge branch 'forum-ping' into 'dev'
fix forum ping results - the term query requires xchan_name instead of…

See merge request hubzilla/core!1358
2018-10-31 01:25:41 +01:00
M. Dent
944e168120 Merge branch 'wikilist-widget' into 'dev'
allow wiki_list widget to be used in any page

See merge request hubzilla/core!1359
2018-10-31 01:24:32 +01:00
zotlabs
9594105e57 typo 2018-10-30 17:21:39 -07:00
zotlabs
675343f575 issue syncing the channel_primary setting which shows up as a wrong count on the admin summary page 2018-10-30 17:18:15 -07:00
Mario Vavti
fc6ff45c49 fix another markdown test 2018-10-30 22:51:52 +01:00
Mario Vavti
b4bac88c39 fix markdown tests 2018-10-30 22:37:41 +01:00
Mario Vavti
c622ba84b9 really fix html2markdown() - when using environment, we must set the defaults 2018-10-30 22:16:37 +01:00
Max Kostikov
339f95c647 Update oembed.php 2018-10-30 16:49:48 +01:00
Max Kostikov
ec67e0ab22 Beautiful embedding for Hubzilla links 2018-10-30 15:38:19 +01:00
Mario Vavti
0b371c8103 fix html2markdown() and re-enable previously failing tests 2018-10-30 13:55:08 +01:00
Mario Vavti
2192ea6fdf update html_to_markdown, smarty and sabredav libs via composer 2018-10-30 12:12:07 +01:00
M.Dent
0060f88c45 Add tracking of deleted pconfig variables 2018-10-29 23:04:13 -04:00
Mario Vavti
1eac4db491 fix forum ping results - the term query requires xchan_name instead of xchan_hash. also improve the query itself - item_permission_sql() is redundant here since we always deal with local_channel() and use count(id) instead of sum(item_unseen) to get the unseen count 2018-10-29 23:01:13 +01:00
Mario Vavti
0d2c3be367 allow wiki_list widget to be used in any page 2018-10-29 22:55:24 +01:00
Your Name
d12c6ccb72 2018-10-29 21:44:52 +09:00
Your Name
1eb63fd8b9 2018-10-29 21:41:43 +09:00
Your Name
2cf2171ac2 test 2018-10-29 21:25:16 +09:00
Mario Vavti
c8dd516d6c Merge branch 'dev' 2018-10-29 11:02:51 +01:00
Mario Vavti
0f19627407 changelog 2018-10-29 10:59:54 +01:00
Mario Vavti
3eb71fe7b5 merge Zotlabs/Access/PermissionLimits.php from dev 2018-10-29 10:21:10 +01:00
Mario Vavti
0035584d91 merge view/fr/hmessages.po from dev 2018-10-29 10:20:36 +01:00
Mario Vavti
8cbd2e3e9e merge view/ru/hstrings.php from dev 2018-10-29 10:19:55 +01:00
Mario Vavti
b0f5c7f36f merge view/ru/hmessages.po from dev 2018-10-29 10:19:31 +01:00
Mario Vavti
412eb0a90b merge view/it/hstrings.php from dev 2018-10-29 10:18:21 +01:00
Mario Vavti
f8e816629d merge view/it/hmessages.po from dev 2018-10-29 10:17:54 +01:00
Mario Vavti
3d0138569d merge view/es-es/hstrings.php from dev 2018-10-29 10:17:04 +01:00
Mario Vavti
7bb7d736a2 merge view/es-es/hmessages.po from dev 2018-10-29 10:16:29 +01:00
Mario Vavti
7910f39613 merge util/zotsh/zotsh.py from dev 2018-10-29 10:16:01 +01:00
Mario Vavti
bf6ef2a588 merge util/update_theme_repo from dev 2018-10-29 10:15:18 +01:00
Mario Vavti
a11d89daa3 merge util/update_autoloader from dev 2018-10-29 10:14:43 +01:00
Mario Vavti
b8a4a6b959 merge util/hmessages.po from dev 2018-10-29 10:10:03 +01:00
Mario Vavti
dd6045d9f8 merge install/schema_postgres.sql from dev 2018-10-29 10:08:37 +01:00
Mario Vavti
e1c3a19420 merge include/zot.php from dev 2018-10-29 10:08:12 +01:00
Mario Vavti
cc586685e6 merge include/nav.php from dev 2018-10-29 10:07:54 +01:00
Mario Vavti
31883f603c merge include/import.php from dev 2018-10-29 10:07:15 +01:00
Mario Vavti
f377c81c8a merge include/connections.php from dev 2018-10-29 10:06:44 +01:00
Mario Vavti
32384eaf07 merge Zotlabs/Widget/Wiki_pages.php from dev 2018-10-29 10:06:01 +01:00
Mario Vavti
7c2efa697c merge Zotlabs/Module/Photo.php from dev 2018-10-29 10:04:34 +01:00
Mario Vavti
e1df69dfcb Merge branch 'dev' 2018-10-29 07:43:40 +01:00
Your Name
6dd84fde33 すきまテスト 2018-10-29 14:12:56 +09:00
Your Name
60eaedc67f test 2018-10-29 14:11:09 +09:00
Your Name
ce908b31c1 再共有メッセージ修復 2018-10-29 14:05:57 +09:00
harukin
f687739cfe Merge branch 'develop' into 'master'
harukin絵文字の追加

See merge request harukin/core!4
2018-10-29 13:40:10 +09:00
harukin
56d1e3792a Merge branch 'develop' into 'japanese'
harukin絵文字追加

See merge request harukin/core!3
2018-10-29 13:39:02 +09:00
Your Name
ce8215ec6c 2018-10-29 13:34:25 +09:00
Your Name
db5b86dbac テストコミット 2018-10-29 11:46:37 +09:00
Your Name
ecab83264c harukinの表示サイズ変更 2018-10-29 11:26:30 +09:00
Your Name
81194b2caa 画像サイズ変更 2018-10-29 11:21:56 +09:00
Your Name
ce185c14d3 画像のディレクトリ情報情報修正 2018-10-29 11:19:31 +09:00
Your Name
ff1db9a055 harukin絵文字追加テスト 2018-10-29 10:45:45 +09:00
Your Name
f928f17bb5 日本語追加 2018-10-29 10:39:11 +09:00
M.Dent
1241e778f9 Fix to set update time in pconfig on update 2018-10-28 17:30:22 -04:00
M.Dent
3ab0ef1902 Add timestamp and associated logic to pconfig 2018-10-28 17:23:31 -04:00
M.Dent
c7c35b8b5a DB Updates to prep for pconfig timestamps. 2018-10-28 17:20:29 -04:00
M. Dent
3d9b1fd343 Merge branch 'dev' into 'dev'
fix issues with forum handling in mod network and ping. also some code cleanup.

See merge request hubzilla/core!1354
2018-10-28 03:22:22 +01:00
Mario Vavti
96bed3a623 fix issues with forum handling in mod network and ping. also some code cleanup. 2018-10-27 22:34:18 +02:00
Mario Vavti
e72b0edce2 Merge remote-tracking branch 'mike/master' into dev 2018-10-27 13:50:30 +02:00
zotlabs
ae4aeb4b1e delivery chain linkage messed up if original post was edited 2018-10-26 13:00:26 -07:00
M. Dent
302abc2a60 Merge branch 'dev' into 'dev'
notifications: fix unseen forum count

See merge request hubzilla/core!1351
2018-10-26 17:10:10 +02:00
Mario Vavti
2b3cbc638b notifications: fix unseen forum count 2018-10-26 09:53:56 +02:00
Mario
3de055bf65 Merge branch 'dev' into 'dev'
New strings in Spanish translation

See merge request hubzilla/core!1349

(cherry picked from commit df449e7bfe)

802a7ff3 New strings in Spanish translation
2018-10-26 08:16:54 +02:00
Mario
df449e7bfe Merge branch 'dev' into 'dev'
New strings in Spanish translation

See merge request hubzilla/core!1349
2018-10-26 08:16:16 +02:00
Mario
6326a50d20 Merge branch 'patch-20181025a' into 'dev'
Add entropy to queue worker - and fix requeuing of expired tasks

See merge request hubzilla/core!1350
2018-10-26 08:15:11 +02:00
M.Dent
aef212ada9 Add entropy to queue worker - and fix requeuing of expired tasks 2018-10-25 10:12:03 -04:00
Manuel Jiménez Friaza
802a7ff3a8 New strings in Spanish translation 2018-10-25 11:37:06 +02:00
M. Dent
9cedc864c2 Merge branch 'dev' into 'dev'
Editor contact autocomplete performance & refine stream filter and forum notification behaviour (mostly for performance)

See merge request hubzilla/core!1348
2018-10-25 03:38:05 +02:00
Mario Vavti
ee804cd6b1 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-24 23:08:22 +02:00
Mario Vavti
25c7e64ded fix get on {1} 2018-10-24 23:06:32 +02:00
Mario Vavti
5c4fbbebe1 refine stream filter and forum notification behaviour (mostly for performance). personal posts will be displayed in unthreaded mode and clicking a forum notification will show only the unseen items of the forum in unthreaded mode. group the filters in the widget - threaded at the top, unthreaded beneath. 2018-10-24 20:58:25 +02:00
Mario Vavti
615402ea83 wrong var 2018-10-24 20:34:15 +02:00
Mario
a0a72a9f6d Merge branch 'patch-19' into 'dev'
Convert non UTF-8 content on link embeding

See merge request hubzilla/core!1347
2018-10-24 20:26:32 +02:00
Mario Vavti
8b9acf750b autocomplete performance: this slightly changes the editor contact autocomplete behaviour. queries using *like* with a prepended % to the query string do not make use of indices. this is no big issue when we query abook but can get really slow when xchan table is involved. this commit changes the xchan table only queries to use the *str%* format. this means that the result set for channels we are not connected with will change in a way that xchan_name and xchan_addr will bematched only from the beginning of the name or address. this commit also changes textcomplete to only start the query after the 3rd character. the result set between 2 and 3 characters is mostly very different and only from 3 chars on there is a high possibility the channel we look for is already in the result. 2018-10-24 20:22:27 +02:00
Max Kostikov
24d68a7f09 Update Linkinfo.php 2018-10-24 10:28:18 +02:00
Max Kostikov
781eeff021 Update Linkinfo.php 2018-10-23 20:36:30 +02:00
Max Kostikov
3e6c2c6024 Update Linkinfo.php 2018-10-23 19:57:21 +02:00
Max Kostikov
f180558041 Convert non UTF-8 content on link embeding 2018-10-23 19:32:36 +02:00
zotlabs
506ea71302 for whatever reason there were two of these
(cherry picked from commit 7ed197f46b)
2018-10-23 13:23:18 +02:00
Mario Vavti
01e11e9043 Merge remote-tracking branch 'mike/master' into dev 2018-10-23 13:18:04 +02:00
zotlabs
7ed197f46b for whatever reason there were two of these 2018-10-22 17:12:36 -07:00
Mario Vavti
5c36eef039 textcomplete: return up to 100 items and look for for matches in the entire string (not just the beginning) when suggesting emojis 2018-10-22 15:36:02 +02:00
Mario Vavti
26e20f9999 add summary to bbcode autocomplete list 2018-10-22 14:04:09 +02:00
Mario Vavti
71195895ba update blueimp_upload to version 9.23 2018-10-22 09:45:20 +02:00
Mario
c7ebb4b009 version 3.8.1 2018-10-21 09:25:37 +02:00
Mario Vavti
c0cef8dd12 changelog for 3.8.1
(cherry picked from commit ea850e58d2)
2018-10-21 09:23:37 +02:00
Mario Vavti
ea850e58d2 changelog for 3.8.1 2018-10-21 09:22:42 +02:00
Mario Vavti
dcdd97a985 fix ellipsis for too long nav banner
(cherry picked from commit a61ce45a32)
2018-10-21 09:10:45 +02:00
Mario Vavti
a61ce45a32 fix ellipsis for too long nav banner 2018-10-21 09:10:02 +02:00
mike
1326c4e71e fix wrong value being used for menu_id
(cherry picked from commit fdb7c115a7)
2018-10-21 09:02:17 +02:00
Mario
ad5f3877f1 Merge branch 'edit-menu-contents-fix' into 'dev'
fix wrong value being used for menu_id

See merge request hubzilla/core!1345
2018-10-21 09:00:48 +02:00
zotlabs
9cbbc80f7a disable blueimp demo server
(cherry picked from commit 7c49f22702)
2018-10-21 08:49:43 +02:00
Mario Vavti
8a02e967d3 Merge remote-tracking branch 'mike/master' into dev 2018-10-21 08:42:37 +02:00
zotlabs
7c49f22702 disable blueimp demo server 2018-10-20 15:27:35 -07:00
mike
fdb7c115a7 fix wrong value being used for menu_id 2018-10-20 16:55:54 -04:00
Mario Vavti
fa9e9510e5 Merge branch '3.8RC' 2018-10-19 11:18:28 +02:00
Mario Vavti
06b3ad1071 version 3.8 2018-10-19 11:16:44 +02:00
Mario Vavti
d96a731e93 bump version 2018-10-19 11:14:20 +02:00
Mario Vavti
847ff77a81 optimize autoload
(cherry picked from commit 2583270774)
2018-10-19 11:13:33 +02:00
Mario Vavti
df746c7911 strings and bump apd versions to version 2
(cherry picked from commit 4aed866d69)
2018-10-19 11:12:33 +02:00
Mario Vavti
2583270774 optimize autoload 2018-10-19 11:12:07 +02:00
Mario Vavti
5393d674f9 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-19 11:07:40 +02:00
Mario Vavti
4aed866d69 strings and bump apd versions to version 2 2018-10-19 11:07:06 +02:00
Mario
d775a7ee21 Merge branch 'patch-18' into 'dev'
Russian translation for upgrade plugin added

See merge request hubzilla/core!1344

(cherry picked from commit c044ff3444)

ac2b6bcc Russian translation for upgrade plugin added
6e758423 Update hstrings.php
2018-10-19 10:56:55 +02:00
Mario
c044ff3444 Merge branch 'patch-18' into 'dev'
Russian translation for upgrade plugin added

See merge request hubzilla/core!1344
2018-10-19 10:56:46 +02:00
Max Kostikov
6e75842354 Update hstrings.php 2018-10-18 11:19:02 +02:00
Max Kostikov
ac2b6bcc33 Russian translation for upgrade plugin added 2018-10-18 11:18:14 +02:00
Mario
c440b758a3 Merge branch 'dev' into 'dev'
Fix template root redirection

See merge request hubzilla/core!1343

(cherry picked from commit e9471124c0)

442d1cb4 Fix template root redirection
2018-10-18 09:12:38 +02:00
Mario
e9471124c0 Merge branch 'dev' into 'dev'
Fix template root redirection

See merge request hubzilla/core!1343
2018-10-18 09:12:30 +02:00
M.Dent
442d1cb48f Fix template root redirection 2018-10-17 22:21:31 -04:00
Mario Vavti
5030c55b1e complete changelog
(cherry picked from commit fa91e2a60c)
2018-10-17 12:51:36 +02:00
Mario Vavti
fa91e2a60c complete changelog 2018-10-17 12:25:46 +02:00
Mario
32de123db0 fix sql error 2018-10-17 11:05:28 +02:00
Mario Vavti
90e9c37d35 improve posting to mod pconfig via ajax
(cherry picked from commit ae875734e2)
2018-10-16 21:20:47 +02:00
Mario
84d4036117 Merge branch 'fix-master-rate-limiter' into 'dev'
Fix master rate limiter

See merge request hubzilla/core!1341

(cherry picked from commit e38e85572e)

49eff772 Fix worker age calculation
be30dc9e Move logger to debug/all
b6a9be88 Delete duplicate queue items
2018-10-16 21:19:28 +02:00
Mario
e38e85572e Merge branch 'fix-master-rate-limiter' into 'dev'
Fix master rate limiter

See merge request hubzilla/core!1341
2018-10-16 21:19:16 +02:00
M. Dent
f50d6208c8 Fix master rate limiter 2018-10-16 21:19:16 +02:00
M. Dent
34d189c02e Merge branch 'dev' into 'dev'
improve posting to mod pconfig via ajax

See merge request hubzilla/core!1340
2018-10-16 21:08:19 +02:00
Mario
ba9b49bc83 Merge branch 'patch-17' into 'dev'
Add Russian translations to Newmember widget

See merge request hubzilla/core!1339

(cherry picked from commit ed08eb07c6)

04edb741 Add Russian translations to Newmember widget
d2d6f8c9 Update hstrings.php
2018-10-16 14:08:02 +02:00
Mario
ed08eb07c6 Merge branch 'patch-17' into 'dev'
Add Russian translations to Newmember widget

See merge request hubzilla/core!1339
2018-10-16 14:07:52 +02:00
Mario Vavti
ae875734e2 improve posting to mod pconfig via ajax 2018-10-16 13:46:03 +02:00
Max Kostikov
d2d6f8c970 Update hstrings.php 2018-10-15 21:28:54 +02:00
Max Kostikov
04edb741a6 Add Russian translations to Newmember widget 2018-10-15 21:28:01 +02:00
Mario Vavti
34b4b65865 add missing features section to newmember widget
(cherry picked from commit 25a74f3664)
2018-10-15 20:33:28 +02:00
Mario Vavti
25a74f3664 add missing features section to newmember widget 2018-10-15 20:18:25 +02:00
Mario Vavti
fa5537bfc0 allow to undelete deleted base apps
(cherry picked from commit 3588c4ab99)
2018-10-15 15:45:51 +02:00
Mario Vavti
3588c4ab99 allow to undelete deleted base apps 2018-10-15 15:43:55 +02:00
Mario Vavti
5a9b1f769d some changelog work
(cherry picked from commit 782ec06f2b)
2018-10-15 14:24:54 +02:00
Mario Vavti
782ec06f2b some changelog work 2018-10-15 14:23:58 +02:00
Mario Vavti
5b43db7171 fix wiki issue with wiki page links when using bbcode
(cherry picked from commit df62037c4a)
2018-10-15 13:14:30 +02:00
Mario Vavti
df62037c4a fix wiki issue with wiki page links when using bbcode 2018-10-15 13:13:04 +02:00
Mario Vavti
ad1cc82b38 update readme for master and dev branch buildstatus
(cherry picked from commit 05b8c53ff7)
2018-10-15 10:38:57 +02:00
Mario Vavti
05b8c53ff7 update readme for master and dev branch buildstatus 2018-10-15 10:37:14 +02:00
Mario
7268426248 Merge branch 'dev' into 'dev'
Bring back some basic automated testing for PHP7.1 and mysql via gitlab-ci.

See merge request hubzilla/core!1332

(cherry picked from commit c39de966df)

b77acb3e add gitlab-ci.yml and phpunit.xml
22275f30 fix dba_pdoTest
0db047e5 fix phpunit error with html2markdown test and temporary disable failing markdown…
2018-10-15 10:00:06 +02:00
Mario
c39de966df Merge branch 'dev' into 'dev'
Bring back some basic automated testing for PHP7.1 and mysql via gitlab-ci.

See merge request hubzilla/core!1332
2018-10-15 09:59:52 +02:00
Mario
eb133ef9a7 Merge branch 'patch-16' into 'dev'
JS plurals displaying code cleanup

See merge request hubzilla/core!1338

(cherry picked from commit 721461dd3e)

b7280a44 JS plurals displaying code cleanup
ab0e2f52 Update language.php
f9c3b807 Update main.js
ce52c27a Update main.js
2018-10-15 09:59:25 +02:00
Mario
721461dd3e Merge branch 'patch-16' into 'dev'
JS plurals displaying code cleanup

See merge request hubzilla/core!1338
2018-10-15 09:59:17 +02:00
Mario
337e25ad43 Merge branch 'patch-15' into 'dev'
Add JS function code for plurals translation in Russian

See merge request hubzilla/core!1337

(cherry picked from commit 7042528d26)

ee4a2629 Add JS function code for plurals translation
8af91b02 Update hstrings.php
2018-10-15 09:58:24 +02:00
Mario
7042528d26 Merge branch 'patch-15' into 'dev'
Add JS function code for plurals translation in Russian

See merge request hubzilla/core!1337
2018-10-15 09:58:09 +02:00
Max Kostikov
ce52c27a8a Update main.js 2018-10-14 22:45:11 +02:00
Max Kostikov
f9c3b80780 Update main.js 2018-10-14 22:28:47 +02:00
Max Kostikov
ab0e2f5236 Update language.php 2018-10-14 22:28:14 +02:00
Max Kostikov
b7280a442e JS plurals displaying code cleanup 2018-10-14 22:26:56 +02:00
Max Kostikov
8af91b0209 Update hstrings.php 2018-10-14 22:24:36 +02:00
Max Kostikov
ee4a262953 Add JS function code for plurals translation 2018-10-14 15:21:00 +02:00
Mario Vavti
d584293cde min version bump 2018-10-13 20:28:24 +02:00
Mario
c60c9b323b another min version change to mitigate caching issues. we are now at 3.8RC2.2 2018-10-13 20:22:04 +02:00
Mario
eaee27c9e4 Merge branch 'patch-14' into 'dev'
Add date/time plurals translation in JavaScript

See merge request hubzilla/core!1336

(cherry picked from commit a2575059e2)

5c0d3187 Add date/time plurals translation in JavaScript
729d0d53 Update language.php
f68674b3 Update js_strings.tpl
3ac4337a Update main.js
e96e3dc6 Update po2php.php
54bdf59d Update js_strings.php
2018-10-13 20:17:14 +02:00
Mario
a2575059e2 Merge branch 'patch-14' into 'dev'
Add date/time plurals translation in JavaScript

See merge request hubzilla/core!1336
2018-10-13 20:16:56 +02:00
Max Kostikov
54bdf59dde Update js_strings.php 2018-10-13 19:56:07 +02:00
Max Kostikov
e96e3dc6e6 Update po2php.php 2018-10-13 19:54:13 +02:00
Max Kostikov
3ac4337aec Update main.js 2018-10-13 19:52:59 +02:00
Max Kostikov
f68674b35a Update js_strings.tpl 2018-10-13 19:51:33 +02:00
Max Kostikov
729d0d5368 Update language.php 2018-10-13 19:50:09 +02:00
Max Kostikov
5c0d31873a Add date/time plurals translation in JavaScript 2018-10-13 19:48:45 +02:00
Mario
5310f4e310 bump version to 3.8RC2.1 due to javascript changes 2018-10-13 17:32:08 +02:00
Mario Vavti
2c961328f1 Merge branch 'dev' into 3.8RC 2018-10-13 17:21:12 +02:00
Mario Vavti
c36773674e Revert "Merge branch 'patch-11' into 'dev'"
This reverts commit e518445853, reversing
changes made to 8ce240b95c.
2018-10-13 17:18:42 +02:00
Max Kostikov
54c615dbc2 Update hmessages.po
(cherry picked from commit 451ee5a593)
2018-10-13 14:55:25 +02:00
Max Kostikov
483ef09890 Update hstrings.php
(cherry picked from commit ba3811a284)
2018-10-13 14:54:57 +02:00
Max Kostikov
81a741e760 Update hstrings.php
(cherry picked from commit e2241b9365)
2018-10-13 14:54:29 +02:00
Max Kostikov
278f2a6cac New russian plurals for JavaScript
(cherry picked from commit fe2bb84403)
2018-10-13 14:54:05 +02:00
Mario
cf277261dc Merge branch 'patch-12' into 'dev'
New russian plurals for JavaScript

See merge request hubzilla/core!1333
2018-10-13 14:51:59 +02:00
Max Kostikov
451ee5a593 Update hmessages.po 2018-10-13 14:22:58 +02:00
Max Kostikov
ba3811a284 Update hstrings.php 2018-10-13 14:22:13 +02:00
Max Kostikov
e2241b9365 Update hstrings.php 2018-10-13 14:20:48 +02:00
Max Kostikov
fe2bb84403 New russian plurals for JavaScript 2018-10-13 14:20:10 +02:00
Mario Vavti
6f1067a889 version 3.8RC2 2018-10-13 14:12:09 +02:00
Mario Vavti
f0cdbd0f52 Merge branch 'dev' into 3.8RC 2018-10-13 14:11:08 +02:00
Mario Vavti
9632cafa95 bump version 2018-10-13 14:05:44 +02:00
ZotSocial Admin
321b2b9b49 Fix order of assignment and get template file before return
(cherry picked from commit 8ebcc4439b)
2018-10-13 14:01:43 +02:00
Mario
fb3dd5eee6 Merge branch 'dev' into 'dev'
Fix order of assignment and get template file before return

See merge request hubzilla/core!1329
2018-10-13 14:01:01 +02:00
Mario
e518445853 Merge branch 'patch-11' into 'dev'
Add date/time plurals translation in JavaScript

See merge request hubzilla/core!1331
2018-10-13 14:00:12 +02:00
Mario
8ce240b95c Merge branch 'patch-10' into 'dev'
Missed strings added to Russian translation

See merge request hubzilla/core!1328
2018-10-13 13:57:48 +02:00
git-marijus
0db047e572 fix phpunit error with html2markdown test and temporary disable failing markdown test in connection with **bold** and _italic_ (it is not clear why they fail and the code appears to work as expected) 2018-10-13 13:39:22 +02:00
git-marijus
22275f3077 fix dba_pdoTest 2018-10-13 13:26:59 +02:00
git-marijus
b77acb3e53 add gitlab-ci.yml and phpunit.xml 2018-10-13 13:19:17 +02:00
Max Kostikov
6ae9ef571e Update language.php 2018-10-13 02:14:19 +02:00
Max Kostikov
8e5189464e Update language.php 2018-10-13 01:36:24 +02:00
Max Kostikov
0de713ff36 Update language.php 2018-10-13 01:08:06 +02:00
Max Kostikov
137bee9d27 Update language.php 2018-10-13 00:40:06 +02:00
Max Kostikov
3641ab8c7d Update language.php 2018-10-13 00:28:12 +02:00
Max Kostikov
16b6b76507 Update language.php 2018-10-13 00:25:57 +02:00
Max Kostikov
5cd9540d5f Update language.php 2018-10-13 00:24:04 +02:00
Max Kostikov
ae7873260e Update language.php 2018-10-13 00:20:23 +02:00
Max Kostikov
3dfe604ba0 Update main.js 2018-10-13 00:15:48 +02:00
Max Kostikov
3e19c4ddae Update language.php 2018-10-13 00:12:17 +02:00
Max Kostikov
de59300aaf Update js_strings.tpl 2018-10-12 23:51:01 +02:00
Max Kostikov
8cb05a91ab Update language.php 2018-10-12 23:45:52 +02:00
Max Kostikov
5f2c3f607e Add plurals translation at browser side (JS) 2018-10-12 23:43:38 +02:00
ZotSocial Admin
8ebcc4439b Fix order of assignment and get template file before return 2018-10-12 15:20:57 -04:00
Max Kostikov
b65ee01aef Update hmessages.po 2018-10-12 16:39:03 +02:00
Max Kostikov
2b311bd860 Update hstrings.php 2018-10-12 16:38:58 +02:00
Max Kostikov
a841b75b98 Update hstrings.php 2018-10-12 11:50:21 +02:00
Max Kostikov
9b3b7dc098 Update hmessages.po 2018-10-12 11:49:48 +02:00
zotlabs
f783454774 verify some edge case http signatures
(cherry picked from commit c6bfd5e7be)
2018-10-12 10:56:28 +02:00
Mario Vavti
81d9258e80 Merge remote-tracking branch 'mike/master' into dev 2018-10-12 09:42:57 +02:00
zotlabs
c6bfd5e7be verify some edge case http signatures 2018-10-11 21:28:47 -07:00
Max Kostikov
3c5cfd465b Update hstrings.php 2018-10-11 23:39:58 +02:00
Max Kostikov
f61f9bdc5f Missed strings added to Russian translation 2018-10-11 23:39:13 +02:00
Manuel Jiménez Friaza
2ab6e0843d Typos in Spanish translation
(cherry picked from commit c54ba1fb86)
2018-10-11 16:06:45 +02:00
Mario
d21bf41b6c Merge branch 'dev' into 'dev'
Typos  in Spanish translation

See merge request hubzilla/core!1327
2018-10-11 16:06:25 +02:00
Manuel Jiménez Friaza
c54ba1fb86 Typos in Spanish translation 2018-10-11 12:23:00 +02:00
M.Dent
4d86a199f0 Add wiki_preprocess hook and documentation
(cherry picked from commit bad4ea6e65)
2018-10-11 11:42:29 +02:00
Mario
4756826054 Merge branch 'dev' into 'dev'
Add wiki_preprocess hook and documentation

See merge request hubzilla/core!1326
2018-10-11 11:42:00 +02:00
Mario
ea309aa19e Merge branch 'patch-9' into 'dev'
Formatting fix in russian translation

See merge request hubzilla/core!1325
2018-10-11 11:40:11 +02:00
M.Dent
bad4ea6e65 Add wiki_preprocess hook and documentation 2018-10-10 22:46:00 -04:00
Mario Vavti
cf4288767a fix issue in zot finger
(cherry picked from commit 802ccdff4a)
2018-10-10 23:08:58 +02:00
Mario Vavti
802ccdff4a fix issue in zot finger 2018-10-10 23:00:59 +02:00
Mario Vavti
ba50de15ea revert gitlab-ci until we have a working configuration 2018-10-10 20:15:35 +02:00
Max Kostikov
73e30e8085 Update hstrings.php 2018-10-10 17:45:03 +02:00
Max Kostikov
a53912cc19 Formatting fix in russian translation 2018-10-10 17:43:41 +02:00
Mario Vavti
f105f70ded missing install 2018-10-10 15:47:55 +02:00
Mario Vavti
f0cd084738 one last try for now 2018-10-10 15:45:54 +02:00
Mario Vavti
ae5158b676 sigh... 2018-10-10 15:36:16 +02:00
Mario Vavti
bfd45a0017 lets try this 2018-10-10 15:27:43 +02:00
Mario Vavti
78be0c66da add some dependencies for gd 2018-10-10 15:21:54 +02:00
Mario Vavti
562cde37f4 probably that is the way to do it 2018-10-10 15:15:09 +02:00
Mario Vavti
263dea0e36 wrong package name 2018-10-10 15:06:19 +02:00
Mario Vavti
de743e35d0 add php-gd and use php7 image 2018-10-10 15:01:42 +02:00
Mario Vavti
09a46d0c74 gitlab-ci example file 2018-10-10 14:54:13 +02:00
Mario Vavti
ca5a1d0853 fix minor issue in dark and light schemas
(cherry picked from commit 97fcc495f2)
2018-10-10 14:03:12 +02:00
Mario Vavti
97fcc495f2 fix minor issue in dark and light schemas 2018-10-10 14:01:03 +02:00
zotlabs
4e69467b14 SECURITY: signature issue
(cherry picked from commit c6f3298f78)
2018-10-10 13:34:54 +02:00
Mario Vavti
d2e366a46f Merge remote-tracking branch 'mike/master' into dev 2018-10-10 13:33:15 +02:00
Mario Vavti
94905a71ac fix even more wiki issues
(cherry picked from commit c06b37b798)
2018-10-10 11:07:00 +02:00
Mario Vavti
c7644ad29d fix some more wiki issues
(cherry picked from commit d29caa099a)
2018-10-10 11:06:39 +02:00
M.Dent
0daa462207 Fix escaping quote for wiki_delete_page
(cherry picked from commit 1ccca9863c)
2018-10-10 11:06:07 +02:00
M.Dent
d8f79f48e9 Rework Wiki encoding scheme.
(cherry picked from commit 709665846e)
2018-10-10 11:05:34 +02:00
M.Dent
bf878dc446 Implement custom escaping
(cherry picked from commit 93a310582f)
2018-10-10 11:04:58 +02:00
Mario Vavti
c06b37b798 fix even more wiki issues 2018-10-10 11:01:13 +02:00
Mario Vavti
30e3580856 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-10 10:39:42 +02:00
Mario Vavti
d29caa099a fix some more wiki issues 2018-10-10 10:39:28 +02:00
Manuel Jiménez Friaza
d1270aab4d Fixed some errors in Spanish translation
(cherry picked from commit a7b03c1cea)
2018-10-10 09:23:32 +02:00
Mario
cd55298616 Merge branch 'dev' into 'dev'
Fixed some errors in Spanish translation

See merge request hubzilla/core!1323
2018-10-10 09:22:32 +02:00
zotlabs
c6f3298f78 SECURITY: signature issue 2018-10-09 22:37:53 -07:00
M. Dent
350db4ed9f Merge branch 'fix-wiki-escaping' into 'dev'
Fix escaping quote for wiki_delete_page

See merge request hubzilla/core!1324
2018-10-10 03:04:31 +02:00
M.Dent
1ccca9863c Fix escaping quote for wiki_delete_page 2018-10-09 21:01:05 -04:00
Manuel Jiménez Friaza
a7b03c1cea Fixed some errors in Spanish translation 2018-10-09 11:48:08 +02:00
zotlabs
2cb52f8875 Merge branch 'dev' 2018-10-08 20:58:16 -07:00
zotlabs
2c797807cd whitespace 2018-10-08 20:56:20 -07:00
Mario
37b94bf5fa Merge branch 'fix-wiki-escaping' into 'dev'
Fix wiki escaping (Regression tests needed)

See merge request hubzilla/core!1321
2018-10-08 21:20:17 +02:00
Manuel Jiménez Friaza
cbbe4b33a3 Update Spanish translation
(cherry picked from commit e877a001ab)
2018-10-08 21:10:04 +02:00
Mario
a00a849952 Merge branch 'dev' into 'dev'
Update Spanish translation

See merge request hubzilla/core!1322
2018-10-08 21:08:39 +02:00
Manuel Jiménez Friaza
e877a001ab Update Spanish translation 2018-10-08 19:57:11 +02:00
M.Dent
709665846e Rework Wiki encoding scheme. 2018-10-08 13:35:18 -04:00
M.Dent
93a310582f Implement custom escaping 2018-10-08 13:35:18 -04:00
Mario Vavti
9f4219773e typo
(cherry picked from commit f0b7a7e5d3)
2018-10-08 11:39:25 +02:00
Mario Vavti
f0b7a7e5d3 typo 2018-10-08 11:38:45 +02:00
Mario Vavti
97502f4c04 the root cause for doubled entries is fixed now
(cherry picked from commit e0568f33e8)
2018-10-08 11:27:06 +02:00
Mario Vavti
737f660011 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-08 11:26:14 +02:00
Mario Vavti
e0568f33e8 the root cause for doubled entries is fixed now 2018-10-08 11:25:49 +02:00
Max Kostikov
2ba95758eb Prevent links damage on foreign channel repost for cloned
(cherry picked from commit d9efb037e3)
2018-10-08 11:20:34 +02:00
Mario
fc3d0233af Merge branch 'patch-8' into 'dev'
New russian translation

See merge request hubzilla/core!1319
2018-10-08 11:19:14 +02:00
Mario
13c08f9660 Merge branch 'patch-2' into 'dev'
Prevent links damage on foreign channel repost for cloned

See merge request hubzilla/core!1307
2018-10-08 11:18:28 +02:00
zotlabs
82528e2f38 hubzilla core issue #1278 - page update always reloads if noscript content is enabled
(cherry picked from commit 69584f541d)
2018-10-08 11:14:37 +02:00
M.Dent
90a983a7e5 Fix too many arguments
(cherry picked from commit 60d5443f00)
2018-10-08 11:12:28 +02:00
M. Dent
58a9cde61d Fix (potential) runaway cron
(cherry picked from commit 108855aca2)
2018-10-08 11:12:09 +02:00
Mario Vavti
a00aae702d Merge remote-tracking branch 'mike/master' into dev 2018-10-08 11:05:53 +02:00
zotlabs
69584f541d hubzilla core issue #1278 - page update always reloads if noscript content is enabled 2018-10-07 22:12:49 -07:00
M. Dent
855f4b869a Merge branch 'fix-runaway-cron' into 'dev'
Fix too many arguments in ClearQueue() queries

See merge request hubzilla/core!1320
2018-10-08 01:30:20 +02:00
M.Dent
60d5443f00 Fix too many arguments 2018-10-07 19:18:35 -04:00
Max Kostikov
527b0a7065 Update hstrings.php 2018-10-08 00:31:32 +02:00
Max Kostikov
22a7c21886 New russian translation 2018-10-08 00:30:35 +02:00
M. Dent
484d240e7e Merge branch 'fix-runaway-cron' into 'dev'
Fix (potential) runaway cron

See merge request hubzilla/core!1318
2018-10-07 19:43:03 +02:00
M. Dent
108855aca2 Fix (potential) runaway cron 2018-10-07 19:43:03 +02:00
M.Dent
8ca321df7c Add missing else clause
(cherry picked from commit 259db3778c)
2018-10-07 08:43:58 +02:00
zotlabs
ed97800c80 use hubloc_store_lowlevel to ensure all hubloc columns are initialised
(cherry picked from commit 52be5c1660)
2018-10-07 08:43:28 +02:00
zotlabs
78c6f40093 minor app cleanup
(cherry picked from commit 835e222af0)
2018-10-07 08:43:03 +02:00
Mario Vavti
5acd166d18 Merge remote-tracking branch 'mike/master' into dev 2018-10-07 08:39:29 +02:00
M. Dent
3efeeecace Merge branch 'dev' into 'dev'
Add missing else clause

See merge request hubzilla/core!1317
2018-10-07 05:05:27 +02:00
M.Dent
259db3778c Add missing else clause 2018-10-06 23:02:22 -04:00
zotlabs
52be5c1660 use hubloc_store_lowlevel to ensure all hubloc columns are initialised 2018-10-06 14:47:40 -07:00
Mario Vavti
f85cce714f return success for postgres
(cherry picked from commit 2d9fe72215)
2018-10-06 23:13:01 +02:00
Mario Vavti
2eb93387c2 fix issue #1281 - hubloc default values
(cherry picked from commit dd3ec468f6)
2018-10-06 23:12:38 +02:00
Mario Vavti
2d9fe72215 return success for postgres 2018-10-06 23:10:52 +02:00
Mario Vavti
dd3ec468f6 fix issue #1281 - hubloc default values 2018-10-06 23:05:45 +02:00
Mario
88d28cd6fe minor version 2018-10-06 21:02:11 +02:00
Mario Vavti
b4035c2d19 those 3px make a difference on medium sized screens
(cherry picked from commit 65dcb39bac)
2018-10-06 21:01:27 +02:00
Mario Vavti
65dcb39bac those 3px make a difference on medium sized screens 2018-10-06 21:01:00 +02:00
Mario Vavti
b92bb0bd28 give apps some more space and prevent linebreaks in app names. Add ellipsis to too long names.
(cherry picked from commit 62433b5f05)
2018-10-06 20:56:47 +02:00
Mario Vavti
0a840c02f7 another db update to get rid of the old view bookmarks entries
(cherry picked from commit 6ffdf3880f)
2018-10-06 20:56:23 +02:00
Mario Vavti
62433b5f05 give apps some more space and prevent linebreaks in app names. Add ellipsis to too long names. 2018-10-06 20:55:28 +02:00
Mario Vavti
6ffdf3880f another db update to get rid of the old view bookmarks entries 2018-10-06 20:48:29 +02:00
Mario Vavti
9bfa5c82d1 move profile assign selector to profile settings and personal menu selector to channel_home settings and get rid of misc channel settings section.
(cherry picked from commit 66cf085272)
2018-10-06 20:34:57 +02:00
Mario Vavti
66cf085272 move profile assign selector to profile settings and personal menu selector to channel_home settings and get rid of misc channel settings section. 2018-10-06 20:29:32 +02:00
Mario Vavti
567448e2fd this did not actually make sense
(cherry picked from commit d174531931)
2018-10-06 17:44:53 +02:00
Mario Vavti
d174531931 this did not actually make sense 2018-10-06 17:43:37 +02:00
Mario Vavti
a38ded702f strings and force import_system_apps() on std_version change
(cherry picked from commit cd5f255966)
2018-10-06 17:21:49 +02:00
Mario Vavti
cd5f255966 strings and force import_system_apps() on std_version change 2018-10-06 17:20:23 +02:00
Mario Vavti
d1a3561585 rename widget titles
(cherry picked from commit da8b276699)
2018-10-06 16:53:59 +02:00
Mario Vavti
da8b276699 rename widget titles 2018-10-06 16:52:42 +02:00
Mario Vavti
5aa0304149 version RC1 2018-10-06 16:43:28 +02:00
Mario Vavti
7877e2467e rename grid to network (for consistency) and activity to stream (as seen in osada) because it makes much more sense.
(cherry picked from commit 96277372d5)
2018-10-06 16:41:19 +02:00
Mario Vavti
96277372d5 rename grid to network (for consistency) and activity to stream (as seen in osada) because it makes much more sense. 2018-10-06 16:40:30 +02:00
Mario Vavti
98ee99071c pubstream app
(cherry picked from commit b8991750c5)
2018-10-06 16:09:05 +02:00
Mario Vavti
b8991750c5 pubstream app 2018-10-06 16:08:15 +02:00
Mario Vavti
97acfd23fb randprof app
(cherry picked from commit 18726737d0)
2018-10-06 15:28:17 +02:00
Mario Vavti
18726737d0 randprof app 2018-10-06 15:27:46 +02:00
Mario Vavti
af05fa3e85 remote diagnostics app
(cherry picked from commit 6a297a8f3d)
2018-10-06 15:22:27 +02:00
Mario Vavti
6a297a8f3d remote diagnostics app 2018-10-06 15:21:22 +02:00
Mario Vavti
309904b15a admin should not be an app imho - we can not install/delete admin abilities. Remove suggest channels from base apps.
(cherry picked from commit 453ce4df3b)
2018-10-06 15:12:56 +02:00
Mario Vavti
453ce4df3b admin should not be an app imho - we can not install/delete admin abilities. Remove suggest channels from base apps. 2018-10-06 15:12:13 +02:00
Mario Vavti
02537b80b2 gallery is not a core app
(cherry picked from commit 9850d18420)
2018-10-06 15:02:29 +02:00
Mario Vavti
62730366ee bookmarks: change wording
(cherry picked from commit a522a66715)
2018-10-06 15:02:07 +02:00
Mario Vavti
0558a25141 bookmark app
(cherry picked from commit c2c891723f)
2018-10-06 15:01:45 +02:00
Mario Vavti
3f57609b75 merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-06 15:00:40 +02:00
Mario Vavti
9850d18420 gallery is not a core app 2018-10-06 15:00:28 +02:00
Mario
05ae18d74e Merge branch 'patch-6' into 'dev'
Add new table names in docs

See merge request hubzilla/core!1315

(cherry picked from commit 778086ce19)

4f70fd3e Add new table names in docs
2e4772ac Update db_groups.bb
4cb46c12 Update intro_for_developers.bb
c087aaf5 Update database.bb
2018-10-06 14:54:38 +02:00
Mario
778086ce19 Merge branch 'patch-6' into 'dev'
Add new table names in docs

See merge request hubzilla/core!1315
2018-10-06 14:54:21 +02:00
Mario
63ba72331f Merge branch 'patch-5' into 'dev'
Respect new table names on import

See merge request hubzilla/core!1314

(cherry picked from commit 3e231e7c13)

ebb4811a Respect new table names on import
2018-10-06 14:53:37 +02:00
Mario
3e231e7c13 Merge branch 'patch-5' into 'dev'
Respect new table names on import

See merge request hubzilla/core!1314
2018-10-06 14:53:18 +02:00
Mario Vavti
a522a66715 bookmarks: change wording 2018-10-06 14:50:17 +02:00
Mario Vavti
c2c891723f bookmark app 2018-10-06 14:48:12 +02:00
Max Kostikov
c087aaf5be Update database.bb 2018-10-06 14:48:04 +02:00
Max Kostikov
4cb46c124a Update intro_for_developers.bb 2018-10-06 14:43:40 +02:00
Max Kostikov
2e4772ac0e Update db_groups.bb 2018-10-06 14:40:48 +02:00
Max Kostikov
4f70fd3e71 Add new table names in docs 2018-10-06 14:39:54 +02:00
Max Kostikov
ebb4811a75 Respect new table names on import 2018-10-06 14:06:24 +02:00
zotlabs
835e222af0 minor app cleanup 2018-10-05 16:27:50 -07:00
M. Dent
a5e63aa90a Merge branch 'revert-f5acbccb' into 'dev'
Revert Fix: for hook registration.  Needs more testing.

See merge request hubzilla/core!1311
2018-10-05 19:32:42 +02:00
M. Dent
1922a2139d Revert "Merge branch 'dev' into 'dev'"
This reverts merge request !1310
2018-10-05 19:30:49 +02:00
M. Dent
f5acbccb79 Merge branch 'dev' into 'dev'
Fix: hooks not added to App::$hooks[] at the time of registration

See merge request hubzilla/core!1310
2018-10-05 19:27:30 +02:00
M.Dent
d39ebebc9d Fix: hooks not added to App::[] at the time of registration 2018-10-05 13:25:16 -04:00
Max Kostikov
b5ed1de31e New russian translations hmessages.po
(cherry picked from commit ff53da5b0a)
2018-10-05 14:54:53 +02:00
Max Kostikov
5cf156f698 New russian translations hstrings.php
(cherry picked from commit 9520123f6d)
2018-10-05 14:54:22 +02:00
Mario
dcd99c2d30 Merge branch 'undefined' into '3.8RC'
New russian translations

See merge request hubzilla/core!1308
2018-10-05 14:53:23 +02:00
Mario
a29e5521cc Merge branch 'patch-3' into 'dev'
Add 'Channel Export' in Apps list

See merge request hubzilla/core!1309
2018-10-05 14:52:46 +02:00
Max Kostikov
59bd90b967 Add 'Channel Export' in Apps list 2018-10-05 13:31:54 +02:00
Max Kostikov
ff53da5b0a New russian translations hmessages.po 2018-10-05 13:25:40 +02:00
Max Kostikov
9520123f6d New russian translations hstrings.php 2018-10-05 13:23:37 +02:00
Max Kostikov
d9efb037e3 Prevent links damage on foreign channel repost for cloned 2018-10-05 13:16:29 +02:00
Mario Vavti
c403c9aece Merge branch '3.8RC' of https://framagit.org/hubzilla/core into 3.8RC 2018-10-05 12:10:15 +02:00
Mario Vavti
df5115e7b8 force major version system apps import for 3.8RC - remove this at a later point 2018-10-05 12:09:54 +02:00
zotlabs
22fbb512d5 do not propagate channel deletion for an already deleted channel.
(cherry picked from commit 7c1e99884c)
2018-10-05 11:45:09 +02:00
zotlabs
2acfa7e525 regression: double linebreaks in viewsrc output
(cherry picked from commit d33c331abd)
2018-10-05 11:44:32 +02:00
Mario Vavti
69659e9bd5 Merge remote-tracking branch 'mike/master' into dev 2018-10-05 11:40:50 +02:00
Mario Vavti
6c066f6107 bump version 2018-10-05 11:33:52 +02:00
Mario Vavti
b96a05494b optimize autoloader 2018-10-05 11:28:14 +02:00
Mario Vavti
0d42b4cf8a strings 2018-10-05 11:26:26 +02:00
Mario Vavti
df0c77ccd3 bump version 2018-10-05 11:17:00 +02:00
zotlabs
3a0a611f15 Merge branch 'dev' 2018-10-04 19:20:10 -07:00
Mario Vavti
1eaf6df842 fix issues with bs accordions 2018-10-04 22:21:20 +02:00
Mario Vavti
9fe9137c96 fix displaying of perm cats selector 2018-10-04 22:01:34 +02:00
Mario Vavti
363fc5c72b whitespace 2018-10-04 21:49:00 +02:00
Mario Vavti
d4af745fc8 move *_divmore_height setting to the module extra_settings, and fix issue where feature settings were not synced if rpath was provided 2018-10-04 21:38:39 +02:00
Mario Vavti
6e03104e3e move *_list_mode to features 2018-10-04 20:48:22 +02:00
Mario
e89a84608f Merge branch 'patch-1' into 'dev'
Incorrect block wrapping fixed

See merge request hubzilla/core!1306
2018-10-04 14:57:03 +02:00
Max Kostikov
1dbd83a582 Update settings.tpl 2018-10-04 14:35:32 +02:00
Mario
c1002557cf Merge branch 'patch-1' into 'dev'
button sticking fixed

See merge request hubzilla/core!1305
2018-10-04 13:53:00 +02:00
Mario Vavti
cccea911fa remove redundant var 2018-10-04 13:44:26 +02:00
Mario Vavti
eb10120607 add apd file 2018-10-04 13:27:16 +02:00
Mario Vavti
c00dc6120d defperm app 2018-10-04 13:26:45 +02:00
Mario Vavti
d0605e8d5f uexport app 2018-10-04 11:50:38 +02:00
zotlabs
d33c331abd regression: double linebreaks in viewsrc output 2018-10-03 21:18:23 -07:00
Max Kostikov
05b6c33a2c button sticking fixed 2018-10-03 21:19:13 +02:00
Mario
3064f2ced5 bump activity app version 2018-10-03 16:09:31 +02:00
Mario
5e7c9b9d4a jot: show settings icon only to local profile owner 2018-10-03 15:21:20 +02:00
Mario
009e03c3ba move archives from network to channel_home 2018-10-03 11:47:12 +02:00
Mario Vavti
af3b0146a8 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-10-03 10:44:18 +02:00
Mario Vavti
883e2ccc91 move filing from conversation to network - it is only functional there. 2018-10-03 10:43:54 +02:00
zotlabs
7c1e99884c do not propagate channel deletion for an already deleted channel. 2018-10-02 19:42:21 -07:00
M. Dent
29e1302f3f Merge branch 'dev' into 'dev'
Fix misplaced comma with period.

See merge request hubzilla/core!1304
2018-10-03 03:18:43 +02:00
M.Dent
798f2466e4 Fix misplaced comma with period. 2018-10-02 21:14:36 -04:00
Mario Vavti
67f19745fd add app_destroy hook which allows addons to perform post delete actions 2018-10-02 14:29:56 +02:00
Mario Vavti
72abe5f3d3 do not rely on startpage pconfig anymore 2018-10-01 12:47:14 +02:00
Mario Vavti
08a287dea1 do not default to channel_startpage if startpage app is not installed 2018-10-01 12:38:04 +02:00
Mario Vavti
7dadf387e5 indicate locked features 2018-10-01 11:01:56 +02:00
M. Dent
8febcc2705 Merge branch 'status-editor-hook' into 'dev'
Status editor hook

See merge request hubzilla/core!1300
2018-09-29 20:22:27 +02:00
M. Dent
ff20370d0b Status editor hook 2018-09-29 20:22:27 +02:00
Mario Vavti
cc9ca8bbff do not unset $_GET[search] and adjust activity_order widget 2018-09-29 18:38:19 +02:00
Mario Vavti
5906d6cce3 improve network search 2018-09-29 18:00:14 +02:00
Mario Vavti
8265dac9c0 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-29 16:00:54 +02:00
Mario Vavti
6eeac03a0e appman: query terms also by uid to prevent double entries 2018-09-29 16:00:34 +02:00
Mario Vavti
7ca8f7b5cc allow to install apps by name 2018-09-29 15:42:22 +02:00
Mario Vavti
d7ed5518d1 Merge remote-tracking branch 'mike/master' into dev 2018-09-29 15:41:54 +02:00
zotlabs
6f036bc778 hubzilla core issue #1276 2018-09-28 15:44:18 -07:00
M. Dent
ba4a8aa762 Merge branch 'remove-servicelevel-logic' into 'dev'
Remove servicelevel logic

See merge request hubzilla/core!1291
2018-09-29 00:17:55 +02:00
M. Dent
5f992ffe15 Remove servicelevel logic 2018-09-29 00:17:55 +02:00
M. Dent
2904e58a9f Merge translations for non-installed apps message
See merge request hubzilla/core!1296
2018-09-28 21:34:15 +02:00
Max Kostikov
c45a9504e7 Update Group.php 2018-09-28 19:52:11 +02:00
Max Kostikov
403ead44f9 Update Wiki.php 2018-09-28 19:50:45 +02:00
Max Kostikov
9b0d123217 Update Webpages.php 2018-09-28 19:50:29 +02:00
Max Kostikov
8e673a6cdf Update Tokens.php 2018-09-28 19:50:15 +02:00
Max Kostikov
6d3c1fb7fc Update Sources.php 2018-09-28 19:49:56 +02:00
Max Kostikov
01043fa790 Update Poke.php 2018-09-28 19:49:42 +02:00
Max Kostikov
23d5e15f0f Update Permcats.php 2018-09-28 19:49:20 +02:00
Max Kostikov
5500473387 Update Pdledit.php 2018-09-28 19:49:02 +02:00
Max Kostikov
c8399e8104 Update Oauth2.php 2018-09-28 19:48:44 +02:00
Max Kostikov
423e1422ef Update Oauth.php 2018-09-28 19:48:25 +02:00
Max Kostikov
c34c0c6718 Update Notes.php 2018-09-28 19:48:09 +02:00
Max Kostikov
e3e96e59d2 Update Mood.php 2018-09-28 19:47:52 +02:00
Max Kostikov
accb211280 Update Lang.php 2018-09-28 19:47:37 +02:00
Max Kostikov
f07a4667b6 Update Invite.php 2018-09-28 19:47:20 +02:00
Max Kostikov
cb768ea23f Update Connect.php 2018-09-28 19:46:36 +02:00
Max Kostikov
b3249c10c2 Update Chat.php 2018-09-28 19:46:20 +02:00
Max Kostikov
c6fce5de24 Update Cdav.php 2018-09-28 19:46:04 +02:00
Max Kostikov
5c8e1169cd Update Cards.php 2018-09-28 19:45:11 +02:00
Max Kostikov
c0a485083d Update Articles.php 2018-09-28 19:44:35 +02:00
Max Kostikov
5f7d83bd4d Update Articles.php 2018-09-28 19:44:10 +02:00
Max Kostikov
52916bfcec Merge branch 'patch-11' into 'dev'
add translations

See merge request Kostikov/core!21
2018-09-28 16:04:29 +02:00
Max Kostikov
cb2646154a Merge branch 'patch-12' into 'dev'
Update Oauth2.php

See merge request Kostikov/core!20
2018-09-28 16:03:44 +02:00
Max Kostikov
61a7c4fb33 Merge branch 'patch-13' into 'dev'
Update Pdledit.php

See merge request Kostikov/core!19
2018-09-28 16:03:05 +02:00
Max Kostikov
3a3abc8087 Merge branch 'patch-14' into 'dev'
Update Permcats.php

See merge request Kostikov/core!18
2018-09-28 16:02:33 +02:00
Max Kostikov
e9b60cfb26 Merge branch 'patch-15' into 'dev'
Update Poke.php

See merge request Kostikov/core!17
2018-09-28 16:01:49 +02:00
Max Kostikov
eea9e2c1d0 Merge branch 'patch-16' into 'dev'
Update Sources.php

See merge request Kostikov/core!16
2018-09-28 16:01:05 +02:00
Max Kostikov
171d129ad1 Merge branch 'patch-17' into 'dev'
Update Tokens.php

See merge request Kostikov/core!15
2018-09-28 16:00:32 +02:00
Max Kostikov
0154c5d74e Merge branch 'patch-18' into 'dev'
Update Webpages.php

See merge request Kostikov/core!14
2018-09-28 15:59:48 +02:00
Max Kostikov
9032a656fa Merge branch 'patch-19' into 'dev'
Update Wiki.php

See merge request Kostikov/core!13
2018-09-28 15:58:55 +02:00
Max Kostikov
fda57a93a5 Merge branch 'patch-20' into 'dev'
Update Articles.php

See merge request Kostikov/core!12
2018-09-28 15:58:05 +02:00
Max Kostikov
4ad208668a Merge branch 'patch-21' into 'dev'
Update Cards.php

See merge request Kostikov/core!11
2018-09-28 15:57:29 +02:00
Max Kostikov
23edb51ba4 Merge branch 'patch-22' into 'dev'
Update Cdav.php

See merge request Kostikov/core!10
2018-09-28 15:56:55 +02:00
Max Kostikov
adf10296f1 Merge branch 'patch-23' into 'dev'
Update Chat.php

See merge request Kostikov/core!9
2018-09-28 15:56:17 +02:00
Max Kostikov
d3e6d6b6a6 Merge branch 'patch-24' into 'dev'
Update Connect.php

See merge request Kostikov/core!8
2018-09-28 15:55:41 +02:00
Max Kostikov
82de0862a1 Merge branch 'patch-25' into 'dev'
Update Group.php

See merge request Kostikov/core!7
2018-09-28 15:54:45 +02:00
Max Kostikov
1969537fd7 Merge branch 'patch-26' into 'dev'
Update Invite.php

See merge request Kostikov/core!6
2018-09-28 15:54:08 +02:00
Max Kostikov
973afe042a Merge branch 'patch-27' into 'dev'
Update Lang.php

See merge request Kostikov/core!5
2018-09-28 15:53:14 +02:00
Max Kostikov
99ceb1691b Merge branch 'patch-28' into 'dev'
Update Mood.php

See merge request Kostikov/core!4
2018-09-28 15:52:28 +02:00
Max Kostikov
4a904fa3a8 Merge branch 'patch-29' into 'dev'
Patch 29

See merge request Kostikov/core!3
2018-09-28 15:46:14 +02:00
Max Kostikov
c13d7e29ef Update Notes.php 2018-09-28 15:35:39 +02:00
Max Kostikov
58d9ca1bfd Update Mood.php 2018-09-28 15:35:14 +02:00
Max Kostikov
e2115e8ea5 Update Lang.php 2018-09-28 15:34:45 +02:00
Max Kostikov
ba417894ed Update Invite.php 2018-09-28 15:34:20 +02:00
Max Kostikov
a237248388 Update Group.php 2018-09-28 15:33:50 +02:00
Max Kostikov
7fd332f8cf Update Connect.php 2018-09-28 15:33:17 +02:00
Max Kostikov
2811d6ae53 Update Chat.php 2018-09-28 15:32:27 +02:00
Max Kostikov
d8c6d93c6e Update Cdav.php 2018-09-28 15:31:22 +02:00
Max Kostikov
134529a09d Update Cards.php 2018-09-28 15:30:30 +02:00
Max Kostikov
24c7bb600e Update Articles.php 2018-09-28 15:30:03 +02:00
Max Kostikov
90e9948dbe Update Wiki.php 2018-09-28 15:29:33 +02:00
Max Kostikov
db006b911a Update Webpages.php 2018-09-28 15:28:57 +02:00
Max Kostikov
eb2c2b9400 Update Tokens.php 2018-09-28 15:27:54 +02:00
Max Kostikov
86fc5b5ed8 Update Sources.php 2018-09-28 15:27:16 +02:00
Max Kostikov
f7e9454697 Update Poke.php 2018-09-28 15:26:46 +02:00
Max Kostikov
02a16050d9 Update Permcats.php 2018-09-28 15:26:09 +02:00
Max Kostikov
598fe91464 Update Pdledit.php 2018-09-28 15:25:38 +02:00
Max Kostikov
21272735ae Update Oauth2.php 2018-09-28 15:24:45 +02:00
Max Kostikov
52fea09c53 add translations 2018-09-28 15:23:38 +02:00
Mario Vavti
d9ccd24b02 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-28 13:08:04 +02:00
Mario
27fef98a39 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-28 13:05:44 +02:00
Mario Vavti
c6db644c42 Merge remote-tracking branch 'mike/master' into dev 2018-09-28 12:46:36 +02:00
Mario
41108fc4d3 nav_channel_select should be off by default 2018-09-28 11:46:17 +02:00
Mario Vavti
d7a20821c3 move display settings up 2018-09-28 11:32:00 +02:00
Mario Vavti
20285d076b settings for channel home 2018-09-28 11:29:05 +02:00
Mario
44bb070203 add transaction, commit and rollback to update 1221 2018-09-28 09:55:10 +02:00
Mario
9e87219aea Merge branch 'patch-10' into 'dev'
rename groups and group_members tables for MySQL 8 compatibility

See merge request hubzilla/core!1290
2018-09-28 09:41:21 +02:00
M. Dent
1b7e220de7 Merge branch 'channel-limits' into 'dev'
Hide form when at or over service_class['limit_identities']

See merge request hubzilla/core!1292
2018-09-28 04:46:48 +02:00
M.Dent
fe8b723622 Hide form when at or over service_class['limit_identities'] 2018-09-27 22:43:36 -04:00
M. Dent
1e85c40c42 Merge branch 'patch-9' into 'dev'
Add translation for new apps

See merge request hubzilla/core!1289
2018-09-28 04:15:28 +02:00
M. Dent
f72464a240 Merge branch 'patch-8' into 'dev'
Missprint in Oauth.php fixed

See merge request hubzilla/core!1288
2018-09-28 04:14:51 +02:00
Max Kostikov
65785ead69 Update zot.php 2018-09-28 01:05:03 +02:00
Max Kostikov
c550100a55 Update Group.php 2018-09-28 00:52:49 +02:00
Max Kostikov
2836bce8fe Update security.php 2018-09-28 00:51:21 +02:00
Max Kostikov
7f95d47721 Update Group.php 2018-09-28 00:49:32 +02:00
Max Kostikov
51c0045be4 Update zot.php 2018-09-28 00:38:36 +02:00
Max Kostikov
abfbfd9e9b Update group.php 2018-09-28 00:33:52 +02:00
Max Kostikov
5d6c8fd807 Update Import.php 2018-09-28 00:28:15 +02:00
Max Kostikov
f4799b2ddb Update Group.php 2018-09-28 00:26:01 +02:00
Max Kostikov
9afa6cc245 Update Libsync.php 2018-09-28 00:20:03 +02:00
Max Kostikov
25e8d70786 Update Acl.php 2018-09-28 00:14:21 +02:00
Max Kostikov
978e45911f Update Connections.php 2018-09-28 00:12:00 +02:00
Max Kostikov
da7bce3470 Update Contactgroup.php 2018-09-28 00:11:03 +02:00
Max Kostikov
4efa5cfa75 Update Group.php 2018-09-28 00:10:20 +02:00
Max Kostikov
444ae51a3e Update Lockview.php 2018-09-28 00:06:26 +02:00
Max Kostikov
07f82e4a14 Update Network.php 2018-09-28 00:05:43 +02:00
Max Kostikov
3379f6f793 Update Channel.php 2018-09-28 00:02:58 +02:00
Max Kostikov
80b47734a7 Update Activity_filter.php 2018-09-28 00:01:39 +02:00
Max Kostikov
69d46538ce Update boot.php 2018-09-28 00:00:38 +02:00
Max Kostikov
208d38207e Update acl_selectors.php 2018-09-27 23:59:45 +02:00
Max Kostikov
ffe80c66d7 Update api_zot.php 2018-09-27 23:58:49 +02:00
Max Kostikov
bfa672f42c Update channel.php 2018-09-27 23:56:54 +02:00
Max Kostikov
9f89f3190a Update connections.php 2018-09-27 23:55:20 +02:00
Max Kostikov
71931b423c Update items.php 2018-09-27 23:53:51 +02:00
Max Kostikov
b54aabc958 Update security.php 2018-09-27 23:52:46 +02:00
Max Kostikov
a45fe72eb9 Update text.php 2018-09-27 23:50:26 +02:00
Max Kostikov
62d64631b5 Update xchan.php 2018-09-27 23:49:41 +02:00
Max Kostikov
11945ce7bc Update schema_mysql.sql 2018-09-27 23:48:25 +02:00
Max Kostikov
bb3d908bcf Update schema_postgres.sql 2018-09-27 23:46:58 +02:00
Max Kostikov
98b3946fca rename groups and group_members tables for MySQL 8 compatibility 2018-09-27 23:42:11 +02:00
Mario
c15de3b68b more checks 2018-09-27 22:45:43 +02:00
Max Kostikov
78ed1ae446 Add translation for new apps 2018-09-27 21:57:27 +02:00
Max Kostikov
56fdc4f3fe Missprint in Oauth.php fixed 2018-09-27 20:26:47 +02:00
M. Dent
f17261020d Merge branch 'dev' into 'dev'
Translate system app names

See merge request hubzilla/core!1286
2018-09-27 19:38:39 +02:00
M.Dent
6f98ca68af Translate system app names 2018-09-27 13:37:15 -04:00
Mario Vavti
269538fdc7 bump version 2018-09-27 14:57:22 +02:00
Mario Vavti
6b23c3e179 implement conversation tools (settings/conversation), remove additional features from the settings menu and get rid of skill levels 2018-09-27 14:56:47 +02:00
zotlabs
5cc19ce053 jsonld signature issue (library is using sha1, spec requires sha256) 2018-09-26 16:39:08 -07:00
Mario Vavti
bdf6289b32 tokens: add css file and fix argc and argv values 2018-09-26 22:32:06 +02:00
Mario Vavti
e3c04b1fd0 guest access app 2018-09-26 22:24:36 +02:00
Mario Vavti
a7948d7bfe permcats app 2018-09-26 22:02:50 +02:00
Mario Vavti
505782f224 remove oauth from features 2018-09-26 16:35:05 +02:00
Mario Vavti
1353c291e9 add check for local_channel() 2018-09-26 16:32:06 +02:00
Mario Vavti
9af1b62bee change wording 2018-09-26 16:26:36 +02:00
Mario Vavti
d7ec36e3da wrong app name 2018-09-26 16:23:12 +02:00
Mario Vavti
aab97adb23 oauth and oauth2 apps manager 2018-09-26 16:22:34 +02:00
Mario Vavti
91502b4104 change wording 2018-09-26 15:13:19 +02:00
Mario Vavti
9bc76b4259 appification of the pdl editor and move advanced_theming to theme settings where it belongs 2018-09-26 15:02:20 +02:00
Mario Vavti
9948bb3f2a appification of privacy groups 2018-09-25 12:59:53 +02:00
Mario Vavti
0722775038 missing file 2018-09-25 12:22:43 +02:00
Mario Vavti
65423b1768 get rid of general features 2018-09-25 12:02:48 +02:00
Mario Vavti
9bb0f1d18e move advanced_theming switch to settings/display for now 2018-09-25 12:02:00 +02:00
Mario Vavti
39866b7463 move start_menu switch to settings/display for now 2018-09-25 11:37:22 +02:00
Mario Vavti
4c58a5cef2 premium channel app 2018-09-25 10:06:24 +02:00
Mario Vavti
c748230b35 revert nav settings opacity 2018-09-24 11:51:20 +02:00
Mario Vavti
c3aa15cc16 appification of notes 2018-09-24 11:46:18 +02:00
Mario Vavti
b45bd901e0 move categories from tools to editor settings 2018-09-24 10:13:56 +02:00
Mario
317fd06357 Merge branch 'app-installed-filters' into 'dev'
Add filters for addon/app installed checks and docs

See merge request hubzilla/core!1284
2018-09-24 09:57:26 +02:00
Mario
4a7c678213 fade in nav settings button 2018-09-24 09:46:19 +02:00
Mario
85e06a77af add file 2018-09-24 09:34:28 +02:00
Mario
7cadc30914 settings for directory and set App::$profile_uid in directory if local_channel() 2018-09-24 09:33:52 +02:00
M.Dent
995fc63f2c Add filters for addon/app installed checks and docs 2018-09-23 22:36:27 -04:00
Mario
e735220691 only explain how to select a channel if there are channels to select 2018-09-23 20:54:36 +02:00
Mario
9b7c6e96f7 only show nav settings icon when hovering over nav 2018-09-23 20:41:01 +02:00
Mario
d83fe9d417 minor cleanup 2018-09-23 20:02:28 +02:00
Mario
a1d1d5dba7 use different settings for cal_first_day in events and cdav/calendar. This is a tradeoff. It would be better to have one setting for both but if we want to preserve the *all settings* view, this would break its functionality 2018-09-23 19:40:52 +02:00
Mario
781fdaafcd settings for events and cdav calendar 2018-09-23 19:18:05 +02:00
Mario
1f1d5b9181 provide settings for mod photo and make it slightly simpler to create new module settings 2018-09-23 17:52:32 +02:00
Mario
9e22ec267c keep the features in the central array but sort them by module name 2018-09-23 01:11:06 +02:00
Mario
b296a73330 this should be off by default 2018-09-22 20:15:34 +02:00
Mario
65be3de200 add files and settings for channel manager 2018-09-22 20:10:48 +02:00
Mario
45078dda82 introduce profile settings and provide a way for modules without an app to still be able to link to its settings page from the navbar 2018-09-22 19:48:17 +02:00
Mario Vavti
822bbd9ad5 another try to fix Fix PHP Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity 2018-09-22 14:18:37 +02:00
Mario
c873f7e702 Revert "Fix PHP Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity"
This reverts commit 184928204a
2018-09-22 14:15:30 +02:00
Mario Vavti
0a5ac62b59 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-22 13:32:58 +02:00
Mario Vavti
1e5405ccaf appification of sources 2018-09-22 13:32:42 +02:00
Mario
12d2270935 Merge branch 'page-meta-properties' into 'dev'
Page meta properties

See merge request hubzilla/core!1283
2018-09-22 10:44:51 +02:00
M. Dent
ed00d1b2e3 Page meta properties 2018-09-22 10:44:51 +02:00
Mario Vavti
2b452ffbd3 rge remote-tracking branch 'mike/master' into dev 2018-09-22 08:44:01 +02:00
zotlabs
3b4a23c4a1 doc cleanup 2018-09-21 17:21:47 -07:00
Mario Vavti
4484985c2d add file 2018-09-21 21:37:00 +02:00
Mario Vavti
6f99ca1d31 opacity for jot settings/reset buttons 2018-09-21 20:59:31 +02:00
Mario Vavti
8efa103041 provide editor settings 2018-09-21 20:57:01 +02:00
Mario Vavti
9638bf2b1e provide a return path from settings pages 2018-09-21 20:23:31 +02:00
Mario Vavti
6f43468724 compare strpos() result against false 2018-09-21 15:08:02 +02:00
Mario Vavti
18a9ebdb1e add missing check 2018-09-21 14:07:30 +02:00
Mario
604142af93 Merge branch 'patch-5' into 'dev'
save admin page values

See merge request hubzilla/core!1282
2018-09-21 13:55:47 +02:00
Max Kostikov
2d83868ed9 Update admin_account_edit.tpl 2018-09-21 13:50:50 +02:00
Max Kostikov
73195a0215 Update admin_account_edit.tpl 2018-09-21 13:48:44 +02:00
Max Kostikov
13d05549f8 Update admin_accounts.tpl 2018-09-21 13:48:40 +02:00
Max Kostikov
0143bc734c Update admin_channels.tpl 2018-09-21 13:48:35 +02:00
Max Kostikov
ff860a3310 Update admin_logs.tpl 2018-09-21 13:48:27 +02:00
Max Kostikov
ed0044aeab Update admin_profiles.tpl 2018-09-21 13:48:22 +02:00
Max Kostikov
1a6d290d71 Update admin_security.tpl 2018-09-21 13:48:12 +02:00
Max Kostikov
dbb7245e22 Update admin_site.tpl 2018-09-21 13:48:07 +02:00
Mario Vavti
437aa4082c Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-21 13:24:38 +02:00
Mario
0f9802a47c Merge branch 'patch-5' into 'dev'
Admin forms buttons design unification

See merge request hubzilla/core!1281
2018-09-21 13:24:29 +02:00
Mario Vavti
46d6d1c329 Merge remote-tracking branch 'mike/master' into dev 2018-09-21 12:45:32 +02:00
Mario Vavti
4dd1521677 fix position of nav settings icon 2018-09-21 12:16:36 +02:00
Mario Vavti
32fba39915 fix typo 2018-09-21 11:22:11 +02:00
Mario Vavti
c1697ce96b fix can not enter text in notes widget 2018-09-21 11:15:18 +02:00
zotlabs
ba49e6a588 don't double encode 2018-09-20 22:46:47 -07:00
zotlabs
5525f082e6 remove bbcode from event hovertip 2018-09-20 22:43:01 -07:00
zotlabs
a4d987b45a Merge branch 'dev' 2018-09-20 18:36:14 -07:00
zotlabs
3cc66b6816 bookmarks fail to sync 2018-09-20 16:07:32 -07:00
Max Kostikov
21ff570c4d Update admin_account_edit.tpl 2018-09-20 23:40:09 +02:00
Max Kostikov
f2e4cf3a92 Update admin_security.tpl 2018-09-20 23:39:46 +02:00
Max Kostikov
7123de66f9 Update admin_profiles.tpl 2018-09-20 23:39:18 +02:00
Max Kostikov
e4fe202fc6 Update admin_site.tpl 2018-09-20 23:38:48 +02:00
Max Kostikov
bde6caf167 Update admin_accounts.tpl 2018-09-20 23:38:19 +02:00
Max Kostikov
96f45b5fbe Update admin_channels.tpl 2018-09-20 23:36:35 +02:00
Max Kostikov
4352afeeb0 Update admin_logs.tpl 2018-09-20 23:32:13 +02:00
Mario Vavti
369f34b2d1 remove connection filter from network settings 2018-09-20 13:25:47 +02:00
Mario Vavti
1ca558f011 move connection filtering setting from network to connections, provide a link to settings in the navbar if present for a module and some code optimisation 2018-09-20 13:22:41 +02:00
Mario Vavti
a6db822a69 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-20 12:10:39 +02:00
Mario Vavti
ad8226d549 deal with the ability to provide settings url in apd files in include/nav.php 2018-09-20 12:10:27 +02:00
Mario
1b27327057 Merge branch 'preempt-hooks' into 'dev'
Preempt hooks

See merge request hubzilla/core!1279
2018-09-20 12:08:45 +02:00
Mario
3d713cee62 Merge branch 'hook-docs' into 'dev'
Document new hooks

See merge request hubzilla/core!1278
2018-09-20 12:07:47 +02:00
Mario Vavti
afd4da8f11 Merge remote-tracking branch 'mike/master' into dev 2018-09-20 11:16:14 +02:00
M.Dent (DM42.Net)
3ee632514c Add structure to permit_hook 2018-09-19 22:33:25 -04:00
M.Dent (DM42.Net)
456fe71ca9 add hook: permit_hook 2018-09-19 21:54:46 -04:00
M.Dent (DM42.Net)
f2c59b3881 Document new hooks 2018-09-19 21:18:06 -04:00
zotlabs
2c1560e027 fix setup 2018-09-19 17:56:23 -07:00
Mario Vavti
34fec995f7 allow a second url in apd files for settings, hide pin and star buttons in edit mode and use strpos() instead of strstr() in some places 2018-09-19 15:00:06 +02:00
Mario Vavti
ec7cbe272a Merge remote-tracking branch 'mike/master' into dev 2018-09-19 11:23:38 +02:00
zotlabs
98bc1ed600 this was needed 2018-09-18 23:18:59 -07:00
zotlabs
7756773683 missing autocomplete (e.g. mentions) in mod_photos comments 2018-09-18 19:52:10 -07:00
zotlabs
dfdf11d461 Merge branch 'dev' 2018-09-17 19:38:40 -07:00
zotlabs
cc5ef57843 fix listeners table create and expire federation had a syntax error 2018-09-17 18:40:49 -07:00
Mario Vavti
71c599f50e remove superfluous comma 2018-09-17 22:16:42 +02:00
Mario Vavti
a1f3a5d9b6 remove unused variable 2018-09-17 22:16:10 +02:00
Mario Vavti
a9e89d2fcc Merge remote-tracking branch 'mike/master' into dev 2018-09-17 22:07:50 +02:00
zotlabs
fdc89d1b89 pdo install check requires namespacing 2018-09-17 13:03:17 -07:00
Mario
c4c1b1f5a2 Merge branch 'patch-3' into 'dev'
Save combined view while deleting or recalling first message in thread

See merge request hubzilla/core!1273
2018-09-17 13:29:52 +02:00
Max Kostikov
12b9106fc7 Update zot.php 2018-09-17 13:16:04 +02:00
Max Kostikov
faaffdd618 Update message.php 2018-09-17 13:15:43 +02:00
Max Kostikov
774729b221 Update msglib.php 2018-09-17 13:15:24 +02:00
Mario Vavti
1455fa6bc3 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-17 11:36:25 +02:00
Mario Vavti
a9853e6033 seperate settings for mod network 2018-09-17 11:36:11 +02:00
Mario
eefa47776b Merge branch 'trap-template-errors' into 'dev'
Trap errors in template rendering.  Output a generic error and log problem.

See merge request hubzilla/core!1274
2018-09-17 11:03:37 +02:00
Mario
0b12a7e66f Merge branch 'delete-attach-hook' into 'dev'
delete_attach hook

See merge request hubzilla/core!1275
2018-09-17 11:00:22 +02:00
Mario
3019d8341d Merge branch 'app-list-hook' into 'dev'
Add hook to allow addons to filter the list returned by app_list

See merge request hubzilla/core!1276
2018-09-17 10:55:47 +02:00
Mario Vavti
dcacfc1124 Merge remote-tracking branch 'mike/master' into dev 2018-09-17 10:31:13 +02:00
Mario Vavti
2f6cb764a4 prepare submodule to interact with route 2018-09-17 10:30:47 +02:00
M.Dent
a0cf2b53e0 Add hook to allow addons to filter the list returned by app_list 2018-09-16 23:01:17 -04:00
zotlabs
593a5072d9 Some improvements to setup checks: image library and pdo support 2018-09-16 20:00:20 -07:00
zotlabs
27617efbfb Merge branch 'dev' 2018-09-16 19:05:12 -07:00
zotlabs
6ab12597f5 do not sync the channel_moved field 2018-09-16 18:59:12 -07:00
Mario Vavti
07cd1d1272 appification of the lang module 2018-09-16 09:30:07 +02:00
M.Dent (DM42.Net)
abe35817cd Add attach_delete hook 2018-09-15 23:09:16 -04:00
Max Kostikov
585bdf562a Update msglib.php 2018-09-16 00:43:45 +02:00
Max Kostikov
034441bd13 use common msg_drop function 2018-09-15 22:32:56 +02:00
Max Kostikov
1819704620 Use common msg_drop function 2018-09-15 22:32:07 +02:00
Max Kostikov
18801a6c60 formatting 2018-09-15 22:31:08 +02:00
Max Kostikov
f83c2d5cd1 Create msglib.php 2018-09-15 22:27:39 +02:00
Max Kostikov
724dc48fe8 Add new file 2018-09-15 21:41:13 +02:00
Mario Vavti
791ff25d52 appify poke 2018-09-15 11:09:16 +02:00
Mario Vavti
299eb469f8 appify mood 2018-09-15 11:00:41 +02:00
Mario Vavti
0f9a8a43e4 appify invite 2018-09-15 10:48:51 +02:00
Mario Vavti
7856f5882b appify cdav stuff. WARNING: if you use caldav or carddav from a client or the webinterface you will need to enable those apps to make things work again 2018-09-15 10:10:43 +02:00
Max Kostikov
284e5dd2e8 unification with zot.php code for future reuse 2018-09-15 01:45:54 +02:00
Max Kostikov
3d3f4f50fb formatting 2018-09-15 01:40:17 +02:00
Max Kostikov
8d89c4bbce Save combined view on calling first message in thread 2018-09-15 01:20:49 +02:00
Max Kostikov
85d8225cc0 less data in select 2018-09-15 01:01:48 +02:00
M.Dent
8ad24ca3e8 Catch errors in template rendering. Output a generic error and log problem. 2018-09-14 17:53:28 -04:00
Max Kostikov
6360dee125 formatting 2018-09-14 17:45:42 +02:00
Max Kostikov
e931616011 Save combined view while deleting first message in thread 2018-09-14 17:38:14 +02:00
Mario
ab611e9ef3 Merge branch 'patch-2' into 'dev'
php2po.php unify quote/unquote

See merge request hubzilla/core!1272
2018-09-14 10:48:03 +02:00
Max Kostikov
240d4704aa php2po.php unify quote/unquote 2018-09-13 21:28:15 +02:00
Mario Vavti
f9d43479f2 css issues 2018-09-13 15:14:46 +02:00
Mario Vavti
c2f6f87cae add activity_filter and activity_order .bb files 2018-09-13 11:55:37 +02:00
Mario Vavti
869534fafa remove network_tabs() which has been deprecated and replaced by activity_{order, filters} widgets 2018-09-13 11:53:59 +02:00
Mario Vavti
56f88f2e30 move chat from feature to apps 2018-09-13 11:32:43 +02:00
Mario Vavti
a1d5ce3716 remove profile_tabs() which has been deprecated and replaced by channel_apps() 2018-09-13 10:59:37 +02:00
Mario
78dc679a72 Merge branch 'patch-1' into 'dev'
z_fetch_url with case insensitive headers

See merge request hubzilla/core!1271
2018-09-12 21:11:47 +02:00
Mario Vavti
57e3ee47ee more feature to app transition 2018-09-12 20:52:55 +02:00
Mario Vavti
184928204a Fix PHP Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity 2018-09-12 11:14:49 +02:00
Mario Vavti
2651eae663 mpre feature to app transition 2018-09-12 11:08:53 +02:00
Mario Vavti
28e4977c33 include item.title in /network and /channel search 2018-09-11 11:16:58 +02:00
zotlabs
adc164b825 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-09-10 22:11:26 -07:00
Max Kostikov
66bf55710e Update network.php 2018-09-10 15:13:28 +02:00
Mario Vavti
c6abe87ec2 move cards from features to apps 2018-09-10 13:34:05 +02:00
Mario Vavti
4bb16b18ed cover photo: mior issue and more cleanup 2018-09-10 12:12:05 +02:00
Mario Vavti
4cc413cdaf cover photo: some code cleanup and fix height issue when photo was not cached 2018-09-10 11:12:15 +02:00
zotlabs
be3b630474 important hyperdrive component 2018-09-09 20:53:20 -07:00
Mario Vavti
677ad71b96 fix some issues with latest notification improvements 2018-09-09 19:44:27 +02:00
Mario Vavti
9607bb29fd missing text 2018-09-07 14:58:16 +02:00
Mario Vavti
d29415a6e2 provide a noscript_content switch for mod channel and display 2018-09-07 14:23:16 +02:00
Mario Vavti
54fa28441c install bootstrap via composer 2018-09-07 11:26:02 +02:00
Mario Vavti
bb42ec2bfc apps: change page title to available/installed, display install action label in button and use different icons for installable and updateable apps 2018-09-07 10:39:15 +02:00
Mario Vavti
d31251c54e overflow should be auto not visible 2018-09-07 10:07:29 +02:00
Mario Vavti
6a338e28b2 -1 has issues in some browsers 2018-09-06 14:27:56 +02:00
Mario Vavti
f3ce5e73fe Merge remote-tracking branch 'mike/master' into dev 2018-09-06 12:22:41 +02:00
Mario Vavti
c53d3a4b3a bump version 2018-09-06 11:44:47 +02:00
Mario Vavti
5135f236c2 improve cover-photo handling 2018-09-06 11:30:50 +02:00
Mario Vavti
78c847ef7d improve notification handling on small screens 2018-09-06 11:14:08 +02:00
Mario Vavti
673a2f67f1 sticky-kit: improve handling 2018-09-06 10:08:55 +02:00
zotlabs
c5bc4fe245 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-09-05 21:02:06 -07:00
zotlabs
bc4a92b702 detect and automatically repair duplicate plugin hook scenarios. 2018-09-05 19:43:07 -07:00
Mario Vavti
ea381d9180 move str_replace inside if clause 2018-09-05 14:44:06 +02:00
Mario Vavti
4f82428a20 hide cover photo by default and show it only if conditions are met 2018-09-05 14:31:34 +02:00
Mario Vavti
e494a76b33 revert "Add bottom margin on aside elements and main to allow for viewport footer."
This reverts commit 1d7d604016.
2018-09-05 12:34:30 +02:00
Mario Vavti
1753e40466 Revert "Fix jumpy sidebars"
This reverts commit 79eb6d3942.
2018-09-05 12:32:53 +02:00
Mario Vavti
6667ba4172 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-05 12:20:06 +02:00
Mario Vavti
75e8aa8aee bump version 2018-09-05 12:19:52 +02:00
Mario
a81a1bd5f1 Merge branch 'fix-authorcomment-fix' into 'dev'
Corrected resubmit of fixes to Authors unable to comment on posts they authored…

See merge request hubzilla/core!1269
2018-09-05 12:18:56 +02:00
Mario Vavti
5d1539df75 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-09-05 12:17:50 +02:00
Mario Vavti
a821682c8c instead of not displaying the cover-photo at all after first page load, load the page with the cover slided up. change pointer to n-resize if cover is not slid. 2018-09-05 12:17:32 +02:00
M.Dent
9446e0348e Corrected resubmit of fixes to Authors unable to comment on posts they authored when owned by others. 2018-09-04 08:14:52 -04:00
Mario Vavti
41ccb61c2e Revert "Fix: Authors unable to comment on posts they authored when under owned by others in certain circumstances."
This reverts commit e2824f9259.

Reverting because it breaks forum mentions.
2018-09-03 18:14:17 +02:00
Mario
1b7781a159 Merge branch 'add-delivery-status-info' into 'dev'
Fix: Authors unable to comment on posts they authored when under owned by others…

See merge request hubzilla/core!1268
2018-09-02 09:17:29 +02:00
Mario Vavti
d66f58a550 fix undefined constant warning 2018-09-01 21:09:04 +02:00
M.Dent
e2824f9259 Fix: Authors unable to comment on posts they authored when under owned by others in certain circumstances. 2018-09-01 13:45:05 -04:00
Mario Vavti
4376f8f030 do not count sys channel in totals 2018-09-01 13:43:32 +02:00
Mario Vavti
d377660b5a update 1218: missing default value for pg 2018-08-31 20:26:31 +02:00
Mario
c5ce9b0699 Merge branch 'call-hooks-optimization' into 'dev'
Micro-optimization to call_hooks()

See merge request hubzilla/core!1267
2018-08-30 10:09:00 +02:00
Mario
c74a7ce4fc Merge branch 'add-delivery-status-info' into 'dev'
Add dreport_process hook

See merge request hubzilla/core!1266
2018-08-30 10:07:18 +02:00
Mario Vavti
d98ed68749 html-to-markdown adds a backslash infront of a hash after each new line - manualy remove those 2018-08-29 16:16:17 +02:00
M.Dent
70d6d2f2db Micro-optimization to call_hooks() 2018-08-29 10:02:04 -04:00
M.Dent
da441c59f6 Add dreport_process hook 2018-08-29 08:58:49 -04:00
Mario Vavti
42093aedcf db update to get rid of bogus activitypub xchans which got created due to a bug in the pubcrawl addon 2018-08-29 13:57:36 +02:00
Mario Vavti
74d80473df Merge remote-tracking branch 'mike/master' into dev 2018-08-29 11:50:40 +02:00
zotlabs
7ecb337405 redirect stdout/stderr on cron command 2018-08-28 22:43:37 -07:00
Mario Vavti
07792adc56 add paragonie and symfonie since ramsey/uuid appears to require them 2018-08-28 12:06:36 +02:00
Mario Vavti
c0c827d3ad update composer libs and add ramsey/uuid 2018-08-28 12:00:23 +02:00
Mario Vavti
6a2bbed73d remove distinct from network query again until performance issue is resolved or another fix for the underlying problem is found 2018-08-27 10:19:10 +02:00
Mario
4c1944a08d Merge branch 'extend-convitems-dropdown' into 'dev'
Extend cog dropdown & temp fix for feed display of corrupt mids

See merge request hubzilla/core!1265
2018-08-27 10:02:58 +02:00
Mario
95f870f1b4 Merge branch 'dev' into 'dev'
Add translation to missed strings in Wiki

See merge request hubzilla/core!1264
2018-08-27 10:00:50 +02:00
Mario Vavti
c250de7dae Merge remote-tracking branch 'mike/master' into dev 2018-08-27 09:48:22 +02:00
zotlabs
e4b6a143c7 Revert "Change main router request variable from 'q' to 'req'. This is necessary to implement search in the twitter api addon, because twitter requires use of the variable 'q'." Reverting because this will only work with Apache and break nginx/other installations.
This reverts commit 9367e9fe5a.
2018-08-26 23:05:56 -07:00
zotlabs
9367e9fe5a Change main router request variable from 'q' to 'req'. This is necessary to implement search in the twitter api addon, because twitter requires use of the variable 'q'. 2018-08-26 23:00:31 -07:00
M.Dent
a0c2bbac9d Add hook to extend conv_item cog dropdown menu 2018-08-26 23:26:10 -04:00
Max Kostikov
f5f6ec3d71 Update wiki.tpl 2018-08-25 21:34:58 +02:00
Max Kostikov
c57c1c8b2e Merge branch 'revert-c16fda1c' into 'dev'
Revert "Update wiki.tpl"

See merge request Kostikov/core!2
2018-08-25 21:31:58 +02:00
Max Kostikov
44f639f371 Revert "Update wiki.tpl"
This reverts commit c16fda1cb6
2018-08-25 21:31:47 +02:00
Max Kostikov
4435717168 Merge branch 'revert-ff1a0d21' into 'dev'
Revert "Update wiki.tpl"

See merge request Kostikov/core!1
2018-08-25 21:31:17 +02:00
Max Kostikov
6767ff5434 Revert "Update wiki.tpl"
This reverts commit ff1a0d217f
2018-08-25 21:30:58 +02:00
Max Kostikov
ff1a0d217f Update wiki.tpl 2018-08-25 21:29:25 +02:00
Max Kostikov
42c5e98670 Update Wiki_page_history.php 2018-08-25 21:27:20 +02:00
Max Kostikov
c9b80a3612 Update Wiki.php 2018-08-25 21:26:50 +02:00
Max Kostikov
e78a4d61d8 Update NativeWikiPage.php 2018-08-25 21:25:26 +02:00
Max Kostikov
88ebcb56e7 Update Wiki_page_history.php 2018-08-25 21:23:08 +02:00
Max Kostikov
308dda1587 Update Wiki.php 2018-08-25 21:21:57 +02:00
Max Kostikov
67a9dd8497 Update NativeWikiPage.php 2018-08-25 21:20:00 +02:00
Max Kostikov
732ce25d7f Update nwiki_page_history.tpl 2018-08-25 21:17:25 +02:00
Max Kostikov
c16fda1cb6 Update wiki.tpl 2018-08-25 21:16:05 +02:00
Mario Vavti
f036c25dca Merge remote-tracking branch 'mike/master' into dev 2018-08-24 14:44:45 +02:00
Mario
7fc4292ed8 Merge branch 'dm42fixes' into 'dev'
fix exclusion of redmatrix theme

See merge request hubzilla/core!1263
2018-08-24 14:33:04 +02:00
Mario
b50e8a5cf9 Merge branch 'patch-19' into 'dev'
Update Russian translation

See merge request hubzilla/core!1262
2018-08-24 14:31:28 +02:00
zotlabs
7018da3f12 code cleanup 2018-08-23 22:44:22 -07:00
zotlabs
a66c43166a first_post_date() (used by archive widget) - trigger the query options off of the active module rather than rely on passed parameters 2018-08-23 21:01:28 -07:00
M.Dent
2893f7d481 Get full page of items 2018-08-23 23:54:18 -04:00
M.Dent
398e42acb5 fix exclusion of redmatrix theme 2018-08-23 20:53:24 -04:00
zotlabs
6ecd31a715 tweak archive widget for articles 2018-08-22 13:30:16 -07:00
Max Kostikov
456bc2ef86 Update hstrings.php 2018-08-22 15:13:01 +02:00
Max Kostikov
e071cd4635 Update hmessages.po 2018-08-22 15:12:09 +02:00
Mario Vavti
cc03e1ceef Merge remote-tracking branch 'mike/master' into dev 2018-08-22 10:47:40 +02:00
Mario
e4d08fc5d7 Merge branch 'redbasic-addroomforfooter' into 'dev'
Fix jumpy sidebars

See merge request hubzilla/core!1261
2018-08-22 10:46:02 +02:00
zotlabs
b25192332b profile likes - liker image was a bit large and didn't make a very pleasant looking dropdown, may have been overlooked when other related things were changed to menu-img-1 class 2018-08-21 23:39:49 -07:00
zotlabs
0eeaf8713f add api_not_found hook 2018-08-21 23:13:54 -07:00
zotlabs
42c4a0da51 Zot/Finger: ignore deleted hublocs 2018-08-21 21:38:10 -07:00
M.Dent
79eb6d3942 Fix jumpy sidebars 2018-08-21 13:18:42 -04:00
Mario Vavti
db853134e3 Merge remote-tracking branch 'mike/master' into dev 2018-08-21 13:19:30 +02:00
Mario
218029ee57 Merge branch 'redbasic-addroomforfooter' into 'dev'
Add bottom margin on aside elements and main to allow for viewport footer.

See merge request hubzilla/core!1259
2018-08-21 13:17:14 +02:00
Mario
4295fbf6c6 Merge branch 'dev' into 'dev'
Update catalan translations for sstrings up to 18th July 2018

See merge request hubzilla/core!1260

(cherry picked from commit 0985adb770)

af31bbeb Update catalan translations for sstrings up to 18th July 2018
2018-08-21 13:14:25 +02:00
Mario
0985adb770 Merge branch 'dev' into 'dev'
Update catalan translations for sstrings up to 18th July 2018

See merge request hubzilla/core!1260
2018-08-21 13:13:48 +02:00
Mario
5d2ac10073 Merge branch 'patch-17' into 'master'
Add missed app 'Order Apps'

See merge request hubzilla/core!1258

(cherry picked from commit 85aa495741)

6086a70e Add missed app 'Order Apps'
2018-08-21 13:13:23 +02:00
Mario
85aa495741 Merge branch 'patch-17' into 'master'
Add missed app 'Order Apps'

See merge request hubzilla/core!1258
2018-08-21 13:12:41 +02:00
zotlabs
8bf1e3a944 more code optimisation 2018-08-20 22:02:08 -07:00
zotlabs
066febdf40 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-08-20 20:20:57 -07:00
zotlabs
9b620b2a35 remove checkjs reloader from mod_display also 2018-08-20 20:07:54 -07:00
zotlabs
a9bbfe9c4f Only show cover photos once per login session. After that they can get annoying. If there is pushback on this, then it should perhaps be optional. 2018-08-20 17:38:38 -07:00
zotlabs
d95735deaf channel page performance improvement: don't use "checkjs" with an associated page reload. Wrap a static copy of the content in noscript tags instead. 2018-08-20 17:22:49 -07:00
fadelkon
af31bbeba1 Update catalan translations for sstrings up to 18th July 2018 2018-08-20 22:50:46 +02:00
M.Dent
1d7d604016 Add bottom margin on aside elements and main to allow for viewport footer. 2018-08-20 00:15:34 -04:00
zotlabs
df26fec1b3 hubzilla core issue #1262 2018-08-17 21:21:02 -07:00
Max Kostikov
6086a70e06 Add missed app 'Order Apps' 2018-08-17 17:48:55 +02:00
zotlabs
e5529938ea Suppress duplicate info() messages. This was done long for notice(), but info() was overlooked at that time. 2018-08-16 12:35:57 -07:00
Mario Vavti
e25db4d1b5 Merge remote-tracking branch 'mike/master' into dev 2018-08-16 08:50:52 +02:00
zotlabs
32acb0ff01 missing files 2018-08-15 21:33:11 -07:00
zotlabs
f230c07ba5 possible fixes for can_comment_on_post(), provide wiki_list on wiki sidebar 2018-08-15 17:00:37 -07:00
Mario Vavti
2becc3273a Merge remote-tracking branch 'mike/master' into dev 2018-08-15 13:21:12 +02:00
zotlabs
f4f610f1a3 more backporting for zot6 2018-08-14 18:19:34 -07:00
Mario Vavti
10c5b46e3b Merge remote-tracking branch 'mike/master' into dev 2018-08-14 13:04:37 +02:00
Mario
b503ef8761 Merge branch 'override-helpfiles' into 'dev'
Override helpfiles

See merge request hubzilla/core!1257
2018-08-14 13:03:26 +02:00
M. Dent
94393d27c8 Override helpfiles 2018-08-14 13:03:26 +02:00
zotlabs
12f4787b67 issue with mdpost addon and archive.org links which contain a full url as a path/query component 2018-08-13 23:11:10 -07:00
zotlabs
f15c1c4e54 hubloc DB changes needed for z6 2018-08-13 21:18:20 -07:00
zotlabs
62925c4c3f oidc cleanup and discovery 2018-08-13 20:24:04 -07:00
zotlabs
4fdf5d28ca minor oauth2 updates - renamed zot webbie to 'webfinger' and zothash to 'portable_id', fixed/simplified cgi auth mode 2018-08-13 17:24:48 -07:00
Mario
b78c9a2251 Merge branch 'add-template-overrides' into 'dev'
Add template overrides

See merge request hubzilla/core!1256
2018-08-13 14:06:36 +02:00
M.Dent
b436c4a94c Add support for overriding the default template location and individual templates via .htconfig.php 2018-08-12 19:47:10 -04:00
zotlabs
db1a546aba add table support to markdown 2018-08-12 16:25:14 -07:00
M.Dent
9402f537b6 Fix root not added to internationalized template search 2018-08-12 19:02:11 -04:00
zotlabs
2d29095348 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-08-12 15:10:19 -07:00
zotlabs
ac03b4ccd7 make channel_remove less memory hungry 2018-08-12 15:09:02 -07:00
Mario Vavti
759a18685b Merge remote-tracking branch 'mike/master' into dev 2018-08-12 14:07:16 +02:00
Mario
e07ab65d73 Merge branch 'oauth2-ui-pr' into 'dev'
Oauth2 ui pr

See merge request hubzilla/core!1255
2018-08-12 14:06:24 +02:00
Mario
26f51ece90 Merge branch 'oauth2' into 'dev'
Fixes to OAuth2 connect-with-openid.  Add zothash Claim.  Add zotwebbie Claim.

See merge request hubzilla/core!1254
2018-08-12 14:03:36 +02:00
Mario
99066ae939 Merge branch 'patch-16' into 'dev'
Add translation for missed string

See merge request hubzilla/core!1253

(cherry picked from commit 5ff0f09a45)

d3362dfa Add translation for missed string
2018-08-12 13:59:49 +02:00
Mario
5ff0f09a45 Merge branch 'patch-16' into 'dev'
Add translation for missed string

See merge request hubzilla/core!1253
2018-08-12 13:59:07 +02:00
zotlabs
5afe779ffc prevent json-ld bombing, turn off browser autocomplete on channel sources creation 2018-08-11 16:16:54 -07:00
M.Dent
af042ccf07 OAuth2 UI and settings updates 2018-08-10 13:54:26 -04:00
M.Dent
e587fe5ce8 Add user_id = local_channel() to the where clause of updates 2018-08-10 13:54:07 -04:00
M.Dent
0b31c677f2 Fixes to OAuth2 connect-with-openid. Add zothash Claim. Add zotwebbie Claim. 2018-08-10 12:01:05 -04:00
Max Kostikov
d3362dfa0c Add translation for missed string 2018-08-10 16:56:22 +02:00
Mario Vavti
7890157f52 revert debug comment from the last commit 2018-08-09 23:07:50 +02:00
Mario Vavti
b3d1ea4cd5 fix zid leaking to nonzot sites if markdown is enabled 2018-08-09 17:03:20 +02:00
Mario Vavti
7c842f3170 search form action for channel search needs the channel address
(cherry picked from commit 054c5da294)
2018-08-09 15:50:49 +02:00
Mario Vavti
054c5da294 search form action for channel search needs the channel address 2018-08-09 15:47:57 +02:00
Mario Vavti
5c5a808290 Merge remote-tracking branch 'mike/master' into dev 2018-08-09 11:07:38 +02:00
Mario Vavti
5c30b2f271 update install.txt 2018-08-08 09:10:03 +02:00
Mario
ce2216f544 Merge branch 'patch-15' into 'dev'
Add XMLreader in PHP requirements

See merge request hubzilla/core!1252
2018-08-08 09:07:26 +02:00
zotlabs
1d13cc1601 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-08-06 21:32:45 -07:00
zotlabs
166879b8b0 bring some Zot6 libraries and interfaces to red/hubzilla 2018-08-06 17:43:22 -07:00
zotlabs
aeb9d5cd90 create alter_pdl hook 2018-08-05 23:19:33 -07:00
zotlabs
8e9d076216 ability for addons to create .pdl files and load them automatically 2018-08-04 13:50:49 -07:00
Max Kostikov
0d48cb959f Add XMLreader in PHP requirements 2018-08-03 19:32:51 +02:00
zotlabs
d908f53607 add app_options field 2018-08-02 22:49:30 -07:00
Mario
238551b024 Merge branch 'fixactivityorderwithfilters' into 'master'
Add GET for filtered forums

See merge request hubzilla/core!1251

(cherry picked from commit 4e6539efec)

ee1fde42 Add GET for filtered forums
2018-08-02 20:17:16 +02:00
Mario
4e6539efec Merge branch 'fixactivityorderwithfilters' into 'master'
Add GET for filtered forums

See merge request hubzilla/core!1251
2018-08-02 20:16:25 +02:00
zotlabs
c806279fa9 update certs 2018-08-01 21:32:05 -07:00
DM42.Net (Matt Dent)
ee1fde4262 Add GET for filtered forums 2018-08-01 21:14:48 -04:00
zotlabs
4d0611b7d4 hubzilla core issue #1258 2018-08-01 16:12:44 -07:00
Mario
1358303e42 Merge branch 'dev' into 'dev'
Update Spanish translation

See merge request hubzilla/core!1249

(cherry picked from commit c17f0fb44f)

edf83418 Update Spanish translation
2018-07-31 14:42:18 +02:00
Mario
c17f0fb44f Merge branch 'dev' into 'dev'
Update Spanish translation

See merge request hubzilla/core!1249
2018-07-31 14:42:01 +02:00
Mario Vavti
569cd6c57c Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-07-31 14:39:51 +02:00
zotlabs
0cfaf34a22 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-30 18:11:49 -07:00
zotlabs
e8aeecc4c9 When checking permissions ignore checking site "Block Public" settings in cases where site permissions aren't applicable 2018-07-30 17:41:37 -07:00
Manuel Jiménez Friaza
edf834188d Update Spanish translation 2018-07-30 12:03:03 +02:00
Mario
4e402dca7d Merge branch 'patch-13' into 'dev'
Workaround on possible error with php2po

See merge request hubzilla/core!1247
2018-07-30 10:01:19 +02:00
Mario
7f6bf7170a Merge branch 'patch-9' into 'dev'
Respect navbar translations

See merge request hubzilla/core!1243

(cherry picked from commit cbd8c07265)

05b3237b Update nav.php
2018-07-30 10:00:24 +02:00
Mario
0ed9d3c62c Merge branch 'patch-8' into 'dev'
Fix navbar missed translations

See merge request hubzilla/core!1242

(cherry picked from commit 3a6d3cb396)

0fe7004d Update Apps.php
4fd9d1ee Update Apps.php
2018-07-30 10:00:01 +02:00
gia vec
149071bf0c Update network.php
(cherry picked from commit 8db006d9a1)
2018-07-30 09:48:24 +02:00
Mario
720e691f33 Merge branch 'patch-1' into 'master'
Update network.php

See merge request hubzilla/core!1248
2018-07-30 09:47:41 +02:00
zotlabs
32614e4074 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-29 18:00:56 -07:00
zotlabs
9dc5a3bfc9 this may conflict 2018-07-29 17:59:40 -07:00
gia vec
8db006d9a1 Update network.php 2018-07-29 19:19:37 +02:00
Max Kostikov
cb4afd39bd Workaround on possible error 2018-07-29 16:26:33 +02:00
Max Kostikov
e078caffd8 Update php2po.php 2018-07-29 14:20:01 +02:00
Max Kostikov
90a9febb6c Workaround on possible error 2018-07-29 12:05:53 +02:00
Mario Vavti
d00761628f fix sql empty query error in db update 1216
(cherry picked from commit e4a1286aae)
2018-07-29 08:06:29 +02:00
Mario Vavti
e4a1286aae fix sql empty query error in db update 1216 2018-07-29 08:05:41 +02:00
Mario
08a8011456 Merge branch 'patch-12' into 'dev'
Process msgctxt plurals

See merge request hubzilla/core!1246
2018-07-29 07:14:09 +02:00
Mario Vavti
6c10af29ee verrsion bump 2018-07-29 07:09:46 +02:00
Mario Vavti
ae62d6fb86 wrong class name
(cherry picked from commit 5dbd11c6ed)
2018-07-29 07:05:29 +02:00
zotlabs
d2e0ecd6a3 fix unsanitised xchan_name
(cherry picked from commit 9701516228)
2018-07-29 07:05:07 +02:00
zotlabs
13386ddbd7 SECURITY: sanitise vcard fields
(cherry picked from commit 2367d94a42)
2018-07-29 07:04:38 +02:00
Mario Vavti
643b6f0aa3 version 2018-07-29 07:00:30 +02:00
Mario Vavti
45d262d6c0 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-07-29 06:59:10 +02:00
Mario Vavti
5dbd11c6ed wrong class name 2018-07-29 06:58:35 +02:00
Mario Vavti
3fcb6df0f1 Merge remote-tracking branch 'mike/master' into dev 2018-07-29 06:43:55 +02:00
zotlabs
9701516228 fix unsanitised xchan_name 2018-07-28 17:17:12 -07:00
Max Kostikov
77dfe63d90 Process msgctxt plurals 2018-07-29 02:11:27 +02:00
zotlabs
2367d94a42 SECURITY: sanitise vcard fields 2018-07-28 15:33:20 -07:00
Mario
d85c849668 Merge branch 'patch-11' into 'dev'
Plural form strings export added

See merge request hubzilla/core!1245
2018-07-28 21:23:31 +02:00
Mario
cbd8c07265 Merge branch 'patch-9' into 'dev'
Respect navbar translations

See merge request hubzilla/core!1243
2018-07-28 21:22:51 +02:00
Mario
3a6d3cb396 Merge branch 'patch-8' into 'dev'
Fix navbar missed translations

See merge request hubzilla/core!1242
2018-07-28 21:22:12 +02:00
Mario
6e52f552cf Merge branch 'patch-7' into 'dev'
Russian translation update

See merge request hubzilla/core!1241
2018-07-28 21:20:01 +02:00
Mario
973114caf6 Merge branch 'patch-6' into 'dev'
Fix duplicate transport displaying

See merge request hubzilla/core!1240
2018-07-28 21:19:40 +02:00
zotlabs
17291e04df app update and ownership issues
(cherry picked from commit e28dab17d6)
2018-07-28 21:18:28 +02:00
Max Kostikov
e27e0ca198 Plural form strings export added 2018-07-28 17:36:48 +02:00
Mario Vavti
27329e39e4 Merge remote-tracking branch 'mike/master' into dev 2018-07-28 09:33:17 +02:00
zotlabs
38c2070aab Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-27 15:27:52 -07:00
zotlabs
a0f28708ab don't sync system apps 2018-07-27 15:05:29 -07:00
zotlabs
e25d205a7f app delete issue with base installed apps and app photo being reloaded uneccessarily 2018-07-27 14:36:06 -07:00
zotlabs
e28dab17d6 app update and ownership issues 2018-07-27 13:59:27 -07:00
Max Kostikov
05b3237bae Update nav.php 2018-07-27 11:50:04 +02:00
Max Kostikov
4fd9d1ee5f Update Apps.php 2018-07-27 11:29:38 +02:00
Max Kostikov
0fe7004d38 Update Apps.php 2018-07-27 11:03:02 +02:00
Max Kostikov
06b0dbdfba Update hstrings.php 2018-07-26 12:21:33 +02:00
Max Kostikov
48fb3d3653 Update hmessages.po 2018-07-26 12:20:53 +02:00
Max Kostikov
baa5fd9739 Update passchanged_eml.tpl 2018-07-26 12:19:59 +02:00
Max Kostikov
e01c277c56 Update lostpass_eml.tpl 2018-07-26 12:18:54 +02:00
Mario Vavti
7062a7ce66 fix sql error
(cherry picked from commit ec3a066e4e)
2018-07-26 09:34:48 +02:00
Mario Vavti
ec3a066e4e fix sql error 2018-07-26 09:32:52 +02:00
kostikov
b0c8e75c6e Fix duplicate transport displaying 2018-07-25 22:28:21 +02:00
Mario Vavti
52ad5b7df5 version 3.6 2018-07-25 10:28:52 +02:00
Mario Vavti
1b1d11dcf1 Merge branch '3.6RC' 2018-07-25 10:19:19 +02:00
Mario Vavti
35200e5f1b Merge branch '3.6RC' of https://framagit.org/hubzilla/core into 3.6RC 2018-07-25 10:15:23 +02:00
Mario
d39942902c Merge branch 'patch-4' into 'dev'
Update hmessages.po

See merge request hubzilla/core!1238
2018-07-23 19:57:43 +02:00
Mario
87fc4e6588 Merge branch 'patch-5' into 'dev'
Update hstrings.php

See merge request hubzilla/core!1239
2018-07-23 19:57:10 +02:00
Mario
091ef33f18 Merge branch 'patch-2' into 'dev'
Escape internal quotes in translation on export

See merge request hubzilla/core!1237

(cherry picked from commit 84e57d040b)

64efd07f Escape internal quotes in translation on export
87857fe5 Update hmessages.po
3342fc22 Update hstrings.php
2018-07-23 19:55:25 +02:00
Mario
84e57d040b Merge branch 'patch-2' into 'dev'
Escape internal quotes in translation on export

See merge request hubzilla/core!1237
2018-07-23 19:55:00 +02:00
kostikov
a4f64c02d0 Update hstrings.php 2018-07-23 12:20:50 +02:00
kostikov
278eeb5ee9 Update hmessages.po 2018-07-23 12:19:46 +02:00
kostikov
3342fc2244 Update hstrings.php 2018-07-23 12:15:10 +02:00
kostikov
87857fe5d9 Update hmessages.po 2018-07-23 12:14:33 +02:00
kostikov
64efd07f6b Escape internal quotes in translation on export 2018-07-22 19:39:53 +02:00
Mario Vavti
aa01c2f4db update changelog
(cherry picked from commit 6be66d6df9)
2018-07-21 22:08:12 +02:00
Mario Vavti
6be66d6df9 update changelog 2018-07-21 22:01:59 +02:00
kostikov
740015339d Add var to respect current hstrings.php format
(cherry picked from commit 062633d312)
2018-07-21 11:39:20 +02:00
kostikov
b7778ca1f9 Update php2po.php
(cherry picked from commit f9b18aa62f)
2018-07-21 11:38:35 +02:00
kostikov
ddd77ee6ee Update update_fail_eml.tpl
(cherry picked from commit 8fc7f2aca1)
2018-07-21 11:37:27 +02:00
kostikov
b625b5f645 Update register_verify_eml.tpl
(cherry picked from commit b6c2c8117e)
2018-07-21 11:36:58 +02:00
kostikov
c9e272a78d Update register_open_eml.tpl
(cherry picked from commit 86a42aad16)
2018-07-21 11:35:30 +02:00
kostikov
9bfb63fd98 Update passchanged_eml.tpl
(cherry picked from commit 8e2e09bb16)
2018-07-21 11:35:07 +02:00
kostikov
21ecf54b73 Update lostpass_eml.tpl
(cherry picked from commit 3713aa210f)
2018-07-21 11:34:42 +02:00
kostikov
429e3ce30a Add new file
(cherry picked from commit a65c23546b)
2018-07-21 11:34:14 +02:00
kostikov
26e20d35c2 Update hstrings.php
(cherry picked from commit 790a9155d4)
2018-07-21 11:32:57 +02:00
kostikov
f40406514c Update hmessages.po
(cherry picked from commit f141b845fd)
2018-07-21 11:32:33 +02:00
Mario
a68934f498 Merge branch 'patch-2' into 'dev'
New russian templates

See merge request hubzilla/core!1233
2018-07-21 11:29:09 +02:00
Mario
95ef78ab23 Merge branch 'patch-1' into 'dev'
Add var to respect current hstrings.php format

See merge request hubzilla/core!1231
2018-07-21 11:27:49 +02:00
Mario
5be0743751 Merge branch 'dev' into 'dev'
Update russian translation for 3.6

See merge request hubzilla/core!1230
2018-07-21 11:26:43 +02:00
kostikov
8fc7f2aca1 Update update_fail_eml.tpl 2018-07-20 19:28:45 +02:00
kostikov
4db4ab9798 Create register_verify_member.tpl 2018-07-20 19:28:13 +02:00
kostikov
b6c2c8117e Update register_verify_eml.tpl 2018-07-20 19:27:29 +02:00
kostikov
86a42aad16 Update register_open_eml.tpl 2018-07-20 19:26:54 +02:00
kostikov
8e2e09bb16 Update passchanged_eml.tpl 2018-07-20 19:26:24 +02:00
kostikov
3713aa210f Update lostpass_eml.tpl 2018-07-20 19:25:46 +02:00
kostikov
a65c23546b Add new file 2018-07-20 19:21:58 +02:00
Mario Vavti
ed79bef51b prevent double file uploads when dropping files into jot
(cherry picked from commit f6de91bf0f)
2018-07-20 16:45:50 +02:00
Mario Vavti
f6de91bf0f prevent double file uploads when dropping files into jot 2018-07-20 16:44:43 +02:00
kostikov
062633d312 Add var to respect current hstrings.php format 2018-07-20 16:40:35 +02:00
Mario Vavti
0cde7f9897 fix jot drag and drop
(cherry picked from commit c72f6e6ea8)
2018-07-20 10:43:38 +02:00
Mario Vavti
4a54699c1f Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-07-20 10:42:45 +02:00
Mario Vavti
c72f6e6ea8 fix jot drag and drop 2018-07-20 10:42:16 +02:00
kostikov
790a9155d4 Update hstrings.php 2018-07-20 10:25:03 +02:00
kostikov
f141b845fd Update hmessages.po 2018-07-20 10:24:23 +02:00
Mario
a274c87cb3 Merge branch 'dev' into 'dev'
Update php2po.php

See merge request hubzilla/core!1229
2018-07-20 09:21:35 +02:00
zotlabs
85e21ce617 checkjs fix ($page not bin-hex in all cases)
(cherry picked from commit a94c9d2709)
2018-07-20 09:16:35 +02:00
zotlabs
157a9e895c fix the filtered query string so it can potentially be re-used as is.
(cherry picked from commit 6adbb93f0a)
2018-07-20 09:16:09 +02:00
zotlabs
a94c9d2709 checkjs fix ($page not bin-hex in all cases) 2018-07-19 17:19:19 -07:00
kostikov
f9b18aa62f Update php2po.php 2018-07-20 00:22:04 +02:00
zotlabs
0866cea72c Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-19 13:45:30 -07:00
zotlabs
6adbb93f0a fix the filtered query string so it can potentially be re-used as is. 2018-07-19 13:42:57 -07:00
Mario Vavti
7e2635adfe RC1 2018-07-19 12:27:43 +02:00
Mario
b655d04b34 version 3.4.2 2018-07-19 11:57:35 +02:00
Mario
7f84933cab compatibility fix for future versions 2018-07-19 11:52:12 +02:00
zotlabs
36220fdde8 typo
(cherry picked from commit ec852b0c8d)
2018-07-19 09:21:35 +02:00
zotlabs
67848c03ed query filter was a bit greedy
(cherry picked from commit a05c8ff66b)
2018-07-19 09:21:14 +02:00
Mario
685d05f98b Merge branch 'cherry-pick-5ce50d0a' into '3.6RC'
mangled urls on redirects

See merge request hubzilla/core!1228
2018-07-19 09:20:45 +02:00
zotlabs
931afe98b1 mangled urls on redirects
(cherry picked from commit 5ce50d0a2e)
2018-07-19 09:19:33 +02:00
Mario Vavti
fe0e00f8f8 Merge remote-tracking branch 'mike/master' into dev 2018-07-19 09:12:33 +02:00
zotlabs
13d19d42cb Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-18 19:14:21 -07:00
zotlabs
ec852b0c8d typo 2018-07-18 17:51:10 -07:00
zotlabs
a05c8ff66b query filter was a bit greedy 2018-07-18 17:48:23 -07:00
zotlabs
5ce50d0a2e mangled urls on redirects 2018-07-18 17:05:38 -07:00
Mario Vavti
dfbdeafa39 Merge remote-tracking branch 'mike/master' into dev 2018-07-18 20:59:45 +02:00
Mario Vavti
4a6f775334 set the correct album name when moving photos
(cherry picked from commit eb322e8312)
2018-07-18 13:20:20 +02:00
Mario Vavti
5fa3e10701 set the correct album name when moving photos
(cherry picked from commit eb322e8312)
2018-07-18 13:19:35 +02:00
Mario Vavti
eb322e8312 set the correct album name when moving photos 2018-07-18 13:18:37 +02:00
Mario Vavti
c2e819771f version 3.7 2018-07-18 11:56:26 +02:00
Mario Vavti
896d29d0c0 update composer autoload cache 2018-07-18 11:52:42 +02:00
Mario Vavti
4c633a9fb8 update strings 2018-07-18 11:49:32 +02:00
Mario Vavti
5fd1674d50 version 3.6RC 2018-07-18 11:39:22 +02:00
kostikov
67cbeaa3d4 Update hmessages.po
(cherry picked from commit cbab7d2150)
2018-07-18 08:28:18 +02:00
kostikov
23f3d554b8 Fix wrong plural function logic
(cherry picked from commit 4284088611)
2018-07-18 08:27:53 +02:00
Mario
95355ddec0 Merge branch 'patch-1' into 'master'
Fix wrong plural function logic

See merge request hubzilla/core!1226
2018-07-18 08:27:21 +02:00
kostikov
cbab7d2150 Update hmessages.po 2018-07-18 00:28:04 +02:00
kostikov
4284088611 Fix wrong plural function logic 2018-07-17 21:27:08 +02:00
zotlabs
744d548380 util/typo - perform php -l and then include the file. We'll catch a bunch more stuff. 2018-07-17 05:01:22 -07:00
zotlabs
82a4bbd571 spellcheck 2018-07-15 23:32:09 -07:00
zotlabs
c187461985 update_addon_repo: scan the addon dir after updating and remove dead symlinks (which represent deprecated/removed addons). 2018-07-15 21:34:06 -07:00
zotlabs
cc91db55b7 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-07-15 18:43:41 -07:00
Mario Vavti
bb70223509 when calling timeago() from mod_mail.js it is called before the translations are applied - move the call to main.js and be more specific with the selector to not trigger calls for other modules (eg network) which is handled elsewhere to not be to much of an performance hog (to many dates at a time) 2018-07-13 11:00:37 +02:00
Mario Vavti
98fb2ec639 let timeago render the date 2018-07-13 10:16:07 +02:00
Mario Vavti
a8cef79b1a let timeago render the date 2018-07-13 10:13:11 +02:00
Mario Vavti
5076e38c1c update jquery.timeago lib 2018-07-13 10:12:11 +02:00
Mario
e000d98cc5 Merge branch 'hookableCSP-mr' into 'dev'
Hookable csp mr

See merge request hubzilla/core!1225
2018-07-13 09:34:48 +02:00
M. Dent
38cc88c861 Hookable csp mr 2018-07-13 09:34:48 +02:00
zotlabs
d71e70bedf functions to support module and widget registration by plugins. These have identical construction to core modules and widgets and are registered just like hooks during addon load. Also additional Apps functions addon_app_installed() and system_app_installed() which will eventually replace feature_installed() for features which are converted to apps. The convention being used is that the module associated with the app calls the appropriate *_app_installed() function and if not present emits descriptive text about the app and exits. This allows one to click on an 'available' app and learn about it. Once installed, the app module behaves normally and may offer functionality or what once were addon settings on the settings/featured page. Refer to zap-addons in the zap repository for examples of how this is being used to eliminate the 'additional features' and 'addon settings' pages. 2018-07-12 16:23:32 -07:00
Mario Vavti
48e74035f2 Merge remote-tracking branch 'mike/master' into dev 2018-07-12 09:16:52 +02:00
zotlabs
38bccecc04 fix to cart behaviour 2018-07-11 18:00:47 -07:00
Andrew Manning
3ebe35f7f7 Merge branch 'patch-1' into 'dev'
Update hstrings.php - spelling - Privatsphäre

See merge request hubzilla/core!1223
2018-07-10 01:36:14 +02:00
Heiko Förster
b81f1111d1 Update hstrings.php - spelling - Privatsphäre 2018-07-08 16:48:37 +02:00
Mario Vavti
ac8db6479e fix css regression 2018-07-07 08:14:11 +02:00
Mario Vavti
d903772831 this is messing with names containing a comma and is superfluous now 2018-07-06 08:44:25 +02:00
zotlabs
cc71e507cb don't provide manage apps button when viewing all available 2018-07-05 22:03:41 -07:00
zotlabs
fe44ebee93 change to import system apps at most once a day per person 2018-07-05 21:55:03 -07:00
zotlabs
c80e009cf3 app store fixes 2018-07-05 21:46:34 -07:00
zotlabs
f6e8ce5516 appstore changes 2018-07-04 23:20:35 -07:00
zotlabs
f808a2b5a1 issue syncing pageflags 2018-07-04 19:53:51 -07:00
zotlabs
51a2e64a89 issue syncing pageflags 2018-07-04 19:51:16 -07:00
zotlabs
bf24a106ce Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-07-04 19:07:52 -07:00
zotlabs
1387b88ba4 remove manage group link from activity_filter, already in personal menu 2018-07-04 19:04:12 -07:00
Mario Vavti
d9ece80fda order nouveau by created instead of received since ordering by received returns unexpected results once old expired items get re-imported 2018-07-04 10:55:38 +02:00
Mario Vavti
b88a9c2627 Revert "add the missing link to manage privacy groups"
This reverts commit c28e27357a.
2018-07-04 10:53:07 +02:00
zotlabs
18dbc490fe remove broken include path hack 2018-07-03 18:26:34 -07:00
zotlabs
d753492382 bad merge 2018-07-01 22:48:05 -07:00
zotlabs
8c26db63dd some changes to support plume 2018-07-01 19:12:45 -07:00
zotlabs
5d7d30f789 propagate expired posts to other networks 2018-06-30 23:57:25 -07:00
zotlabs
63a3f5149a be very precise about what a url looks like 2018-06-30 15:47:06 -07:00
zotlabs
c28e27357a add the missing link to manage privacy groups 2018-06-28 23:17:50 -07:00
zotlabs
fa6e5e4d75 plugins -> addons 2018-06-28 16:43:22 -07:00
zotlabs
cae0a26ac0 String change to reflect the current forum tagging method 2018-06-28 13:38:15 -07:00
zotlabs
156010050c imagick converter: -thumbnail doesn't preserve exif, -resize does 2018-06-26 17:19:32 -07:00
zotlabs
524551a05c do not include system channels in directory results 2018-06-25 23:20:02 -07:00
zotlabs
b89387d608 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-06-25 20:58:23 -07:00
Mario Vavti
cef1c09db6 Merge remote-tracking branch 'mike/master' into dev 2018-06-25 23:49:11 +02:00
zotlabs
712759ea4b disable log noise until it is needed 2018-06-25 13:42:21 -07:00
zotlabs
66fc12c928 crc32 is potentially reversible 2018-06-25 13:33:23 -07:00
zotlabs
f66fb8e2a8 SECURITY: logging: hash the session_id in case somebody posts log snippets from active sessions; also provide a hashed process_id if using a daemon process (with no session) for easier tracking of related log events 2018-06-25 13:20:12 -07:00
Mario Vavti
bb786b1f61 version 2018-06-25 14:30:52 +02:00
Mario Vavti
62610b5ec0 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-06-25 14:29:32 +02:00
Mario Vavti
2594178158 updates justified gallery lib to version 3.7 and minor fixes for full template 2018-06-25 14:29:07 +02:00
zotlabs
4866ed5283 remove the white-space pre-wrap property on code blocks. This should probably be done with the word-break property instead 2018-06-24 21:56:58 -07:00
zotlabs
86e93664d0 remote_self wasn't working correctly 2018-06-24 16:56:23 -07:00
Mike Macgirvin
07f0043428 Merge branch 'dev' into 'dev'
2 times the same ;)

See merge request hubzilla/core!1222
2018-06-20 07:50:06 +02:00
Mike Macgirvin
e4f15c078a Merge branch 'patch-1' into 'dev'
NL strings: fix simple error

See merge request hubzilla/core!1221
2018-06-20 07:49:43 +02:00
gia vec
35f29b5d8a Update roadmap.bb 2018-06-19 23:04:50 +02:00
zotlabs
3716f4e809 hiding a channel from the directory also hides them from the cloud rootdir 2018-06-18 22:57:38 -07:00
zotlabs
6cf040d3ee whitespace 2018-06-18 21:11:39 -07:00
zotlabs
48a25b1b85 channel sources: add 'resend' option to discard original author - similar to the Friendica remote_self setting 2018-06-18 20:44:59 -07:00
zotlabs
d448742ae5 translate dos line endings 2018-06-18 20:18:29 -07:00
zotlabs
f801f52274 provide flag to collect_recipients to exclude privacy groups (for federation plugin use) 2018-06-18 17:07:20 -07:00
jeroenpraat
eabbad176d fix simple error 2018-06-18 23:20:35 +02:00
jeroenpraat
e6d7f22ba9 fix simple error 2018-06-18 23:17:29 +02:00
zotlabs
36d73b3da9 consolidate the various project roadmap files and remove stuff that's either finished or abandoned 2018-06-17 21:41:20 -07:00
zotlabs
dcd8fb289e remove admin docs on upgrading from redmatrix; operation is no longer supported 2018-06-17 21:13:46 -07:00
zotlabs
0dc266153d This effectively reverts 438ce44a which symlinked doc/es to a non-existent file (doc/doc/es-es) 2018-06-17 21:01:22 -07:00
zotlabs
7850ecbd95 remove several unused/unreferenced templates 2018-06-17 20:53:05 -07:00
zotlabs
1cb60c7f5e Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-06-17 17:47:04 -07:00
zotlabs
e4ed0f8acd owa: htmlentity encoding encountered in authentication workflow (possibly introduced during Apache mod_rewrite with QSA flag) 2018-06-17 17:30:09 -07:00
Mario
28043726e6 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-06-17 17:00:17 +02:00
Mario
9c5df51141 some work on mod group 2018-06-17 16:58:12 +02:00
zotlabs
eedfb7de32 slightly more memory efficient way to drop posts of removed connections 2018-06-15 16:28:36 -07:00
zotlabs
3fc955abfd hubzilla core issue #1227 - affinity slider unable to reach 0,99 when slider saved default changes 2018-06-15 15:34:27 -07:00
zotlabs
615fa1119f apply changes to slider defaults across all modules that use buildQuery for updates 2018-06-15 15:32:12 -07:00
zotlabs
7e736c5359 apply changes to slider defaults across all modules that use buildQuery for updates 2018-06-15 15:21:19 -07:00
zotlabs
2f3c3db020 hubzilla core issue #1227 - affinity slider unable to reach 0,99 when slider saved default changes 2018-06-15 02:02:03 -07:00
zotlabs
967d4da30a wiki: word-wrap code on any character 2018-06-14 22:46:20 -07:00
zotlabs
7a144b90fb re-implement/refactor getQuotaInfo() on DAV storage 2018-06-14 20:40:25 -07:00
zotlabs
4a028b6015 Merge branch 'dev' of https://framagit.org/hubzilla/core into xdev_merge 2018-06-13 21:36:29 -07:00
zotlabs
8da0f9d356 optionally report total available space when uploading 2018-06-13 21:06:56 -07:00
Mike Macgirvin
fc396f16ff Merge branch 'dev' into 'dev'
change repo links

See merge request hubzilla/core!1220
2018-06-14 05:46:28 +02:00
zotlabs
b5e4a5f51c SECURITY: provide option to disable the cloud 'root' directory and make the cloud module require a target channel nickname. This is a low impact change as there is currently no disclosure of private information. The presence of a file browser for all the channels on the site could be (and is reported to be) a concern to some people and there is no reason why it shouldn't be optional. 2018-06-13 20:27:10 -07:00
gia vec
77ba647778 Update README.md
(cherry picked from commit 7d73543b84507b74c8058da7dd062d7949c34d61)
2018-06-14 04:33:34 +02:00
gia vec
10491294d8 Update hubzilla-setup.sh
(cherry picked from commit 95f2eb68ca38976b7ca9d3f5c2d89c923d5ef4b5)
2018-06-14 04:26:21 +02:00
zotlabs
65cbc7c2bb uid is integer 2018-06-13 16:37:16 -07:00
zotlabs
1a75e3c24a Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-06-13 16:29:56 -07:00
zotlabs
b0b67fbcc4 Merge branch 'master' of ../hz into dev 2018-06-13 16:28:08 -07:00
zotlabs
254a6be277 null db fields in mod_invite 2018-06-13 16:25:50 -07:00
Mike Macgirvin
fdf920b374 Merge branch 'master' into 'master'
Master

See merge request hubzilla/core!1218
2018-06-13 03:11:05 +02:00
Mike Macgirvin
dffd82cb24 Merge branch 'remove-github-from-README' into 'master'
remove github from link to INSTALL.txt

See merge request hubzilla/core!1215
2018-06-13 03:09:39 +02:00
Mike Macgirvin
633693c94b Merge branch 'fix-addons-links' into 'dev'
fix links to addons repository

See merge request hubzilla/core!1216
2018-06-13 03:07:05 +02:00
gia vec
9840d1ce73 Update hstrings.php 2018-06-12 20:47:19 +02:00
gia vec
6a45bd4372 Update hmessages.po 2018-06-12 20:42:16 +02:00
Herbert Thielen
b361fb4f89 fix links to addons repository 2018-06-11 15:54:22 +02:00
Herbert Thielen
530bc996ca remove github from link to INSTALL.txt 2018-06-11 15:26:30 +02:00
zotlabs
2f2bd03b15 fixes for immediate expire, channel_active not initialised in DB 2018-06-10 22:19:51 -07:00
zotlabs
a8f179145b Merge branch 'master' of ../hz into dev 2018-06-10 22:16:39 -07:00
zotlabs
912ccb31a1 hubzilla core issue #1218 2018-06-10 19:26:35 -07:00
zotlabs
6959c9e423 fixes for immediate expire, channel_active not initialised in DB 2018-06-10 15:27:55 -07:00
Mario Vavti
53363d6808 fix issue #1221
(cherry picked from commit d0f7b1d9b7)
2018-06-10 17:06:12 +02:00
Mario Vavti
1b9a350469 Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-06-10 17:05:05 +02:00
Mario Vavti
d0f7b1d9b7 fix issue #1221 2018-06-10 17:04:34 +02:00
Mario
86c0abe67e Merge branch 'dev' into 'dev'
Update symbolic link doc/es

See merge request hubzilla/core!1214

(cherry picked from commit 46cc64f2d8)

438ce44a Update symbolic link doc/es
2018-06-10 16:54:37 +02:00
Mario
46cc64f2d8 Merge branch 'dev' into 'dev'
Update symbolic link doc/es

See merge request hubzilla/core!1214
2018-06-10 16:54:22 +02:00
Mario Vavti
9e29c13678 fix issue #1219 2018-06-09 16:38:15 +02:00
Manuel Jiménez Friaza
438ce44af9 Update symbolic link doc/es 2018-06-09 13:41:13 +02:00
Mario Vavti
e37ccb7a63 move cid filter js to the widget 2018-06-09 13:08:14 +02:00
Mario Vavti
afaa8012c8 bump version 2018-06-09 11:04:56 +02:00
Mario Vavti
c4778e5e24 restrict cid filter to unthreaded order (makes much more sense that way imho and the query is a lot faster) and slighty change order of the filters 2018-06-09 10:58:01 +02:00
Mario Vavti
d5ee8d80ab Merge branch 'dev' of https://framagit.org/hubzilla/core into dev 2018-06-08 23:19:56 +02:00
Mario Vavti
1fbc131469 if unthreaded and cid and not pf, query author only 2018-06-08 23:19:30 +02:00
Mario Vavti
468af29e3e new feature filter network by name 2018-06-08 23:03:05 +02:00
Mario
b05e7943c2 Merge branch 'dev' into 'dev'
Update github.com git repo URLs with framagit.org URLs

See merge request hubzilla/core!1212
2018-06-08 21:04:21 +02:00
Mario
dbf0c1893c Merge branch 'dev' into 'dev'
Update doc/es-es

See merge request hubzilla/core!1213
2018-06-08 21:02:07 +02:00
Manuel Jiménez Friaza
950006a4de Update doc/es-es 2018-06-08 12:49:21 +02:00
Mario Vavti
2f7dfb0286 update changelog
(cherry picked from commit 7c98aea524)
2018-06-08 12:17:33 +02:00
Mario Vavti
7c98aea524 update changelog 2018-06-08 12:16:47 +02:00
Mario
688c5bdd20 bump version 2018-06-08 12:05:06 +02:00
Andrew Manning
4feff1cf89 Update github.com git repo URLs with framagit.org URLs 2018-06-08 05:37:23 -04:00
Andrew Manning
df2d181602 Merge branch 'dev' of framagit.org:hubzilla/core into dev 2018-06-08 05:22:01 -04:00
Mario Vavti
752a9d904c DB update to fix wrong hubloc_url for activitypub hublocs
(cherry picked from commit eb04dbc5ce)
2018-06-08 09:41:35 +02:00
Mario Vavti
a5b9fbaf00 github to framagit transition
(cherry picked from commit 7bf1c5f27b)
2018-06-08 09:05:27 +02:00
Mario Vavti
7bf1c5f27b github to framagit transition 2018-06-08 09:04:19 +02:00
zotlabs
d841303c04 we probably don't need to delivery local items more than once
(cherry picked from commit 139c39c2ce)
2018-06-08 08:38:53 +02:00
zotlabs
5e5b9895df when removing a connection, use the same rules as expire: don't remove items that are starred, filed, or that you replied to.
(cherry picked from commit 5d83469621)
2018-06-08 08:37:36 +02:00
zotlabs
ac8f798e56 don't show forums in forum widget if archived flag is set
(cherry picked from commit 7c05500392)
2018-06-08 08:37:13 +02:00
Manuel Jiménez Friaza
5c8ec5cce4 Initial translations in doc/es-es
(cherry picked from commit ea8ff7037a)
2018-06-08 08:36:19 +02:00
Mario Vavti
19e509d997 escape query string
(cherry picked from commit b3928f3d2a)
2018-06-08 08:33:38 +02:00
Mario Vavti
38b230a128 typo
(cherry picked from commit b47fdd748f)
2018-06-08 08:31:02 +02:00
Mario Vavti
b47fdd748f typo 2018-06-08 08:30:22 +02:00
gia vec
c69c7db4f7 Update developers.bb
(cherry picked from commit 009ecb0ff4)
2018-06-08 08:27:11 +02:00
gia vec
de20d8f73a Update Developers.md
(cherry picked from commit 68ffddafb1)
2018-06-08 08:26:46 +02:00
Mario
5deecfea28 Merge branch 'master' into 'master'
Master

See merge request hubzilla/core!1211
2018-06-08 08:26:15 +02:00
Mario Vavti
dfa48ba17c fixes for search_item.tpl 2018-06-07 23:24:36 +02:00
Mario Vavti
b3928f3d2a escape query string 2018-06-07 22:45:07 +02:00
gia vec
009ecb0ff4 Update developers.bb 2018-06-07 22:13:18 +02:00
gia vec
68ffddafb1 Update Developers.md 2018-06-07 22:10:32 +02:00
Mario Vavti
d3bc50e18d do not query for parents if $conv and $nouveau are set 2018-06-07 21:58:09 +02:00
zotlabs
d3f741a8b6 update a number of links in the code
(cherry picked from commit 2c7597066c)
2018-06-07 14:19:31 +02:00
Mario Vavti
ad4e8fd7f5 Merge remote-tracking branch 'mike/master' into dev 2018-06-07 14:00:18 +02:00
zotlabs
2c7597066c update a number of links in the code 2018-06-06 17:12:20 -07:00
zotlabs
c06c2650e5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-06-06 16:49:07 -07:00
Mario Vavti
9d664df993 remove gravizot.de from directory fallback servers due to owners request 2018-06-06 22:14:10 +02:00
Mario Vavti
89ecc07eb0 update install instructions 2018-06-06 22:13:27 +02:00
Mario Vavti
9ffb10c0e6 update install instructions 2018-06-06 22:11:55 +02:00
Mario Vavti
dd4b8529c2 Merge remote-tracking branch 'mike/master' into dev 2018-06-06 20:13:03 +02:00
Mario Vavti
5d1d6299cd add the pf argument to the forum notification links 2018-06-06 18:02:25 +02:00
Mario Vavti
4e1c32e610 remove gravizot.de from directory fallback servers due to owners request 2018-06-06 17:59:13 +02:00
zotlabs
d6f98ab88e some work to make menus editable by visitors with webpage write permissions; this needed to revise the link structure so that the page specified an owner channel in the url. Otherwise we could only operate on menus owned by local_channel(). Have done some basic regression testing but have not yet fully tested guest editing functionality. 2018-06-05 21:12:42 -07:00
Mario Vavti
7188e719ef rely on the pf argument to determine if we deal with a forum or not. xchan_pubforum is not set for all public forums in the forum filters for some reason. 2018-06-05 11:56:30 +02:00
Mario Vavti
2328dfc851 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-06-05 10:36:54 +02:00
Mario Vavti
30c00df4f3 Merge remote-tracking branch 'mike/master' into dev 2018-06-05 10:36:37 +02:00
zotlabs
e1b85a361c photos not syncing properly if destination is a postgres site 2018-06-04 16:36:13 -07:00
git-marijus
915328d92a Merge pull request #1210 from mjfriaza/dev
Initial Spanish translations in doc/es-es
2018-06-04 16:00:29 +02:00
Mario Vavti
6019a34da2 be specific about the term type and do not sort the results 2018-06-04 15:54:18 +02:00
zotlabs
5a9e6c8a69 sort out some mismatched hovertips on the activity filter 2018-06-03 23:38:03 -07:00
zotlabs
57231a8807 wrong level 2018-06-03 23:16:40 -07:00
zotlabs
dd9f7ef6e9 fix submenunavigation on activity filters 2018-06-03 23:14:01 -07:00
Mario Vavti
8b76b5a0a6 improve network cid query 2018-06-03 23:03:30 +02:00
Mario Vavti
3d3e7bafd5 distinct is needed or it can heavily impact pagination in certain situations (5 per page instead of 20). Add ordering to the select clause to mitigate errors in postgres and add item_thread_top = 1 for slightly better performance. 2018-06-03 17:31:50 +02:00
Mario Vavti
a42ff1e6d4 missing $perm_sql 2018-06-03 13:27:06 +02:00
Manuel Jiménez Friaza
ea8ff7037a Initial translations in doc/es-es 2018-06-03 12:29:27 +02:00
Mario Vavti
2438af1cb5 the pf argument is required here for some functionality in /network 2018-06-03 00:16:46 +02:00
Mario Vavti
a32626e489 add the archived flag 2018-06-02 22:42:20 +02:00
Mario Vavti
3a9f149c80 Merge remote-tracking branch 'mike/master' into dev 2018-06-02 22:39:36 +02:00
Mario Vavti
a0e4f7ddb1 respect the privacy group feature setting in nav 2018-06-02 22:26:08 +02:00
Mario Vavti
8189408190 finalize filters and forum notifications 2018-06-02 22:11:11 +02:00
Mario Vavti
db0a3a7534 some more work on forum notifications 2018-06-02 15:39:38 +02:00
zotlabs
5f612521da Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-06-02 00:01:19 -07:00
Mario Vavti
53efd4e470 unread forum notifications - wip/unfinished 2018-06-01 23:22:52 +02:00
Mario Vavti
22a9e4c9a9 add manage privacy groups entry to the panel channel menu dropdown for now 2018-06-01 21:52:54 +02:00
Mario Vavti
56f0244360 fixes for css fix 2018-06-01 20:59:28 +02:00
Mario Vavti
60a7e68b1b css fix 2018-06-01 13:39:29 +02:00
Mario Vavti
ec6d4f8ac3 add hover effect to dropdown caret 2018-06-01 13:30:02 +02:00
zotlabs
a6ab3dd36a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-06-01 03:43:11 -07:00
Mario Vavti
6bf0f4225c move file and groups filter to submenu 2018-06-01 12:11:07 +02:00
zotlabs
4df5d44ef9 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-31 22:25:01 -07:00
zotlabs
dd962027cc proper pronoun 2018-05-31 21:14:12 -07:00
zotlabs
7c05500392 don't show forums in forum widget if archived flag is set 2018-05-31 16:17:24 -07:00
zotlabs
5d83469621 when removing a connection, use the same rules as expire: don't remove items that are starred, filed, or that you replied to. 2018-05-31 16:11:51 -07:00
Mario Vavti
d03c27d18c implement reset button for filters 2018-05-31 14:02:34 +02:00
Mario Vavti
7e8c7f86f0 change some strings 2018-05-31 13:13:46 +02:00
Mario Vavti
b438ffead4 Merge remote-tracking branch 'mike/master' into dev 2018-05-31 13:06:33 +02:00
Mario Vavti
cbaaa1c57f merge groups and filed posts into activity filters 2018-05-31 13:05:32 +02:00
zotlabs
f0690aadcc typo in unused function 2018-05-30 23:40:01 -07:00
zotlabs
fc31ecdab0 autocomplete private mail addresses based on substring in either the name or webbie (prevously required an '@' to trigger a webbie search) 2018-05-30 17:30:17 -07:00
Mario Vavti
6bfc5aa96c strpos does not work with arrays :( 2018-05-30 23:15:43 +02:00
Mario Vavti
5505f5fa02 restrict the network/channel navbar search to content and hashtags 2018-05-30 22:55:28 +02:00
Mario Vavti
6349a7417f make navbar search use the module search function in /network and /channel 2018-05-30 22:40:22 +02:00
Mario Vavti
e1a55ba471 remove redundant css from default.css 2018-05-30 20:18:13 +02:00
Mario Vavti
881406f82b remove redundant reference for order 2018-05-30 14:54:39 +02:00
Mario Vavti
293e405f5b just query for data we actually need 2018-05-30 14:09:24 +02:00
Mario Vavti
8d6441704b add widget files and templates 2018-05-30 14:06:18 +02:00
Mario Vavti
9fcb3bf2e8 first cut on restructuring the previously called network tabs 2018-05-30 14:02:58 +02:00
zotlabs
7d088c8d56 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-29 17:51:36 -07:00
zotlabs
ed3d3b6f27 provide possibility of using different orderings (post, commented) on channel page 2018-05-29 17:35:44 -07:00
Mario Vavti
dcd5f00077 Merge remote-tracking branch 'mike/master' into dev 2018-05-29 09:04:45 +02:00
Manuel Jiménez Friaza
4aa9549828 Some stuff of the Spanish Hubzilla 2018-05-29 08:52:49 +02:00
git-marijus
bca3113fba Merge pull request #1202 from aninf-wo/dev
include photos.php
2018-05-29 08:41:31 +02:00
git-marijus
a8a2c806f2 Merge pull request #1198 from mjfriaza/dev
Some stuff of the Spanish Hubzilla
2018-05-29 08:41:00 +02:00
git-marijus
e00c5c6bf1 Merge pull request #1197 from galettesaucisse/patch-52
Update hstrings.php
2018-05-29 08:40:27 +02:00
git-marijus
7e8c895ccd Merge pull request #1196 from galettesaucisse/patch-51
Update hmessages.po
2018-05-29 08:40:13 +02:00
zotlabs
139c39c2ce we probably don't need to delivery local items more than once 2018-05-28 22:23:40 -07:00
Mario Vavti
6bae91dd7e Merge remote-tracking branch 'mike/master' into dev 2018-05-28 14:59:10 +02:00
zotlabs
c115e8ee60 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-27 21:10:52 -07:00
zotlabs
ddebbcc0a0 hubzilla issue #1200 2018-05-27 17:46:25 -07:00
Herbert Thielen
4f3be92a0d include photos.php
required for photo_calculate_scale()
2018-05-27 17:57:35 +02:00
Mario Vavti
9655b27f81 fix js error with catalan language (unescaped strings) 2018-05-27 12:21:20 +02:00
Mario Vavti
5a475453ab fix js error with catalan language (unescaped strings) 2018-05-27 12:20:07 +02:00
Mario Vavti
eb04dbc5ce DB update to fix wrong hubloc_url for activitypub hublocs 2018-05-26 21:15:22 +02:00
Manuel Jiménez Friaza
2bf76928cc Some stuff of the Spanish Hubzilla 2018-05-26 18:09:22 +02:00
Galette Saucisse
89d97c556a Update hstrings.php 2018-05-26 09:18:41 +02:00
Galette Saucisse
4ff2b8ed1b Update hmessages.po 2018-05-26 09:17:04 +02:00
Andrew Manning
ed17e8a649 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-05-25 20:07:31 -04:00
Mario Vavti
33700e9cf4 differentiate between direct messages and followers-only messages 2018-05-25 15:29:59 +02:00
git-marijus
13b3594ff3 Merge pull request #1191 from jeroenpraat/master
Finaly update of Dutch language strings
2018-05-25 12:37:11 +02:00
Mario Vavti
eebeb450c3 Merge remote-tracking branch 'mike/master' into dev 2018-05-25 12:34:59 +02:00
Mario Vavti
0fe449ba33 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-05-25 12:34:35 +02:00
zotlabs
cd4454100b alternate fix for z_check_dns 2018-05-24 16:32:21 -07:00
Jeroen
fb060c27ef Finaly update of Dutch language strings
Already in dev, but it's up to Mario or Mike to decide if the master may be updated too
2018-05-24 18:25:28 +02:00
Jeroen
fcd9e115c2 Finaly an update of Dutch language strings 2018-05-24 18:22:09 +02:00
git-marijus
cf00a9dbfc Merge pull request #1190 from fadelkon/dev
Update catalan translation for sources changes up to Apr 23rd 2018
2018-05-24 11:55:47 +02:00
git-marijus
bace238e9f Merge pull request #1183 from galettesaucisse/patch-50
Create TermsOfService.md
2018-05-24 11:54:09 +02:00
git-marijus
7586bc9dcf Merge pull request #1182 from galettesaucisse/patch-49
Create gdpr1.md
2018-05-24 11:53:50 +02:00
antil0pa
7a294c3843 Update remote_friends_common.tpl
Found an improperly closed <div> tag. It breaks the way widget are displayed on the page.
2018-05-24 11:50:35 +02:00
git-marijus
2599d78d0c Merge pull request #1185 from antil0pa/patch-1
Update remote_friends_common.tpl
2018-05-24 11:49:35 +02:00
Andrew Manning
fc6b337bbb Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-05-24 05:35:50 -04:00
fadelkon
ea17b46e94 Update catalan translation (both po and php) for sources changes up to Apr 23rd 2018, 07:35. 2018-05-24 03:59:01 +02:00
Mario Vavti
9cf8931136 paint the locks on private activitypub items red. their privacy model is "slightly" different from ours 2018-05-23 22:11:13 +02:00
zotlabs
afb29176a4 deal with db failure gracefully 2018-05-23 02:33:46 -07:00
antil0pa
1da0042ee5 Update remote_friends_common.tpl
Found an improperly closed <div> tag. It breaks the way widget are displayed on the page.
2018-05-22 16:24:04 +02:00
zotlabs
76d8e59e9b Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-21 21:15:24 -07:00
zotlabs
1061027071 new_channel - make text strings translatable and use the name as a base for the nick if you try to create without entering a nick 2018-05-21 20:17:17 -07:00
zotlabs
a403611ac9 update response types 2018-05-21 19:34:03 -07:00
zotlabs
2b3f931c85 oauth2 discovery per draft-ietf-oauth-discovery-10 2018-05-21 19:25:03 -07:00
zotlabs
9bf26cee6d add hook 'get_system_apps' 2018-05-21 16:19:17 -07:00
zotlabs
d9066ef26b not null violation oauth1 2018-05-21 13:37:55 -07:00
Mario Vavti
4610fa2774 address globbing issue in #1170 2018-05-21 20:01:45 +02:00
Mario Vavti
fff720c00d address globbing issue in #1170 2018-05-21 20:01:03 +02:00
Galette Saucisse
7e26200510 Update gdpr1.md 2018-05-21 10:25:03 +02:00
Galette Saucisse
1dbf89362f Update gdpr1.md 2018-05-21 10:22:19 +02:00
Galette Saucisse
cc1453a8de Update gdpr1.md 2018-05-21 10:16:39 +02:00
Galette Saucisse
a8def37dcf Create TermsOfService.md 2018-05-21 10:08:00 +02:00
Galette Saucisse
355a9ac7ee Create gdpr1.md 2018-05-21 10:05:17 +02:00
Mario Vavti
a8274bbfb3 missing permission description 2018-05-21 09:25:57 +02:00
Mario Vavti
7dadbbbac7 bring jot reset to some more places 2018-05-21 09:13:14 +02:00
zotlabs
49f7d63290 first cut at a general purpose gdpr document. What we would like to do is use a conditional expression so that a site document will be loaded if it exists, and fallback to a project boiler plate document if it does not. This is an exercise for the community. 2018-05-20 23:40:10 -07:00
zotlabs
0044906fab Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-20 20:19:11 -07:00
zotlabs
ac8706e919 pleroma does not return a valid JRD when given an accept header of application/jrd+json - it only returns a JRD when passed an accept header of application/json (ahead of anything else because XRD is served at the same endpoint) 2018-05-20 20:15:19 -07:00
Mario
5b48eb3657 update oauth related tables to use bigint/int(10) for user_id column. this is to be more consistent with the rest of the tables and fixes issue #1180 2018-05-20 22:55:13 +02:00
Mario Vavti
43f04e4bc0 improve abconfig queries 2018-05-20 22:55:01 +02:00
Mario Vavti
649260ce44 more local_channel() is not string 2018-05-20 22:54:49 +02:00
Mario Vavti
f091a3c9fc local_channel() is not string 2018-05-20 22:54:36 +02:00
Mario Vavti
18338495af do not update #acl-list-content on every click in jot. we just need this updated when in cutom mode (which is rarely the case). jot interaction was getting sluggish due to this when having lots of contacts. 2018-05-20 22:54:02 +02:00
Mario Vavti
a3f9cf7e97 update to fork-awesome 1.1 and fix an old font-awesome reference 2018-05-20 22:53:19 +02:00
Mario Vavti
ef0f195fe8 fix issue where images were not visible in acl selector after using search 2018-05-20 22:52:33 +02:00
Mario
469809183d update oauth related tables to use bigint/int(10) for user_id column. this is to be more consistent with the rest of the tables and fixes issue #1180 2018-05-20 22:42:47 +02:00
zotlabs
8611e7f8a6 remove unused mindate parameter in the network/stream API method 2018-05-20 13:29:48 -07:00
Mario Vavti
55e1026c98 improve abconfig queries 2018-05-20 20:48:52 +02:00
Mario Vavti
9e1af2492f more local_channel() is not string 2018-05-20 14:15:46 +02:00
Mario Vavti
4eb40528a9 local_channel() is not string 2018-05-20 14:07:30 +02:00
Mario Vavti
6ba77ce0e2 css fix 2018-05-20 13:47:05 +02:00
Mario Vavti
a256195767 remove preview on jot reset 2018-05-20 12:30:08 +02:00
git-marijus
23b53cd1ce Merge pull request #1178 from fadelkon/master
Update catalan translations
2018-05-20 11:44:59 +02:00
git-marijus
26d69796d0 Merge pull request #1176 from galettesaucisse/patch-48
Update hstrings.php
2018-05-20 11:43:22 +02:00
git-marijus
71307d3a2e Merge pull request #1175 from galettesaucisse/patch-47
Update hmessages.po
2018-05-20 11:43:06 +02:00
git-marijus
acb114d0d1 Merge pull request #1174 from anaqreon/dev
Rename Permission Groups to Permission Categories and clarify feature…
2018-05-20 11:42:13 +02:00
git-marijus
1781df006f Merge pull request #1171 from mjfriaza/dev
Added one space & Grammatical consistency error on Spanish translation
2018-05-20 11:41:44 +02:00
Mario Vavti
63f84ece6e backport waitmans changes #1170 from master 2018-05-20 11:39:59 +02:00
git-marijus
d0d14579d1 Merge pull request #1170 from waitman/master
shebang portable
2018-05-20 11:23:15 +02:00
Mario Vavti
b11db26edf do not update #acl-list-content on every click in jot. we just need this updated when in cutom mode (which is rarely the case). jot interaction was getting sluggish due to this when having lots of contacts. 2018-05-20 11:12:39 +02:00
Mario Vavti
6d7e364a0d remove some cruft from initEditor(); 2018-05-20 11:02:18 +02:00
Mario Vavti
7e99931733 implement jot reset button 2018-05-20 09:23:44 +02:00
fadelkon
8733d9f2a6 Update catalan translation (both po and php) for sources changes up to Apr 23rd 2018, 07:35. 2018-05-20 05:59:43 +02:00
fadelkon
29da06c298 Update view/ca/hstrings.php to match the version of view/ca/hmessages.po 2018-05-20 05:46:31 +02:00
Mario Vavti
7a1afc315d update to fork-awesome 1.1 and fix an old font-awesome reference 2018-05-19 22:01:10 +02:00
Mario Vavti
244e813bfa fix issue where images were not visible in acl selector after using search 2018-05-19 21:21:02 +02:00
Mario Vavti
0bc2a4f603 fix issues with attachment labels 2018-05-19 11:04:34 +02:00
Mario Vavti
6abbadf6c8 Merge remote-tracking branch 'mike/master' into dev 2018-05-19 10:20:14 +02:00
zotlabs
8b4af7cf0b hubzilla issue #1086, pending count on admin summary page 2018-05-19 00:54:47 -07:00
Mario Vavti
1ca6ef0f60 Merge remote-tracking branch 'mike/master' into dev 2018-05-19 08:45:41 +02:00
zotlabs
dae89ce91c wrong default param for pubstream_incl (this checkin also picked up a few minor and hopefully non-significant changes) 2018-05-18 16:57:45 -07:00
Mario Vavti
056f3d352c remove debug code 2018-05-18 21:32:18 +02:00
Mario Vavti
620e8f2f0b version 2018-05-18 21:30:58 +02:00
Mario Vavti
7f7e049397 an attempt to fix the new_channel validation situation 2018-05-18 21:30:07 +02:00
Andrew Manning
40d99c1716 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-05-18 13:07:24 -04:00
Galette Saucisse
2dd66df8eb Update hstrings.php 2018-05-18 16:05:30 +02:00
Galette Saucisse
eabf804dc9 Update hstrings.php 2018-05-17 16:09:42 +02:00
Galette Saucisse
b955c2d2c5 Update hmessages.po 2018-05-17 16:08:20 +02:00
Mario Vavti
5a6141faa2 display address in contact_format() instead of nick 2018-05-17 12:58:59 +02:00
zotlabs
da460ff32f anybody authenticated not correctly handled in can_comment_on_post() 2018-05-16 10:57:13 +02:00
Mario Vavti
12c571a187 missing include 2018-05-16 10:47:18 +02:00
Andrew Manning
179eeb10a6 Rename Permission Groups to Permission Categories and clarify feature settings text. 2018-05-15 19:57:40 -04:00
zotlabs
aac5fd96cc provide function to fetch photo contents from url 2018-05-15 16:51:04 -07:00
zotlabs
16930c1c54 anybody authenticated not correctly handled in can_comment_on_post() 2018-05-15 16:08:51 -07:00
Manuel Jiménez Friaza
76a2a5c432 Added spaces at PHP replacements & Grammatical consistency error on Spanish translation 2018-05-15 11:58:37 +02:00
Mario Vavti
de63e40a70 we must now provide the full path to the profile image for the cavatar plugin to work 2018-05-15 10:20:20 +02:00
zotlabs
803e85caeb make get_default_profile_photo() pluggable 2018-05-14 23:10:20 -07:00
zotlabs
062dea8e13 code whitespace and formatting 2018-05-14 22:10:21 -07:00
zotlabs
959667c009 If somebody used hooks to create a new permission role, there was no mechanism to insert the new role into the dropdown list of roles at selection time. 2018-05-14 20:23:00 -07:00
zotlabs
46152cc56b ensure all password checking goes through the authenticate plugin hook (for instance in mod_removeme) 2018-05-14 20:17:00 -07:00
zotlabs
c8fc3ad7cd refactor the 'where does the register link point?' logic 2018-05-14 19:19:25 -07:00
zotlabs
301e405769 fine tuning the refactored tag/mention code 2018-05-14 18:27:12 -07:00
zotlabs
229d82c4c7 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-14 17:23:19 -07:00
zotlabs
d9759ba63c more refactor tags/mentions 2018-05-14 17:20:25 -07:00
Mario Vavti
2d1dbc8f40 Revert "We're no longer setting a backup ACL for private mention typos."
This reverts commit 356c7003f2.
2018-05-14 09:10:36 +02:00
Mario Vavti
1b160c0a2d Merge remote-tracking branch 'mike/master' into dev 2018-05-14 09:04:40 +02:00
zotlabs
356c7003f2 We're no longer setting a backup ACL for private mention typos. 2018-05-13 15:50:42 -07:00
Mario Vavti
83f8a03964 bump version 2018-05-13 23:10:13 +02:00
Mario Vavti
7ed32a764c consolidate recent autocomplete changes 2018-05-13 23:09:30 +02:00
Mario Vavti
4f69bcfc38 streamline appearence of guest tokens individual perms with those in connedit 2018-05-13 14:29:09 +02:00
Manuel Jiménez Friaza
9a82b8414b Added one space & Grammatical consistency error on Spanish translation 2018-05-13 13:10:39 +02:00
Manuel Jiménez Friaza
0b05203cf4 Added one space & Grammatical consistency error on Spanish translation 2018-05-13 13:07:36 +02:00
Mario Vavti
4135a10211 Merge remote-tracking branch 'mike/master' into dev 2018-05-13 08:07:13 +02:00
zotlabs
7991db14be hubzilla issue #1045 - display pubsites link in info area if invite only 2018-05-12 16:41:09 -07:00
root
1509c9682b replace disable globbing switch 2018-05-12 10:23:45 -07:00
root
e7287152a2 replace disable globbing switch 2018-05-12 10:22:01 -07:00
root
082bd58805 replace disable globbing switch 2018-05-12 10:18:13 -07:00
root
e288f46967 shebang portable 2018-05-12 09:58:19 -07:00
Mario Vavti
efb0ac5996 fix php warning 2018-05-12 13:28:04 +02:00
Mario Vavti
984de8f46f fix postgres issue if register mode is set to yes - with approval 2018-05-12 12:46:38 +02:00
Mario Vavti
2c819c8619 fix postgres issue if register mode is set to yes - with approval 2018-05-12 12:46:09 +02:00
git-marijus
10ce6cc154 Merge pull request #1164 from einervonvielen/install_imagemagick
Install imagemagick. Instructions to avoid DNS check if it fails.
2018-05-11 13:03:28 +02:00
git-marijus
7c1d1f8bd3 Merge pull request #1168 from dawnbreak/dev
Fix composer.json
2018-05-11 13:02:37 +02:00
zotlabs
bcaa0dacdf use '[feed]' in the doc 2018-05-10 21:26:21 -07:00
zotlabs
5dae0ef4f9 add cancel button to editor, fix issue with autosave of categories 2018-05-10 20:54:48 -07:00
zotlabs
62bc5e8051 use Zlib/MessageFilter for sourced messages also 2018-05-10 19:31:51 -07:00
zotlabs
ef6e067a45 add top level posts containing the cid's url to the cid search in mod_network. We could alternatively search for mention tags here for a bit more precision but the sql could get pretty hairy with all the joins going on. 2018-05-10 18:42:58 -07:00
zotlabs
721496f922 hubzilla issue #1169 2018-05-10 17:11:03 -07:00
zotlabs
be225164eb allow either 2018-05-10 13:48:18 -07:00
zotlabs
1650ac2edd tag search not finding articles 2018-05-09 23:44:24 -07:00
zotlabs
bb1aa04689 change the embed from albums hovertip as well to emphasise 'existing' 2018-05-09 21:28:48 -07:00
zotlabs
67bb167cf8 Change hovertip on paperclip button to read 'Attach/Upload file' because a lot of people gravitate to 'insert photo from album' instead, looking for a way to upload into the post. 2018-05-09 21:22:25 -07:00
zotlabs
b4be1da91e thread_author_menu - add some more checks as to whether to show certain links. This should complete work on hubzilla issue #1052 2018-05-09 21:08:12 -07:00
zotlabs
d41556a1ea minor regression on date queries from channel page 2018-05-09 18:20:28 -07:00
zotlabs
50796079fa loose ends discovered while fixing hubzilla #1166 2018-05-09 17:09:38 -07:00
zotlabs
9acf007687 hubzilla issue #1166 2018-05-09 17:03:10 -07:00
Klaus Weidenbach
dafe0afa65 ⬆️ Update libraries.
Updating smarty/smarty (v3.1.31 => v3.1.32)
Updating sabre/vobject (4.1.5 => 4.1.6)
2018-05-09 21:07:25 +02:00
Klaus Weidenbach
30d0f9888c Fix composer.json for recent composer.
The old composer.json is not valid anymore. Make it work with current
composer binaries again.
2018-05-09 21:07:25 +02:00
zotlabs
2bd7d30a5b show/hide dot files only in mod_cloud. For DAV let the OS decide 2018-05-09 01:54:18 -07:00
zotlabs
cab22f228a hide dotfiles by default in /cloud - the web interface (they are still accessible but hidden). Change this behaviour with pconfig system.show_dot_files 2018-05-08 23:01:24 -07:00
zotlabs
0545baaf56 initial backend support for channel page item search 2018-05-08 20:12:49 -07:00
zotlabs
fbd26e8d9d changes made during testing imagick scaling for cover photo thumbnail 2018-05-08 16:50:16 -07:00
zotlabs
6ad4ed87a3 yet another postgres/"group by" issue 2018-05-08 11:48:26 +02:00
zotlabs
3c8de7b59d use imagemagick first stage thumbnail for cover photos, if configured 2018-05-07 23:57:17 -07:00
zotlabs
611e22d676 turn down logging from DAV basicauth until needed 2018-05-07 22:07:44 -07:00
zotlabs
0c43a9bb5d yet another postgres/"group by" issue 2018-05-07 19:33:58 -07:00
zotlabs
eb85d381fd Add supported protocols to siteinfo (not siteinfo.json) 2018-05-07 18:46:42 -07:00
zotlabs
aab16123b5 Simplify first channel creation even further by using a site-configurable default permissions role and removing one more conceptual roadblock for first time registrants. This default role only applies to the first channel an account creates and can be changed from the settings page once they've started to explore. This functionality was always present but optional and not well exposed. Now it is part of the standard workflow and exposed in the admin settings. 2018-05-07 17:31:53 -07:00
zotlabs
1f8b4b14a4 remove the old autocomplete cache mechanism 2018-05-06 20:35:57 -07:00
zotlabs
4640253614 autocomplete after 2 chars instead of 3; this was changed some months back to work around implementation quirks in the custom cache driver that is now disabled. 2018-05-06 20:30:49 -07:00
zotlabs
e646684493 pdf embeds 2018-05-06 19:57:37 -07:00
zotlabs
257dcaaf8b minor tweak to last pull: ensure that feeds have a name besides whitespace characters 2018-05-06 18:25:17 -07:00
zotlabs
a30934c563 ensure that feed xchans have a name 2018-05-06 18:23:39 -07:00
zotlabs
5e6f6e2c3e minor change to test something 2018-05-06 18:10:43 -07:00
zotlabs
620082c16b If one has system.network_page_default set to a different sort order use that order on the 'All Channels' selection of the Collections (privacy group) widget. 2018-05-06 16:55:07 -07:00
zotlabs
83c18f4d4a Back in the day there were good reasons for showing a permission denied photo instead of a null img. It distinguished a 403 from a 404 in an unmistakable way. What we've discovered is that nothing that is gained from this knowledge and it mostly just annoys and confuses people who can't really do anything about it except to express their annoyance/confusion. So just do a 403/404 instead. 2018-05-06 16:12:06 -07:00
zotlabs
b2218574ee allow uninstall of plugins which no longer exists via cmdline tool 2018-05-05 16:19:23 -07:00
Einer von Vielen
1b959a4731 Corrected description for getting a domain. 2018-05-05 21:08:15 +02:00
Einer von Vielen
8ee4a54c10 Corrected description for getting a domain. 2018-05-05 21:01:26 +02:00
Einer von Vielen
acb0604a71 Instructions for imagemagick and failed DNS check. Some minor corrections. 2018-05-05 20:50:06 +02:00
Einer von Vielen
26a7c88ddf Install imagemagick 2018-05-05 20:46:41 +02:00
zotlabs
70a0a83363 more updates and clarifications re: tag/mention documentation 2018-05-05 02:56:57 -07:00
zotlabs
894f5bc79a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-05 02:24:37 -07:00
zotlabs
b47b917eb0 check_item_source: always log uid 2018-05-05 01:52:35 -07:00
zotlabs
c41c04cf11 log all possible return conditions from check_item_source(), use consistent xchan 2018-05-05 01:43:14 -07:00
Mario Vavti
0895756658 Merge remote-tracking branch 'mike/master' into dev 2018-05-05 10:03:57 +02:00
zotlabs
c6e65ec6da support '@' paths 2018-05-05 00:39:53 -07:00
Mario Vavti
192b69b11a update nginx conf to address issue #1155 2018-05-05 08:38:20 +02:00
Mario Vavti
733a5ccb08 use cursor-pointer class instead of fakelink to avoid the link color for the dropdown caret 2018-05-05 07:32:35 +02:00
Mario Vavti
b0ca73c1ba Merge remote-tracking branch 'mike/master' into dev 2018-05-05 07:22:31 +02:00
zotlabs
367937e479 removed the fakelink attribute as it changed the colour of the down arrow. We probably do want to change the hover cursor but not the colour. 2018-05-04 15:20:07 -07:00
zotlabs
6e91d85bcb If somebody precisely clicks the down-arrow on the author photo it should probably also trigger the dropdown 2018-05-04 15:17:15 -07:00
Mario Vavti
f995ef0124 set XML_OPTION_SKIP_WHITE to 1 again 2018-05-04 22:46:43 +02:00
zotlabs
4a26f0d2d4 turn skip white back on - (xml actually doesn't parse if you disable this) 2018-05-04 13:44:34 -07:00
Mario Vavti
90cf238019 fix too big buttons in wiki list 2018-05-04 22:13:45 +02:00
Mario Vavti
97cb108937 missing permission description 2018-05-04 22:03:51 +02:00
Mario Vavti
34f6d9f714 missing basetag 2018-05-04 13:54:12 +02:00
Mario Vavti
76e644e18a bump version 2018-05-04 12:00:59 +02:00
Mario Vavti
a0cefe7fdb Merge remote-tracking branch 'mike/master' into dev 2018-05-04 11:59:46 +02:00
Mario Vavti
be4c9a9598 Merge branch '3.4RC' 2018-05-04 09:46:27 +02:00
Mario Vavti
be852ba857 release version 3.4 2018-05-04 09:45:14 +02:00
Mario Vavti
3370e8516f switch DIRECTORY_FALLBACK_MASTER to https://zotadel.net 2018-05-04 09:43:01 +02:00
Mario Vavti
998dd58206 switch DIRECTORY_FALLBACK_MASTER to https://zotadel.net 2018-05-04 09:37:22 +02:00
Mario Vavti
108cc7b270 update changelog 2018-05-04 09:35:22 +02:00
Mario Vavti
ace8252569 update changelog 2018-05-04 09:34:44 +02:00
zotlabs
56113b0bde check for directories 2018-05-03 23:20:09 -07:00
zotlabs
b52e9731e3 tagging changes: + (old style forum mentions), and underscore space replacement are no longer supported. 2018-05-03 20:14:58 -07:00
zotlabs
61a8a16139 add changes from ae35ac0cec to contact_autocomplete so channel source completion will work correctly 2018-05-03 17:37:16 -07:00
zotlabs
eff72aeb47 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-03 17:18:36 -07:00
Mario Vavti
94316da63e RC5 2018-05-03 13:38:54 +02:00
Mario Vavti
ae35ac0cec quick fix for issue #1150 - needs improvement and review of other textcomplete implementations. 2018-05-03 13:14:12 +02:00
Mario Vavti
2f9a044559 Revert "hubzilla issue #1151 - activitypub mention gets bookmarked"
This reverts commit 285781b887.
2018-05-03 12:34:51 +02:00
zotlabs
1f429a0033 hubzilla issue #1151 - activitypub mention gets bookmarked 2018-05-03 12:34:35 +02:00
zotlabs
a3ed0b94cd make the cloud logging a bit less verbose until we actually need it. 2018-05-03 12:33:48 +02:00
Mario Vavti
204838bd10 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-05-03 12:29:57 +02:00
Mario Vavti
dd806bd031 update composer autoload cache 2018-05-03 12:27:39 +02:00
git-marijus
8442693d7a Merge pull request #1152 from dawnbreak/dev
Update composer autoload cache.
2018-05-03 12:17:09 +02:00
Mario Vavti
cd526139fb Merge remote-tracking branch 'mike/master' into dev 2018-05-03 09:44:53 +02:00
zotlabs
75c8f656c9 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-05-02 23:18:09 -07:00
zotlabs
459ec78a5e provide easy access to the autoperms setting for forum and repository channels. This may be needed in the future to protect an existing forum from assault by spammers with changing identities. The forum can quickly be turned into membership by approval and either left that way permanently or hopefully reversed at a later date. Previously this would require switching to expert mode or setting a pconfig manually. 2018-05-02 22:59:21 -07:00
zotlabs
6bf5eea646 make the cloud logging a bit less verbose until we actually need it. 2018-05-02 22:05:55 -07:00
zotlabs
e9f49d9d9c admin delete of files 2018-05-02 20:08:59 -07:00
zotlabs
9713436f49 backend work to allow admin to delete photos. Still requires frontend work to give admin access to either the photos and/or the delete link. 2018-05-02 18:23:42 -07:00
zotlabs
406ea67bbc Provide admin delete ability if the viewer is admin but has no existing delete authority. For 3.5+ as a new string is involved. 2018-05-02 17:39:12 -07:00
Klaus Weidenbach
a24d254404 Update composer autoload cache.
Should add to Prepare RC Release documentation:
composer dump-autoload --no-dev
2018-05-02 23:24:48 +02:00
zotlabs
285781b887 hubzilla issue #1151 - activitypub mention gets bookmarked 2018-05-02 13:49:22 -07:00
Mario Vavti
40db68886d RC4 2018-05-02 10:11:05 +02:00
Galette Saucisse
d5088549f8 Create /doc/context/fr/wiki/help.html 2018-05-02 09:49:02 +02:00
Galette Saucisse
03851ee7cc Create /doc/context/fr/webpages/help.html 2018-05-02 09:48:40 +02:00
Galette Saucisse
2d460117fc Create /doc/context/fr/settings/tokens 2018-05-02 09:48:30 +02:00
Galette Saucisse
73cabbf822 Create /doc/context/fr/settings/channel/help.html 2018-05-02 09:48:19 +02:00
Galette Saucisse
411b7964ab Create /doc/context/fr/settings/account/help.html 2018-05-02 09:48:09 +02:00
Galette Saucisse
bc45c5368e Create /doc/context/fr/profile/help.html 2018-05-02 09:47:50 +02:00
Galette Saucisse
7a65b6cfe4 Create /doc/context/photos/help.html 2018-05-02 09:47:39 +02:00
Galette Saucisse
ee464c6589 Create /doc/context/fr/mail/help.html 2018-05-02 09:47:30 +02:00
git-marijus
d83f12e883 Merge pull request #1146 from galettesaucisse/patch-46
Create /doc/context/fr/wiki/help.html
2018-05-02 09:46:24 +02:00
git-marijus
76770c69bf Merge pull request #1145 from galettesaucisse/patch-45
Create /doc/context/fr/webpages/help.html
2018-05-02 09:45:31 +02:00
git-marijus
e9225b15d2 Merge pull request #1144 from galettesaucisse/patch-44
Create /doc/context/fr/settings/tokens
2018-05-02 09:44:49 +02:00
git-marijus
3056b96bb0 Merge pull request #1143 from galettesaucisse/patch-43
Create /doc/context/fr/settings/channel/help.html
2018-05-02 09:44:36 +02:00
git-marijus
856945d838 Merge pull request #1142 from galettesaucisse/patch-42
Create /doc/context/fr/settings/account/help.html
2018-05-02 09:44:10 +02:00
git-marijus
be1c05a03f Merge pull request #1141 from galettesaucisse/patch-40
Create /doc/context/fr/profile/help.html
2018-05-02 09:43:37 +02:00
git-marijus
34717cc83c Merge pull request #1140 from galettesaucisse/patch-39
Create /doc/context/photos/help.html
2018-05-02 09:42:49 +02:00
git-marijus
e73cde1612 Merge pull request #1139 from galettesaucisse/patch-38
Create /doc/context/fr/mail/help.html
2018-05-02 09:42:14 +02:00
zotlabs
a9b71f5b4a The channel import page seems to have missed the big theme cleanup of the last couple of years. 2018-05-02 09:30:45 +02:00
zotlabs
c99fb4b7f1 provide warnings about profile photo and cover photo permissions 2018-05-02 09:30:33 +02:00
zotlabs
b28279241b hubzilla issue #1149, don't duplicate addressbook entries on repeated channel imports 2018-05-02 09:30:23 +02:00
Mario Vavti
5c5ae2969e Revert "Revert "hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array.""
This reverts commit b223e364c6.
2018-05-02 09:30:05 +02:00
zotlabs
3af691043d parent folder permissions weren't being checked back to the cloud root directory in all cases 2018-05-02 09:29:52 +02:00
Mario Vavti
9615d02b35 Merge remote-tracking branch 'mike/master' into dev 2018-05-02 09:22:23 +02:00
zotlabs
7a55ead97d new feature (post 3.4): allow a different username to be used when importing. 2018-05-01 20:29:07 -07:00
zotlabs
cd200ee706 The channel import page seems to have missed the big theme cleanup of the last couple of years. 2018-05-01 19:38:32 -07:00
zotlabs
db930b794d provide warnings about profile photo and cover photo permissions 2018-05-01 16:54:54 -07:00
zotlabs
08bcd29eee hubzilla issue #1149, don't duplicate addressbook entries on repeated channel imports 2018-05-01 16:15:59 -07:00
Mario Vavti
3f75dd1083 Revert "Revert "hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array.""
This reverts commit b223e364c6.
2018-05-01 10:34:23 +02:00
Mario Vavti
eb2d6fca3a Merge remote-tracking branch 'mike/master' into dev 2018-05-01 10:19:03 +02:00
zotlabs
32423a7706 parent folder permissions weren't being checked back to the cloud root directory in all cases 2018-04-30 22:30:59 -07:00
Galette Saucisse
57cb4ccb74 Create /doc/context/fr/wiki/help.html 2018-04-30 14:36:19 +02:00
Mario Vavti
12c9e64463 activitypub xchans do not have an xchan_addr. use xchan_url for the follow button if we do not find an xchan_addr 2018-04-30 14:34:25 +02:00
Mario Vavti
d872a0ca86 activitypub xchans do not have an xchan_addr. use xchan_url for the follow button if we do not find an xchan_addr 2018-04-30 14:33:35 +02:00
Galette Saucisse
9c5ddf079a Create /doc/context/fr/webpages/help.html 2018-04-30 14:27:05 +02:00
Galette Saucisse
f094ac19d1 Create /doc/context/fr/settings/tokens 2018-04-30 14:16:02 +02:00
Galette Saucisse
7f244a8039 Create /doc/context/fr/settings/channel/help.html 2018-04-30 14:04:38 +02:00
Galette Saucisse
14953fa5c9 Create /doc/context/fr/settings/account/help.html 2018-04-30 14:02:26 +02:00
Galette Saucisse
75f73fffe1 Create /doc/context/fr/profile/help.html 2018-04-30 12:35:46 +02:00
Galette Saucisse
897dd7f380 Create /doc/context/photos/help.html 2018-04-30 12:30:55 +02:00
Galette Saucisse
95f1366f0c Create /doc/context/fr/mail/help.html 2018-04-30 12:22:42 +02:00
Mario
feb5d3af89 fix another pgsql update error 2018-04-30 11:52:04 +02:00
Mario
875597cde1 fix another pgsql update error 2018-04-30 11:51:14 +02:00
Mario
f15c12376a Merge branch 'master' of https://github.com/redmatrix/hubzilla 2018-04-30 11:34:10 +02:00
Mario Vavti
b223e364c6 Revert "hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array."
This reverts commit f620274c6a.
2018-04-30 10:28:32 +02:00
Mario Vavti
e1738e8021 Revert "hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array."
This reverts commit f620274c6a.
2018-04-30 10:27:11 +02:00
Galette Saucisse
a33dfff188 Create /doc/context/fr/events/help.html 2018-04-30 09:59:22 +02:00
git-marijus
0c27fdd944 Merge pull request #1138 from galettesaucisse/patch-37
Create /doc/context/fr/events/help.html
2018-04-30 09:58:35 +02:00
Galette Saucisse
f897cd6bc8 Create /doc/context/fr/connedit/help.html 2018-04-30 09:58:10 +02:00
git-marijus
1bc9672ec8 Merge pull request #1137 from galettesaucisse/patch-36
Create /doc/context/fr/connedit/help.html
2018-04-30 09:57:41 +02:00
Galette Saucisse
dfce7c6ca4 Create /doc/context/fr/connections/ifpending/help.html 2018-04-30 09:56:34 +02:00
git-marijus
6e61e2a45b Merge pull request #1136 from galettesaucisse/patch-35
Create /doc/context/fr/connections/ifpending/help.html
2018-04-30 09:56:12 +02:00
Galette Saucisse
eabed9d0e5 Create /doc/context/fr/connections/help.html 2018-04-30 09:55:45 +02:00
git-marijus
2af61605f2 Merge pull request #1135 from galettesaucisse/patch-34
Create /doc/context/fr/connections/help.html
2018-04-30 09:55:33 +02:00
Galette Saucisse
0992822ce5 Create /doc/context/fr/cloud/help.html 2018-04-30 09:54:57 +02:00
git-marijus
f08777c9ac Merge pull request #1134 from galettesaucisse/patch-33
Create /doc/context/fr/cloud/help.html
2018-04-30 09:54:40 +02:00
HappyPony
472ed909cd Russian translation for cards 2018-04-30 09:54:01 +02:00
git-marijus
3ed19f5b00 Merge pull request #1133 from HappyPony/patch-1
Russian translation for cards
2018-04-30 09:53:49 +02:00
Galette Saucisse
a60b91b21e Create /doc/context/fr/chat/help.html 2018-04-30 09:53:17 +02:00
git-marijus
40dd8aa3d4 Merge pull request #1127 from galettesaucisse/patch-26
Create /doc/context/fr/chat/help.html
2018-04-30 09:53:04 +02:00
Galette Saucisse
02459ebde0 Create /doc/context/fr/cards/help.html 2018-04-30 09:52:47 +02:00
git-marijus
774dc871cc Merge pull request #1126 from galettesaucisse/patch-25
Create /doc/context/fr/cards/help.html
2018-04-30 09:52:32 +02:00
Galette Saucisse
7bb69e20f5 Create /doc/context/fr/apps/edit/help.html 2018-04-30 09:51:43 +02:00
git-marijus
6e0be570dd Merge pull request #1125 from galettesaucisse/patch-24
Create /doc/context/fr/apps/edit/help.html
2018-04-30 09:51:24 +02:00
Galette Saucisse
5dd291fc60 Create /doc/context/fr/appman/help.html 2018-04-30 09:50:49 +02:00
Galette Saucisse
630ccf3810 Create /doc/context/fr/appman/help.html 2018-04-30 09:50:47 +02:00
git-marijus
8d16092171 Merge pull request #1124 from galettesaucisse/patch-23
Create /doc/context/fr/appman/help.html
2018-04-30 09:49:18 +02:00
Galette Saucisse
05c137c1ab Create /doc/context/fr/apps/help.html 2018-04-30 09:48:31 +02:00
git-marijus
83e0442b66 Merge pull request #1123 from galettesaucisse/patch-22
Create /doc/context/fr/apps/help.html
2018-04-30 09:48:13 +02:00
Galette Saucisse
98cfad5f2d Create /doc/context/fr/events/help.html 2018-04-30 09:19:30 +02:00
Mario Vavti
a48e795f8a missing class 2018-04-30 09:14:57 +02:00
zotlabs
f620274c6a hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array. 2018-04-30 09:14:46 +02:00
zotlabs
ae5b3a83f1 Update issues on postgres 2018-04-30 09:14:32 +02:00
zotlabs
5e23640563 remove unused function 2018-04-30 09:14:22 +02:00
Mario Vavti
7d3dfc3ed8 missing class 2018-04-30 09:13:26 +02:00
Galette Saucisse
5b0991fabc Create /doc/context/fr/connedit/help.html 2018-04-30 09:11:27 +02:00
Mario Vavti
0fa638399f Merge remote-tracking branch 'mike/master' into dev 2018-04-30 09:08:09 +02:00
Galette Saucisse
d59c6aa887 Create /doc/context/fr/connections/ifpending/help.html 2018-04-30 09:00:25 +02:00
Galette Saucisse
b6ec8bf687 Create /doc/context/fr/connections/help.html 2018-04-30 08:56:53 +02:00
Galette Saucisse
f28d6ad59e Create /doc/context/fr/cloud/help.html 2018-04-30 08:46:55 +02:00
zotlabs
e841e48258 hubzilla issue #1119 - xml2array has issues with some unicode sequences/conversions. Working around it using the older simplexml parser until it can be debugged, as Diaspora does not use complex XML with namespaces; which is where we need the more advaced capabilities of xml2array. 2018-04-29 23:05:38 -07:00
HappyPony
c0141a7d5e Russian translation for cards 2018-04-30 06:12:35 +02:00
zotlabs
aa15867c95 Update issues on postgres 2018-04-29 17:50:35 -07:00
Galette Saucisse
8d87b529f5 Create /doc/context/fr/appman/help.html 2018-04-29 20:37:28 +02:00
Galette Saucisse
900663b85f Create /doc/context/fr/chat/help.html 2018-04-29 15:37:19 +02:00
Galette Saucisse
1e79107d0e Create /doc/context/fr/cards/help.html 2018-04-29 15:21:30 +02:00
Galette Saucisse
52803a30b6 Create /doc/context/fr/apps/edit/help.html 2018-04-29 15:09:14 +02:00
Galette Saucisse
eb30658c68 Create /doc/context/fr/appman/help.html 2018-04-29 15:05:41 +02:00
Galette Saucisse
f77aaf1def Create /doc/context/fr/apps/help.html 2018-04-29 14:57:16 +02:00
zotlabs
8c7bf6d2f3 remove unused function 2018-04-28 14:13:56 -07:00
zotlabs
94df121e0a sql error 2018-04-27 14:27:10 +02:00
Mario Vavti
873670594b Merge remote-tracking branch 'mike/master' into dev 2018-04-27 14:24:54 +02:00
zotlabs
09ef1b1bb6 sql error 2018-04-27 02:34:52 -07:00
Mario Vavti
31e9efdae0 RC3 2018-04-27 10:14:04 +02:00
phellmes
bb2103ac45 Update DE translation strings
German strings for development branch and release candidate 3.4
2018-04-27 10:07:25 +02:00
git-marijus
e98c74bce7 Merge pull request #1120 from phellmes/dev
Update DE translation strings
2018-04-27 10:07:06 +02:00
Galette Saucisse
feb03dc194 Update FR toc.html 2018-04-27 10:06:46 +02:00
git-marijus
bb8f73b58a Merge pull request #1117 from galettesaucisse/patch-19
Update FR toc.html
2018-04-27 10:06:11 +02:00
Galette Saucisse
02da3adb5a Delete FR project.bb from wrong folder
apologies
2018-04-27 10:05:54 +02:00
git-marijus
28d1913d84 Merge pull request #1116 from galettesaucisse/patch-18
Delete FR project.bb from wrong folder
2018-04-27 10:04:20 +02:00
Galette Saucisse
051ab698ed Update project.bb 2018-04-27 10:04:00 +02:00
Galette Saucisse
9014524477 Update project.bb and place in correct folder
FR toc.html needs editing
2018-04-27 10:03:55 +02:00
git-marijus
316f68c12d Merge pull request #1115 from galettesaucisse/patch-17
Update project.bb and place in correct folder
2018-04-27 10:01:26 +02:00
mjfriaza
9387be1aa7 New strings: Spanish translation 2018-04-27 10:00:50 +02:00
git-marijus
c3ca257f18 Merge pull request #1113 from mjfriaza/dev
New strings: Spanish translation
2018-04-27 09:59:35 +02:00
zotlabs
d0ba2cf6d4 where possible strip zid parameter from links that get pasted into posts so that they will get a correct zid when rendered 2018-04-27 09:58:17 +02:00
zotlabs
e33d8c288b more testing of attach_move() uncovered some issues 2018-04-27 09:58:07 +02:00
zotlabs
34fbcfdfaa set the 'force' flag on attach_mkdir when initiated from a DAV operation. This will report success if it already exists rather than throwing an exception. 2018-04-27 09:57:57 +02:00
Mario Vavti
2e9738e204 Merge remote-tracking branch 'mike/master' into dev 2018-04-27 09:54:36 +02:00
zotlabs
9a7e8f4d68 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-26 20:31:16 -07:00
zotlabs
7b445a5b39 where possible strip zid parameter from links that get pasted into posts so that they will get a correct zid when rendered 2018-04-26 20:27:14 -07:00
zotlabs
ce13fef6aa more testing of attach_move() uncovered some issues 2018-04-26 19:21:08 -07:00
zotlabs
38e99c8354 set the 'force' flag on attach_mkdir when initiated from a DAV operation. This will report success if it already exists rather than throwing an exception. 2018-04-26 17:25:58 -07:00
Mario Vavti
a85b1efa4f minor fixes for dark schema 2018-04-26 22:46:01 +02:00
Mario Vavti
00a95f4b91 minor fixes for dark schema 2018-04-26 22:44:40 +02:00
phellmes
433951ab55 Update DE translation strings
German strings for development branch and release candidate 3.4
2018-04-26 20:58:15 +02:00
Mario Vavti
baa46e105c if there is more than one textarea we need to work through all of them 2018-04-26 20:08:03 +02:00
Mario Vavti
4e389b474a version 2018-04-26 15:41:54 +02:00
Mario Vavti
63c76eae0c a better way to deal with js errors in autocomplete plugins if the object is not available 2018-04-26 15:40:59 +02:00
Mario Vavti
9431785466 omit js error if saved searsches are turned off 2018-04-26 14:53:24 +02:00
Mario Vavti
953391cca9 Merge remote-tracking branch 'mike/master' into dev 2018-04-26 14:22:04 +02:00
Mario Vavti
8e0fc9e762 fix the on select handlers 2018-04-26 13:58:37 +02:00
Mario Vavti
fe4defe752 upgrade to textcomplete (jquery.textcomplete is discontinued), enable built-in cache and unify to start lookup after 3 characters 2018-04-26 12:38:25 +02:00
zotlabs
f32ba06564 work through a few more autocomplete minor nits 2018-04-26 02:42:48 -07:00
zotlabs
a5a6488757 don't load jot autosave content into other document types or edits of other items, but do save these edits in case you need to recover them 2018-04-26 09:58:56 +02:00
zotlabs
b8aabde6c3 malformed embeds from gfycat hubzilla issue #1108 2018-04-26 09:42:54 +02:00
zotlabs
44d4f0a484 generating random numbers too large for 32-bit systems 2018-04-26 09:41:26 +02:00
Mario Vavti
09666ae8e9 Merge remote-tracking branch 'mike/master' into dev 2018-04-26 09:05:47 +02:00
zotlabs
4a60f45220 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-25 23:11:23 -07:00
zotlabs
7b9946079f function doc update 2018-04-25 23:10:08 -07:00
zotlabs
fe724acc3b mod_network: privacy group query returning results when group is empty. Notification that the group is empty was also displayed twice. 2018-04-25 22:53:20 -07:00
zotlabs
4409b2b40a don't load jot autosave content into other document types or edits of other items, but do save these edits in case you need to recover them 2018-04-25 21:32:34 -07:00
zotlabs
33f446fcd0 malformed embeds from gfycat hubzilla issue #1108 2018-04-25 20:47:30 -07:00
Mike Macgirvin
953d02e4b7 Update CHANGELOG
more than oauth2
2018-04-26 13:21:14 +10:00
Mike Macgirvin
a124c120f4 Update CHANGELOG
more than oauth2
2018-04-26 13:20:24 +10:00
zotlabs
5f8b093d79 fine tuning 2018-04-25 18:51:30 -07:00
zotlabs
f923d21df3 some tagging work 2018-04-25 18:41:19 -07:00
zotlabs
5a9e9284c2 generating random numbers too large for 32-bit systems 2018-04-25 14:10:11 -07:00
Galette Saucisse
c7c04aba3d Update project.bb 2018-04-25 18:42:46 +02:00
Galette Saucisse
33503349ec Update FR toc.html 2018-04-25 18:12:51 +02:00
Galette Saucisse
ef3994da30 Delete FR project.bb from wrong folder
apologies
2018-04-25 18:11:10 +02:00
Galette Saucisse
2e758f11e7 Update project.bb and place in correct folder
FR toc.html needs editing
2018-04-25 18:08:55 +02:00
Mario Vavti
7283e2e279 bump version 2018-04-25 14:18:17 +02:00
Mario Vavti
352dd364d2 drop box-shadow from generic-content-wrapper (it's probably too 90') and use transparent colors for borders to work better with alternate background colors 2018-04-25 14:17:53 +02:00
Mario Vavti
d5c3363909 bump version 2018-04-25 14:16:47 +02:00
Mario Vavti
2ede8e3675 drop box-shadow from generic-content-wrapper (it's probably too 90') and use transparent colors for borders to work better with alternate background colors 2018-04-25 14:11:41 +02:00
Mario Vavti
fe318d4eb8 changelog 2018-04-25 12:48:53 +02:00
Mario Vavti
c0bf3c8af1 changelog 2018-04-25 12:48:08 +02:00
mjfriaza
175a3c4008 New strings: Spanish translation 2018-04-25 12:46:50 +02:00
Mario Vavti
e9f3095f41 Merge remote-tracking branch 'mike/master' into dev 2018-04-25 11:54:13 +02:00
Mario Vavti
ebf540ffbc rename boxy schema to focus-boxy and bs-default to focus-light 2018-04-25 11:36:22 +02:00
Mario Vavti
4f1031f92b mark simple_* schemas unmaintained and deprecated 2018-04-25 11:36:10 +02:00
Mario Vavti
ddb9db188b rename boxy schema to focus-boxy and bs-default to focus-light 2018-04-25 11:31:10 +02:00
zotlabs
63e8f1f36b undo_post_tagging - don't waste a connection query if we're undoing a hashtag and not a mention. 2018-04-25 02:26:37 -07:00
Mario Vavti
a3f77409a4 mark simple_* schemas unmaintained and deprecated 2018-04-25 11:14:45 +02:00
Mario Vavti
705ff97892 more css fixes for bs-default schema 2018-04-25 11:02:52 +02:00
Mario Vavti
1bb2d0b954 more css fixes for bs-default schema 2018-04-25 11:02:14 +02:00
Mario Vavti
0773b9bf92 css fixes for bs-default schema 2018-04-25 10:58:38 +02:00
Mario Vavti
da775d182a css fixes for bs-default schema 2018-04-25 10:58:08 +02:00
Galette Saucisse
0f836c9d5e Create /doc/fr/project.bb 2018-04-25 10:34:16 +02:00
git-marijus
e77914fe3f Merge pull request #1112 from galettesaucisse/patch-16
Create /doc/fr/project.bb
2018-04-25 10:33:05 +02:00
Mario Vavti
ed785fbb1b Merge remote-tracking branch 'mike/master' into dev 2018-04-25 09:57:28 +02:00
Mario Vavti
25f34d8ad3 show caret-down on item-photo hover to indicate a dropdown menu 2018-04-25 09:56:53 +02:00
Mario Vavti
0a51ea1bfa show caret-down on item-photo hover to indicate a dropdown menu 2018-04-25 09:56:21 +02:00
Galette Saucisse
9ffad65b65 Create /doc/fr/project.bb 2018-04-25 09:40:40 +02:00
zotlabs
8face5a66c make tag autocomplete less scary looking in the editor. If this works out we can simplify and get rid of a huge amount of spaghetti tag logic. 2018-04-24 15:32:24 -07:00
Mario Vavti
edd91a7ed1 changelog 2018-04-24 22:30:52 +02:00
Mario Vavti
c5b32032a7 changelog 2018-04-24 22:30:17 +02:00
Mario Vavti
4bb93c4327 fix regression with forum widget unseen count 2018-04-24 17:11:29 +02:00
Mario Vavti
e11e99b2d1 fix regression with forum widget unseen count 2018-04-24 17:09:51 +02:00
Mario Vavti
2dce7c212f fix php warnings 2018-04-24 15:42:20 +02:00
Mario Vavti
2ea87b65ca fix php warnings 2018-04-24 15:41:35 +02:00
zotlabs
a6c42e8756 added variable to store the raw json string as received, since this is signed and we may need to forward the signed data. 2018-04-23 21:55:16 -07:00
zotlabs
b688dc3995 minor tweak to utf8 usernames after some testing of the underlying encode/decode funations. This probably isn't critical and I do not have a failure case but just trying to cover all bases. 2018-04-23 19:10:35 -07:00
zotlabs
59ac3d04eb Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-23 18:15:18 -07:00
zotlabs
97308ad2fb provide a short term compatibility mapping between social_party and social_federation 2018-04-23 16:05:55 -07:00
Mario Vavti
2dff10564c possible fix for issue #1101 2018-04-23 21:13:09 +02:00
Mario Vavti
d401e5e7c4 possible fix for issue #1101 2018-04-23 21:12:31 +02:00
Mario Vavti
67ce5f4c9c version 3.4RC1 2018-04-23 12:05:06 +02:00
Mario Vavti
5bd1ea0b95 Merge branch 'dev' into 3.4RC 2018-04-23 11:52:32 +02:00
Mario Vavti
9ac67b44e4 strings update 2018-04-23 11:37:39 +02:00
Mario Vavti
bc4a1ee500 reverse f325c29b48 - this needs discussion. there is a link to source in the item menu. we might consider linking the timestamp to the source item (like some of the federated networks do) but then remove it from the item dropdown (having things double proved to confuse people). imo the link in the dropdown menu should be sufficient though. 2018-04-23 11:24:13 +02:00
git-marijus
78816f2f74 Merge pull request #1094 from mrjive/dev
Adding link to post source
2018-04-23 11:11:16 +02:00
Mario Vavti
fedb5fbcf5 update zot.php to fix php warning invalid argument supplied for foreach()
- this is taken from pr #1085 which was against wrong branch
2018-04-23 10:47:35 +02:00
Mario Vavti
bb61e672b0 Proposed fix for issue #1091 - mod-help.css
- this is taken from pr #1098 which was against wrong branch
2018-04-23 10:39:46 +02:00
git-marijus
de6f07ec89 Merge pull request #1097 from galettesaucisse/patch-13
Proposed fix for issue #1091 - mod-help.js
2018-04-23 10:28:50 +02:00
git-marijus
d0dc8c1e4c Merge pull request #1093 from mjfriaza/dev
Updated Spanish translation
2018-04-23 10:28:09 +02:00
git-marijus
5ec2e28802 Merge pull request #1090 from galettesaucisse/patch-12
Create /doc/fr/toc.html
2018-04-23 10:27:50 +02:00
git-marijus
391020fd1b Merge pull request #1089 from galettesaucisse/patch-11
delete /doc/fr/about.bb
2018-04-23 10:27:31 +02:00
git-marijus
e46874149d Merge pull request #1088 from galettesaucisse/patch-10
create new file /doc/fr/about/about.bb
2018-04-23 10:27:04 +02:00
git-marijus
7f49f6a45c Merge pull request #1084 from galettesaucisse/patch-9
Update French hmessages.po from Transifex
2018-04-23 10:26:42 +02:00
git-marijus
901b0ac146 Merge pull request #1083 from galettesaucisse/patch-8
Update French hstrings.php from Transifex
2018-04-23 10:26:12 +02:00
Mario Vavti
28bc4089d0 fix permission role test 2018-04-23 10:03:39 +02:00
Mario Vavti
2bca612a92 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-04-23 09:49:47 +02:00
zotlabs
66d72d9870 as_fetch depends on the pubcrawl plugin, but is referenced in core. Ensure that it doesn't chuck a wobbly if the function isn't found. This is undergoing significant revision for zot6 so this action is considered a short-term workaround until that work work stabilises. 2018-04-22 22:10:15 -07:00
zotlabs
11624cd83e owa: attempt channel discovery if not found 2018-04-22 19:24:15 -07:00
zotlabs
55b7182136 use consistent naming for 'Channel role and privacy' 2018-04-22 18:48:48 -07:00
zotlabs
55dc6fbc1c imagemagick preserves exif when scaling. GD does not. We do not want to preserve exif on thumbnails which we have rotated, as a browser reading the exif information could rotate them yet again. This checkin adds an abstract function to the generic photo driver which makes the behaviour consistent by stripping EXIF from imagick processed images. However, we will attempt to preserve any ICC colour profiles. See http://php.net/manual/en/imagick.stripimage.php 2018-04-22 18:12:16 -07:00
Jeroen
c446ffb814 back to only nickname 2018-04-22 20:16:04 +02:00
Jeroen
689ced2ac0 back to only nickname 2018-04-22 20:15:14 +02:00
mrjive
51c533536f Merge pull request #10 from redmatrix/dev
Dev
2018-04-22 10:54:41 +02:00
Mike Macgirvin
2431631b46 Update PermissionLimits.php
anon comment permissions fix
2018-04-22 07:00:01 +10:00
Mike Macgirvin
e189f5f887 Update PermissionLimits.php
Difficult for me to do this locally at the moment so updating in git
2018-04-22 06:58:33 +10:00
Mike Macgirvin
5a736d338b Merge pull request #1099 from zotlabs/dev
This is important
2018-04-21 19:09:27 +10:00
zotlabs
95059f2bfd fix permissionlimitstest after recent changes 2018-04-21 00:37:04 -07:00
zotlabs
1bb67f63e3 anonymous comments shouldn't be allowed in StdLimits 2018-04-20 18:58:21 -07:00
zotlabs
b12d254427 fix any misconfigured channel permission limits 2018-04-20 18:58:21 -07:00
zotlabs
af909f66a7 fix any misconfigured channel permission limits 2018-04-20 15:03:16 -07:00
zotlabs
e05f41630b anonymous comments shouldn't be allowed in StdLimits 2018-04-20 14:38:15 -07:00
Galette Saucisse
ba8f8c3403 Proposed fix for issue #1091 2018-04-20 19:17:52 +02:00
mrjive
84e2bdcf76 updated Italian translation 2018-04-20 06:25:40 -07:00
Manuel Jiménez Friaza
a211c16b73 Updated Spanish translation 2018-04-20 11:36:13 +02:00
mrjive
f325c29b48 adding link to post source 2018-04-20 02:29:57 -07:00
zotlabs
d5c451c4a8 This fix needs to go deeper in the code. PermissionLimits::Get is called in a lot of places. If we have no stored setting for a particular permission, return 0 - which is basically no permission except to self. 2018-04-19 23:44:22 -07:00
zotlabs
8d0cbeab38 better fix to permisisons.php - just cast to int. That's exactly what we want. 2018-04-19 23:37:47 -07:00
zotlabs
636fb95e24 permissions php error applying bit compare operation on a (presumed) boolean 2018-04-19 23:35:24 -07:00
zotlabs
2f1ad15645 fix navbar contact autocomplete 'undefined' hovertip 2018-04-19 22:19:52 -07:00
zotlabs
b1ed79f239 fix link to renamed permission roles doc subsection 2018-04-19 19:32:48 -07:00
zotlabs
aea61bf034 rename social - party to social - federation. Cleanup some of the documentation surrounding channels. This checkin contains translatable string changes. 2018-04-19 19:05:13 -07:00
zotlabs
2254262cf0 code booboo may have degraded the performance of the Trending tag query more than necessary 2018-04-19 17:43:50 -07:00
Galette Saucisse
872e4a0513 Create /doc/fr/toc.html
please add translated file toc.html
2018-04-19 18:22:47 +02:00
Galette Saucisse
0e1ea54c32 Update about.bb 2018-04-19 15:30:48 +02:00
Galette Saucisse
ff69413729 delete /doc/fr/about.bb
file is in wrong place, and supersceded by /doc/fr/about/about.bb
2018-04-19 15:11:49 +02:00
Galette Saucisse
a8c2b75b9b create new folder and file about.bb
the current about.bb is under /doc/fr/ and should be under /doc/fr/about/
this file is a complete French translation of the original English file
2018-04-19 15:07:28 +02:00
mrjive
c8ff773b96 Merge pull request #9 from redmatrix/dev
Dev
2018-04-19 09:51:58 +02:00
zotlabs
fa78dc79f3 follow activitypub by webfinger; requires addon update to all federation protocols 2018-04-19 08:44:41 +02:00
zotlabs
1ef31d27c7 relax restrictions to the design tools menu to allow those with write_pages permission; this doesn't fix the underlying modules though as there are some potential security issues at the moment. 2018-04-19 08:44:17 +02:00
zotlabs
f634d15768 do not queue anything which lacks a destination url 2018-04-19 08:42:50 +02:00
zotlabs
9bc9aa123f just provide the trending tags in public stream by default and simplify the query to improve load times; I intend to do additional work on this feature later 2018-04-19 08:42:37 +02:00
Mario Vavti
92b08f1f07 Merge remote-tracking branch 'mike/master' into dev 2018-04-19 08:28:42 +02:00
zotlabs
a81011333f follow activitypub by webfinger; requires addon update to all federation protocols 2018-04-18 19:41:09 -07:00
zotlabs
a2e0706d55 relax restrictions to the design tools menu to allow those with write_pages permission; this doesn't fix the underlying modules though as there are some potential security issues at the moment. 2018-04-18 17:26:05 -07:00
zotlabs
85ccfb4bbc do not queue anything which lacks a destination url 2018-04-18 17:07:29 -07:00
zotlabs
2ec28a5993 just provide the trending tags in public stream by default and simplify the query to improve load times; I intend to do additional work on this feature later 2018-04-18 15:56:57 -07:00
Galette Saucisse
8ff8a3eab9 Update French hmessages.po from Transifex 2018-04-18 17:41:09 +02:00
Galette Saucisse
f5573deb60 Update French hstrings.php from Transifex 2018-04-18 17:39:20 +02:00
Mario Vavti
16dcbc1e67 bump version 2018-04-18 08:52:10 +02:00
Mario Vavti
19782655e6 version bump and strings 2018-04-18 08:39:43 +02:00
zotlabs
c53f788cc8 add alt_pager to mod_moderate, remove legacy $a parameter from all occurrences of alt_pager 2018-04-17 23:36:35 -07:00
Mario Vavti
440ccf19d1 Merge remote-tracking branch 'mike/master' into dev 2018-04-18 08:19:56 +02:00
zotlabs
fc7d9c235c minor code optimisation 2018-04-17 22:23:28 -07:00
zotlabs
0f5ae5cac8 also add the noisy 'rss' tag 2018-04-17 21:55:00 -07:00
zotlabs
6903dbcc0d re-use directory safemode setting for public stream tag filtering since a handful of well-known tags skews the results wildly. Added 'bot' to the list just because it's noisy. A site can customise or nullify this feature if they desire. 2018-04-17 21:48:43 -07:00
zotlabs
a806c68713 fine tuning the public stream tag results 2018-04-17 20:27:36 -07:00
zotlabs
393cd46a82 public stream tag enhancements 2018-04-17 20:08:14 -07:00
zotlabs
0576046d02 when changing cover photo, show existing 2018-04-17 16:29:32 -07:00
Mario Vavti
c0794a83b4 Merge remote-tracking branch 'mike/master' into dev 2018-04-17 19:00:15 +02:00
Mario Vavti
dcd636f7be fix closing parenthesis in wrong spot 2018-04-17 18:56:33 +02:00
Mario Vavti
83e7d89f7e update to bootstrap-4.1 and improve visibility of some text when using custom panel colours 2018-04-17 16:17:44 +02:00
zotlabs
02763811b3 missing update file in the previous update commit 2018-04-16 23:34:47 -07:00
zotlabs
8b9952e770 set the correct webfinger Accept: request header now that Mastodon fixed the bug that we changed it to work around 2018-04-16 23:32:40 -07:00
zotlabs
43e55eb9a6 Active channels information is a bit imprecise. Provide a higher accuracy method. This will require a transition period 2018-04-16 21:40:43 -07:00
zotlabs
120e578a67 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-16 20:28:22 -07:00
zotlabs
411b8e48a3 don't save a permcat with empty name 2018-04-16 18:09:14 -07:00
zotlabs
d38b5ed2f5 update the placeholder 2018-04-16 17:40:33 -07:00
zotlabs
04abfdd5a6 update the search js 2018-04-16 17:37:38 -07:00
zotlabs
1662f76f03 hubzilla issue #1078 ; provide content-type header for system emails (was already correct for notification emails) 2018-04-16 16:12:57 -07:00
mrjive
283e5d3a5c Merge pull request #8 from redmatrix/dev
Dev
2018-04-16 17:27:14 +02:00
Mario Vavti
bef5be827d remove some more distinct in queries and observe any regressions. this is related to issue #1079 and commit d47ea20aa8 2018-04-16 11:42:13 +02:00
Mario Vavti
a8b78dc1f5 Merge remote-tracking branch 'mike/master' into dev 2018-04-16 09:24:22 +02:00
zotlabs
19888b95cc draft-cavage issues 2018-04-15 21:04:09 -07:00
zotlabs
3e6a55a295 issue with wiki sync 2018-04-15 17:29:40 -07:00
Mario Vavti
bbe58dd550 css fixes 2018-04-15 10:20:32 +02:00
Mario Vavti
a422063c7d fix regression where in the starred tab only top level posts were visible 2018-04-15 10:15:49 +02:00
zotlabs
518db97962 never mind. dbg(1) now gives you the basic debug result and dbg(2) gives you the verbose debug option with all the results. 2018-04-14 16:56:30 -07:00
zotlabs
fdf5799857 allow dbg(2) to only return the canonical SQL used in the query and the number of results, but not log every single result. Maybe we should use 1 for this and 2 for the full results, but I didn't really want to change the way people do things today. If anybody has a strong opinion about doing this, go ahead and change it and send a note to the developer forum. 2018-04-14 16:47:51 -07:00
mrjive
99dc161483 Merge pull request #7 from redmatrix/dev
Dev
2018-04-14 15:59:30 +02:00
zotlabs
f16dc7afc8 upgrade incutio xmlrpc library to use hubzilla curl wrapper 2018-04-13 17:58:11 -07:00
Galette Saucisse
32cd0cc984 Create /doc/context/fr/settings/features/help.html
French translation for context help
2018-04-13 22:17:48 +02:00
Galette Saucisse
169d75d2d1 Update hstrings.php 2018-04-13 22:17:37 +02:00
Galette Saucisse
6d234daa88 Update hmessages.po 2018-04-13 22:17:27 +02:00
Galette Saucisse
f8f64e853d Create /doc/context/fr/admin/queue/help.html
French translation for context help
2018-04-13 22:17:11 +02:00
Galette Saucisse
823b873e50 Update help.html 2018-04-13 22:16:53 +02:00
Galette Saucisse
5c97280359 translation correction 2018-04-13 22:16:41 +02:00
Galette Saucisse
7e62c3fa29 Create /doc/context/fr/admin/logs/help.html
French translation of context help
2018-04-13 22:16:10 +02:00
Galette Saucisse
c18b6cbd68 Create /doc/context/fr/channel
French translation for context help
2018-04-13 22:15:58 +02:00
git-marijus
29b3950e32 Merge pull request #1067 from galettesaucisse/patch-7
Create /doc/context/fr/settings/features/help.html
2018-04-13 22:14:15 +02:00
git-marijus
17bc11bbd4 Merge pull request #1066 from galettesaucisse/patch-6
Update French hstrings.php
2018-04-13 22:13:33 +02:00
git-marijus
3e937266b2 Merge pull request #1063 from galettesaucisse/patch-5
Update French hmessages.po
2018-04-13 22:13:13 +02:00
git-marijus
a02f22aab7 Merge pull request #1060 from galettesaucisse/patch-4
Create /doc/context/fr/admin/queue/help.html
2018-04-13 22:12:51 +02:00
git-marijus
b31616e5bf Merge pull request #1059 from galettesaucisse/patch-3
Create /doc/context/fr/admin/logs/help.html
2018-04-13 22:12:22 +02:00
git-marijus
b1057e8cd1 Merge pull request #1056 from galettesaucisse/patch-2
Create /doc/context/fr/channel
2018-04-13 22:12:03 +02:00
Mario Vavti
7543e27eae version and strings update 2018-04-13 22:11:08 +02:00
Mario Vavti
8a43bead74 fix illegal string offset warning 2018-04-13 13:20:20 +02:00
Mario Vavti
2867cd2043 fix wrong item key 2018-04-13 12:50:37 +02:00
Mario Vavti
88ca6fc12e Merge remote-tracking branch 'mike/master' into dev 2018-04-13 11:59:09 +02:00
Mario Vavti
e04d3c45a4 provide visible star status for starred posts 2018-04-13 11:58:12 +02:00
mrjive
db586e0c27 Merge pull request #6 from redmatrix/dev
Dev
2018-04-13 10:23:30 +02:00
Mario Vavti
4aaea422bc move the thread author menu to to the wall item photo. the menu list was getting too long. 2018-04-13 10:12:57 +02:00
zotlabs
7fd882a088 autosave comment enhancements 2018-04-12 22:24:25 -07:00
zotlabs
b0396cd646 work on autosave 2018-04-12 21:44:06 -07:00
zotlabs
d5117a62b8 update the tags and mentions section of the member_guide with recent changes 2018-04-12 20:49:20 -07:00
zotlabs
b13328140f accept system_language through either get or post 2018-04-12 18:21:34 -07:00
zotlabs
3be0b0925c remove recipient name from stored notifications but keep them in emails. 2018-04-12 17:55:45 -07:00
Mario Vavti
7c47b9d75c Merge remote-tracking branch 'mike/master' into dev 2018-04-12 14:46:36 +02:00
Mario Vavti
09a8b4b379 fix issue #1047 2018-04-12 10:58:31 +02:00
mrjive
ea36ebd0df Merge pull request #5 from redmatrix/dev
Dev
2018-04-12 10:12:46 +02:00
zotlabs
549f7a53b1 util/dcp (server to cloud file copy) better handling when destination directory is the channel root 2018-04-11 22:27:59 -07:00
zotlabs
739a612824 poll responses: start treating them as hidden activities now so that when this feature gets finished it will work flawlessly for versions greater than today. 2018-04-11 21:51:57 -07:00
zotlabs
953a2fd9b2 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-11 17:44:51 -07:00
zotlabs
2fa9645dfc channel delegation: push current identity and pop it on logout from the delegated channel. This fixes the known issue of being forced to log back in after leaving the delegated channel. 2018-04-11 17:40:04 -07:00
Mario Vavti
3bd6450333 also clean localStorage upon logout or channel switch 2018-04-11 12:37:25 +02:00
Mario Vavti
fee258edbe allow to toggle visibility of likes/dislikes in notifications 2018-04-11 11:49:33 +02:00
Mario Vavti
e294dfa760 wrong function 2018-04-11 08:17:30 +02:00
Galette Saucisse
669013f7e6 Create /doc/context/fr/settings/features/help.html
French translation for context help
2018-04-10 19:59:09 +02:00
Galette Saucisse
dde482082e Update hstrings.php 2018-04-10 19:10:11 +02:00
Galette Saucisse
868e9aa058 Update hmessages.po 2018-04-10 18:02:42 +02:00
Galette Saucisse
a815e2e30b Create /doc/context/fr/admin/queue/help.html
French translation for context help
2018-04-10 14:08:26 +02:00
Galette Saucisse
89b76530da Update help.html 2018-04-10 14:06:10 +02:00
Galette Saucisse
e909c2bbce translation correction 2018-04-10 14:05:31 +02:00
Galette Saucisse
ab1e1e9114 Create /doc/context/fr/admin/logs/help.html
French translation of context help
2018-04-10 13:36:38 +02:00
Galette Saucisse
13b0fdadb1 Create /doc/context/fr/channel
French translation for context help
2018-04-10 12:19:29 +02:00
Galette Saucisse
90580a860b Update French hstrings.php
added some missing strings
2018-04-10 12:11:15 +02:00
git-marijus
6d7fdb14f0 Merge pull request #1054 from galettesaucisse/patch-1
Update French hstrings.php
2018-04-10 12:10:45 +02:00
Mario Vavti
a2cb7b9ca4 do not get or set post category if the field is not available. remove logging. 2018-04-10 11:37:57 +02:00
Mario Vavti
91aeb25523 fix autosave content not cleaned after post submission 2018-04-10 11:17:20 +02:00
Galette Saucisse
bb86ee7cc4 Update French hstrings.php
added some missing strings
2018-04-10 09:54:26 +02:00
zotlabs
887a59066b last commented expiration setting in admin 2018-04-10 00:05:20 -07:00
zotlabs
e060135304 add commented_days parameter to item_expire(), default 7. Both expire_days and commented_days have to be exceeded to expire. 2018-04-09 23:39:47 -07:00
zotlabs
6bf2c64aa2 Create catcloud widget and provide a type option which can include 'cards' or 'articles' 2018-04-09 21:44:04 -07:00
Andrew Manning
1aba495a1c Replace pushState with replaceState to prevent browser history clutter in Help pages. 2018-04-09 20:50:41 -04:00
git-marijus
482e26ae26 Merge pull request #1053 from jschweinsberg/fix/pubstream-notifications
Public stream notifications
2018-04-09 22:41:40 +02:00
Julian Schweinsberg
c50105b8c1 Show "Unseen public activity" channel setting when site only public streams are activated 2018-04-09 19:26:35 +02:00
Julian Schweinsberg
530a378aa1 Modified notifications widget to add the public stream when the current user is allowed to see it only 2018-04-09 19:18:53 +02:00
Mario Vavti
04935f139d fix xchan_query() for anon comments 2018-04-09 14:28:41 +02:00
Mario Vavti
5228462363 bump version 2018-04-09 13:19:22 +02:00
git-marijus
9dc831f1ef Merge pull request #1051 from anaqreon/auto-save
Auto-save comment and post text
2018-04-09 13:18:09 +02:00
zotlabs
6844d7c752 don't provide a connect button for transient identities 2018-04-08 22:53:04 -07:00
zotlabs
cda3d23508 more intelligent handling of level 0 - and remove an extraneous logging function 2018-04-08 22:09:08 -07:00
zotlabs
e4ee165e29 more work merging techlevels and features 2018-04-08 22:02:48 -07:00
zotlabs
e0255c0dc4 first cut of feature/techlevel merge 2018-04-08 20:05:30 -07:00
zotlabs
6ce3ca1ce0 anon_identity_init: put anonymous commenters in network 'anon' so that they can be easily distinguished from federated network members and handled appropriately. 2018-04-08 19:28:57 -07:00
zotlabs
c3cd613f42 extend AC 2018-04-08 17:30:46 -07:00
zotlabs
f2078b25ad hubzilla issue #1050 pubstream notifications visible when pubstream is not 2018-04-08 16:51:29 -07:00
Andrew Manning
f9ec3c66ff Added feature setting for auto-save, defaulting to enabled. 2018-04-08 19:44:21 -04:00
Andrew Manning
4760dc9bcb removed Autosavetext.php file since it is not used with localStorage 2018-04-08 14:25:04 -04:00
Andrew Manning
808f362921 Merge branch 'dev' into auto-save 2018-04-08 14:23:34 -04:00
Andrew Manning
43cafcc761 Auto-save post and comment entry using localStorage in browser. 2018-04-08 14:18:10 -04:00
zotlabs
b00c22b69b we shouldn't need distinct here, since ids_to_querystr() will filter duplicates. It might have an effect on pager totals. Need to monitor for a few days. 2018-04-08 12:55:52 +02:00
git-marijus
73248fd227 Merge pull request #1048 from dentm42/plugin-error-trap
Trap plugin install/uninstall load/unload errors to avoid whitescreen
2018-04-08 11:48:05 +02:00
Mario Vavti
7205ffb5c0 Merge remote-tracking branch 'mike/master' into dev 2018-04-08 11:38:31 +02:00
M.Dent
ff77f14f2f Remove remove plugin from \App::[] on uninstall 2018-04-07 23:41:22 -04:00
M.Dent
a0cba6564f Uninstall plugin on Exception on load. 2018-04-07 23:12:39 -04:00
M.Dent
35b4f0a863 Add class for Exceptions 2018-04-07 23:01:18 -04:00
DM42.Net (Matt Dent)
0fba1a777e Add error handler and try/catch for all () calls 2018-04-07 22:17:19 -04:00
zotlabs
d47ea20aa8 we shouldn't need distinct here, since ids_to_querystr() will filter duplicates. It might have an effect on pager totals. Need to monitor for a few days. 2018-04-07 16:54:49 -07:00
Andrew Manning
be6dcb5d0a Merge branch 'dev' into auto-save 2018-04-07 17:48:48 -04:00
Mario Vavti
bddf8cfde4 Merge remote-tracking branch 'mike/master' into dev 2018-04-07 14:16:59 +02:00
Mario Vavti
9369150db7 rename button label in editpost from edit to submit 2018-04-07 14:15:07 +02:00
Mario Vavti
0fd7634339 rename relation to relationship - issue #1044 2018-04-07 13:50:41 +02:00
Mario Vavti
969a91c432 use Title instead of Caption - issue #1037 2018-04-07 13:36:34 +02:00
Mario Vavti
4d08fcf1a7 Use Add Files/Photos instead of Upload to open the upload dialog 2018-04-07 13:29:36 +02:00
zotlabs
8048b7addc channel import failing to provide channel_password value 2018-04-06 16:45:25 -07:00
zotlabs
4499ee178f put directory server in siteinfo - there are a lot of sites using broken directories 2018-04-06 01:24:38 -07:00
zotlabs
b17f741050 bring back the dnt policy document, not sure when it was lost 2018-04-05 22:15:15 -07:00
zotlabs
4a45c35c4e oauth2 client settings page 2018-04-05 21:01:36 -07:00
zotlabs
f4c94ab121 use profile_store_lowlevel() when importing profile structures to ensure all non-null fields are present 2018-04-05 17:31:20 -07:00
zotlabs
64bb1ca2bb Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-05 17:18:34 -07:00
zotlabs
b7386a0e88 fix permalinks to children of articles and cards 2018-04-05 16:58:37 -07:00
mrjive
a7ff2cc5ea Merge pull request #3 from redmatrix/dev
Dev
2018-04-05 10:52:39 +02:00
Mario Vavti
dcacdd23c8 Merge remote-tracking branch 'mike/master' into dev 2018-04-05 10:44:00 +02:00
Mario Vavti
8e46b07268 bump version 2018-04-05 10:31:51 +02:00
Mario Vavti
2f4c441074 change hearts for heart in reactions but cheet with the unicode 2018-04-05 10:11:02 +02:00
Mario Vavti
61f85bcb14 use transform to scale emojis. this prevents text jumping on hover 2018-04-05 10:10:26 +02:00
Mario Vavti
699ff644ad fix missing login/out buttons for medium screensize 2018-04-05 09:36:32 +02:00
zotlabs
0877e5b578 wrong function 2018-04-05 09:36:16 +02:00
zotlabs
46114bb24d display and link issues with quoted tags 2018-04-05 09:35:29 +02:00
zotlabs
6208ee3809 don't include the q and PHPSESSID request variables in a redirected rpost 2018-04-05 09:34:09 +02:00
zotlabs
17e341d245 php strpos() empty needle warning when a term entry has no url 2018-04-05 09:33:17 +02:00
zotlabs
f22c7afc59 preserve existing categories when updating an app from an embed source 2018-04-05 09:32:51 +02:00
zotlabs
d7aa24fd2d app sellpage not being stored 2018-04-05 09:32:35 +02:00
Mario Vavti
255c5ae94f new markdown lib seems to handle < and > correct. remove the workaraound. 2018-04-05 09:31:30 +02:00
zotlabs
ab2ff4a520 tagadelic was being overly protective of permissions. 2018-04-05 09:31:00 +02:00
zotlabs
1a53a4bc53 make list mode work in cards and articles 2018-04-05 09:30:01 +02:00
zotlabs
4423f4c930 make alt_pager work for articles/cards 2018-04-05 09:29:51 +02:00
zotlabs
9c512bb645 hubzilla issue #1013 - comments not displayed in single card/article view 2018-04-05 09:28:05 +02:00
git-marijus
bd0959b5a4 Merge pull request #1039 from phellmes/doco-feat-add
add basic structure for additional features documentation
2018-04-05 09:18:15 +02:00
zotlabs
fe401203bd bbcode() - ensure that $options is always an array, as the interface has changed slightly 2018-04-04 23:14:41 -07:00
zotlabs
c86032d4dc oauth2 dynamic client registration update 2018-04-04 20:58:54 -07:00
zotlabs
e864679942 private forum mentions 2018-04-04 18:53:06 -07:00
zotlabs
cadef5924f Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-04 18:15:33 -07:00
zotlabs
1a25b0bda7 allow the profile recrods to be cloned separately 2018-04-04 17:54:43 -07:00
zotlabs
f748139606 allow the link target attribute to be modified in bbcode() from much further up the call stack in prepare_page() which will usually refer to a local item. 2018-04-04 16:33:11 -07:00
Andrew Manning
a5aff7d0c9 Post body and title are auto-saved 2018-04-04 15:22:38 -04:00
phellmes
2afe28785c add basic structure for additional features documentation
Setting the raw frame with overview, short descriptions like in code
and already revealing skill levels.

Based on the current (recently modified) structure of the feature settings.

Detailed descriptions in work and coming with later commits as well as
a dedicated admin section for that topic. Better menu integration
may be possible with Andrew's new doco structure work in progress later.
2018-04-04 16:00:34 +02:00
Mario Vavti
aca719ac74 do not use punify() in get_baseurl() due to performance issues 2018-04-04 15:01:16 +02:00
zotlabs
8871f8d0f4 disable the oauth2testvehicle completely until it is safe 2018-04-03 21:58:11 -07:00
zotlabs
29b377d4c5 get rid of dangerous test code 2018-04-03 21:13:26 -07:00
zotlabs
4915a4efbb OAuth2 integration 2018-04-03 21:08:40 -07:00
zotlabs
245142cc07 Merge branch 'master' into oauth2 2018-04-03 19:57:35 -07:00
zotlabs
5ac0f371c7 community tags: allow signature of either author or owner so that it stands a chance of working across multiple delivery chains 2018-04-03 17:52:54 -07:00
zotlabs
cf6d51bee8 some more work on hubzilla issue #1019 2018-04-02 22:47:11 -07:00
zotlabs
d68ce0f345 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-04-02 20:45:18 -07:00
zotlabs
4e21c14ff6 community tagging refactor - we no longer send an edited post/comment to everybody. The post owner approves the tag and this is transmitted along with the tag activity. Recipients check the signature of the approval and add the tag to their local copy of the post. 2018-04-02 20:39:28 -07:00
zotlabs
753e1e4616 commtag refactor 2018-04-02 19:32:22 -07:00
zotlabs
9a1f051068 missing year on profile birthday input, some optimisations to stats 2018-04-02 13:32:10 -07:00
zotlabs
bcffb6cf55 obscurify chats 2018-04-01 16:53:10 -07:00
Mario Vavti
0e09dca952 fix missing login/out buttons for medium screensize 2018-04-01 20:19:56 +02:00
zotlabs
3bd3686acf Merge branch 'oauth2' of https://github.com/anaqreon/hubzilla into oauth2 2018-03-31 14:00:09 -07:00
zotlabs
4493304fa7 wrong function 2018-03-31 13:22:12 -07:00
Andrew Manning
6decffb00c Merge branch 'dev' into oauth2 2018-03-31 13:41:29 -04:00
zotlabs
54e941724f Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-31 01:45:26 -07:00
zotlabs
e155e7d9ce undo vcard on display module until we can make it accurate 2018-03-31 01:43:33 -07:00
Mario Vavti
6433ce70a1 Merge remote-tracking branch 'mike/master' into dev 2018-03-31 09:26:58 +02:00
zotlabs
1e086a4ac8 Hubzilla issue #1022 cleanup of post formatting 2018-03-30 17:13:21 -07:00
zotlabs
1c3e669761 Hubzilla issue #1022 - improve the usability 2018-03-30 16:47:47 -07:00
zotlabs
af125fbe4f Hubzilla issue #1022 - provide a way to share wiki pages. Currently this is only implemented in the 'edit' pane and could use some improvement/enhancement 2018-03-30 16:09:25 -07:00
zotlabs
43249bd4be hubzilla issue #1020 - PM using unicode domain for recipient. May require further testing 2018-03-30 15:18:33 -07:00
zotlabs
f54aa4f21e allow case independence of replacements as well as patterns 2018-03-30 01:59:32 -07:00
Mario Vavti
6822415ee2 Merge remote-tracking branch 'mike/master' into dev 2018-03-30 09:07:43 +02:00
zotlabs
6d0e1b0e07 display and link issues with quoted tags 2018-03-29 17:06:23 -07:00
zotlabs
238303d819 add directory keyword links to profile 2018-03-29 15:32:35 -07:00
zotlabs
998f39868f directory: link entry keywords to a directory keyword search 2018-03-29 14:27:26 -07:00
mrjive
20ac91703d Merge pull request #1 from redmatrix/dev
Dev
2018-03-29 17:47:50 +02:00
zotlabs
33bb89729c hubzilla issue #1019 - punycode urls on connedit page when displaying locations 2018-03-29 02:26:25 -07:00
Mario Vavti
e06e64823f bump version 2018-03-29 10:30:32 +02:00
zotlabs
cd485b0fdf hubzilla issue #1015 - login with unicode domain name 2018-03-28 19:25:11 -07:00
zotlabs
1cf0de568d use context method 2018-03-28 18:32:04 -07:00
zotlabs
662316e687 update folder timestamp on uploaded files (fixme - we need to recurse back to the storage root but that is for another day) 2018-03-27 21:13:14 -07:00
zotlabs
14383a4c4a uexport: set content-type to json and add sections info to the default filename if present 2018-03-27 18:43:59 -07:00
Andrew Manning
1dc795722a Merge branch 'dev' into oauth2 2018-03-27 21:11:34 -04:00
zotlabs
08274ffab7 put vcard widget with author of top-level post on display page 2018-03-27 18:01:20 -07:00
zotlabs
5ea11d1222 don't include the q and PHPSESSID request variables in a redirected rpost 2018-03-27 16:27:28 -07:00
zotlabs
35b6c2baad Hard fail imports of removed channels. This is silly. 2018-03-27 15:08:27 -07:00
zotlabs
a92f22a4a4 IDN: force baseurl to be punycode; for consistency and federation all internal urls are US-ASCII, unicode MAY be used for display. 2018-03-25 23:02:41 -07:00
zotlabs
2fc3f381ac php strpos() empty needle warning when a term entry has no url 2018-03-25 21:48:42 -07:00
zotlabs
2a2a21a736 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-25 21:17:34 -07:00
zotlabs
5a739ddc47 Merge branch 'newmemberwidget' 2018-03-25 21:16:10 -07:00
zotlabs
4ef2493e95 testing start_menu feature 2018-03-25 21:15:23 -07:00
Mario Vavti
c98776923a Merge remote-tracking branch 'mike/master' into dev 2018-03-25 11:21:24 +02:00
zotlabs
bb4f9eecbe preserve existing categories when updating an app from an embed source 2018-03-24 21:17:15 -07:00
zotlabs
d4e91d5d9b app sellpage not being stored 2018-03-24 15:13:19 -07:00
zotlabs
558e3f8042 code optimisations and de-duplication on updating parent commented timestamp 2018-03-24 02:22:24 -07:00
Mario Vavti
9f9b9dfd82 Merge remote-tracking branch 'mike/master' into dev 2018-03-24 09:12:48 +01:00
zotlabs
a8d81a68d6 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-23 21:44:55 -07:00
zotlabs
abe6ab4775 logic fallacy when updating parent timestamp of moderated comment 2018-03-23 21:24:24 -07:00
zotlabs
9a155cf5a5 turn newmember widget into a feature 2018-03-23 19:03:30 -07:00
Mario Vavti
ae9e64cedf prevent reload loop if somebody lands on /ochannel (without channel_address and without trailing slash) 2018-03-23 10:37:10 +01:00
zotlabs
e6d62f6e05 Add Ochannel module for testing OStatus bad behaviour 2018-03-23 10:36:56 +01:00
goofy-bz
09567da292 Update hmessages.po
typofix
2018-03-23 10:30:40 +01:00
fadelkon
a1ce5df74f Update translations for catalan (ca/ca_ES) from transifex 2018-03-23 10:29:57 +01:00
git-marijus
dede5fabeb Merge pull request #1004 from goofy-bz/patch-1
Update hmessages.po
2018-03-23 10:27:56 +01:00
git-marijus
4a4c18b8b3 Merge pull request #1008 from fadelkon/update_cat_translation
Update translations for catalan (ca/ca_ES) from transifex
2018-03-23 10:27:17 +01:00
git-marijus
06026c1c27 Merge pull request #1009 from dawnbreak/QA_testing
👷Extend Travis, add PostgreSQL10.
2018-03-23 10:26:26 +01:00
git-marijus
e2b9162a30 Merge pull request #1010 from dawnbreak/dev
⬆️ Update libraries.
2018-03-23 10:25:58 +01:00
Mario Vavti
eec4d9b5ad an attemot to fix the PermissionRolesTest 2018-03-23 10:16:06 +01:00
Mario Vavti
376091010f Merge remote-tracking branch 'mike/master' into dev 2018-03-23 10:03:54 +01:00
Mario Vavti
ac967db4e8 new markdown lib seems to handle < and > correct. remove the workaraound. 2018-03-23 09:40:24 +01:00
zotlabs
af8cbf000f tagadelic was being overly protective of permissions. 2018-03-22 21:23:12 -07:00
zotlabs
034032c7c2 slight change in mail privacy implementation. If you initiate a private mail conversation and they respond, accept the reply. You can't hide behind your permissions or lack thereof. Often this will be accidental. If you truly want to block them from replying and your permissions otherwise would not allow them to reply, delete the conversation. 2018-03-22 19:52:25 -07:00
zotlabs
05e11844e5 make list mode work in cards and articles 2018-03-22 17:17:00 -07:00
zotlabs
4ba91cf4e3 make alt_pager work for articles/cards 2018-03-22 16:34:27 -07:00
zotlabs
9a52b90f22 hubzilla issue #1013 - comments not displayed in single card/article view 2018-03-22 15:38:00 -07:00
Mario Vavti
8ea8700eef prevent reload loop if somebody lands on /ochannel (without channel_address and without trailing slash) 2018-03-22 13:55:23 +01:00
zotlabs
1f128e84fb Hubzilla issue #1006, fix anonymous comments bump thread before being approved. 2018-03-21 22:52:24 -07:00
zotlabs
1514b0f4e5 initial support for alternative sort orders on the cloud pages. Can be triggered manually but further development is required. 2018-03-21 21:19:18 -07:00
zotlabs
dc066d4c9b Add Ochannel module for testing OStatus bad behaviour 2018-03-21 15:44:56 -07:00
zotlabs
3d6b606792 add the social "party" permission role 2018-03-20 04:08:36 -07:00
Klaus Weidenbach
c80837a9e6 ⬆️ Update libraries.
michelf/php-markdown (1.7.0 => 1.8.0)
ezyang/htmlpurifier (v4.9.3 => v4.10.0)
commerceguys/intl (v0.7.4 => v0.7.5)
sabre/http (4.2.3 => v4.2.4)
sabre/vobject (4.1.3 => 4.1.5)
2018-03-18 02:15:29 +01:00
Klaus Weidenbach
a732b2bca1 👷Extend Travis, add PostgreSQL10.
Add PostgreSQL10 to TravisCI through Docker container.
Use PHP7.2 instead of PHP7.1 as default test environment.
Update to current stable MariaDB 10.2 from stable (GA) 10.1.
2018-03-17 23:27:56 +01:00
Mario Vavti
0009f7f051 do not include pending registrations in accounts and goaway to /admin/accounts after approval or denial of an pending registration 2018-03-17 21:52:56 +01:00
fadelkon
7b04c7e7df Update translations for catalan (ca/ca_ES) from transifex 2018-03-17 19:03:10 +01:00
Mario Vavti
b5cc26fe76 Merge remote-tracking branch 'mike/master' into dev 2018-03-17 09:02:48 +01:00
goofy-bz
b3cb78a598 Update hmessages.po
typofix
2018-03-17 08:24:16 +01:00
zotlabs
60b38a3a52 slight re-org and update of documentation, moving the tutorial to the top. 2018-03-16 15:34:09 -07:00
Mario Vavti
c0a896ff5e change hearts for heart in reactions but cheet with the unicode 2018-03-16 12:03:52 +01:00
Mario Vavti
63bbde2368 use transform to scale emojis. this prevents text jumping on hover 2018-03-16 11:03:22 +01:00
zotlabs
91b710b07d add auth flag to share attributes so we can make a costly determination to use zid at post submission time instead of making multiple calls to is_matrix_url() at render time 2018-03-15 17:51:24 -07:00
Mario Vavti
34fee2a790 match hosts instead of urls to decide if to zid or not to zid 2018-03-15 14:53:18 +01:00
Mario Vavti
6c709551ce do not always zid share links. add missing < 2018-03-15 14:31:50 +01:00
Mario Vavti
aa4f8b2901 add xchan_network = zot and xchan_deleted = 0 to the random_profile() query 2018-03-15 13:34:40 +01:00
Mario Vavti
3003f85a3e fix channel_address 2018-03-15 11:09:58 +01:00
Mario Vavti
33573edafa make the oneway-overlay slightly opaque 2018-03-15 11:09:22 +01:00
Mario Vavti
95c53c7e0b add zotadel.net to directory fallback servers 2018-03-15 10:13:30 +01:00
zotlabs
a94a28bb7e mastodon content-warning cont: only strip nsfw tag if a content warning spoiler is used. Else it's legitimately nsfw. 2018-03-14 20:47:11 -07:00
zotlabs
7b56fdebac more work with unicode usernames 2018-03-14 18:42:07 -07:00
zotlabs
0905018d3b use original exif_read_data() parameters which were lost in a regression; unset automatic nsfw category generated for Mastodon content warning posts, as people use CW as a spoiler mechanism 99% of the time and flagging inappropriate content 1% of the time. 2018-03-14 14:51:33 -07:00
Mario Vavti
9d230b1f4c indicate that there are events today in notifications by changing the badge class from secondary to danger. issue #1001 2018-03-14 21:39:33 +01:00
Mario Vavti
9f4064e03b update justified gallery lib from 3.6.3 to 3.6.5 2018-03-14 11:49:19 +01:00
Mario Vavti
461e86423a Merge remote-tracking branch 'mike/master' into dev 2018-03-14 11:37:24 +01:00
Mario Vavti
f70413a031 fix channel_address 2018-03-14 10:47:36 +01:00
Mario Vavti
26b7a3aca0 make the oneway-overlay slightly opaque 2018-03-14 10:33:23 +01:00
Mario Vavti
75721b7e82 reveal the profile name field only if multi prifiles feature is enabled 2018-03-14 10:24:08 +01:00
Mario Vavti
fa3e7a574f show site registration notifications setting only to site admin 2018-03-14 10:03:17 +01:00
Mario Vavti
d4fa33dddd whitespace 2018-03-14 09:19:06 +01:00
zotlabs
a0cbed80f3 make unicode usernames work in chanview module 2018-03-14 00:50:12 -07:00
zotlabs
128d1f7aa8 somewhere along the line the output of exif_read_data() changed and it no longer provides populated sections. Adjust for the new format and allow for the old because I cannot find documentation of this change anywhere. This affects photo rotation and the photo map feature. 2018-03-13 22:47:11 -07:00
Mario Vavti
09a841f3be add ability to disable newmember widget ahead of time 2018-03-13 15:20:32 +01:00
mrjive
074bf009d8 Partial italina translationhmessages.po hstrings.php 2018-03-13 12:02:06 +01:00
git-marijus
268b96effa Merge pull request #1000 from mrjive/dev
Connections page filtering for active connections
2018-03-13 12:01:23 +01:00
Manuel Jiménez Friaza
5a3c2b19c9 Spanish translation: adapted the new timeago's stuff 2018-03-13 11:59:36 +01:00
git-marijus
b120394b49 Merge pull request #999 from mjfriaza/dev
Spanish translation: adapted the new timeago's stuff
2018-03-13 11:58:40 +01:00
Manuel Jiménez Friaza
46c67e7f2f Spanish translation: adapted the new timeago's stuff 2018-03-13 11:20:08 +01:00
mrjive
790660e612 Merge pull request #18 from redmatrix/dev
Dev
2018-03-13 10:59:21 +01:00
mrjive
2bcfa0c126 small work on connections page 2018-03-13 02:57:08 -07:00
Mario Vavti
e02029ecc6 bump version 2018-03-13 09:46:11 +01:00
Manuel Jiménez Friaza
09e143dc1f Spanish translation: added el before artículo, which is the correct construction. 2018-03-13 09:38:03 +01:00
git-marijus
53c1d3775c Merge pull request #997 from mjfriaza/dev
Spanish translation: added "el" before "artículo", which is the correct construction
2018-03-13 09:37:16 +01:00
zotlabs
62ad32cf2e obscure permission issue with custom permissions when using the highly discouraged advisory privacy modes 2018-03-13 09:08:32 +01:00
Mario Vavti
150e238b02 Merge remote-tracking branch 'mike/master' into dev 2018-03-13 09:05:40 +01:00
zotlabs
ab1d47b36f unicode/emoji usernames. Warning: experimental feature, unstable, untested, disabled by default, use at your own risk, may not federate to other platforms and protocols. May not clone correctly. Bug reports which neglect to include detailed roubleshooting information and patches/pull requests will be ignored. 2018-03-12 20:54:55 -07:00
Andrew Manning
dcd658f12e Merge branch 'dev' into oauth2 2018-03-12 19:50:25 -04:00
zotlabs
34399b8b47 obscure permission issue with custom permissions when using the highly discouraged advisory privacy modes 2018-03-12 15:47:33 -07:00
Mario Vavti
092c1c8c4c add extra firstpage check 2018-03-12 09:54:15 +01:00
Mario Vavti
b265a55b81 Merge remote-tracking branch 'mike/master' into dev 2018-03-12 09:37:29 +01:00
zotlabs
717ae54868 Setup - .htconfig.php write access is now required for automated installation. [String change - leave in dev for the next release] 2018-03-11 16:42:46 -07:00
Mario Vavti
ade11568f9 update mysql schema 2018-03-11 13:53:53 +01:00
Mario Vavti
98541beee3 update mysql schema 2018-03-11 13:53:15 +01:00
Manuel Jiménez Friaza
ec12b78ddf Spanish translation: added el before artículo, which is the correct construction. 2018-03-11 13:07:11 +01:00
zotlabs
08d2adddf5 remove debugging 2018-03-10 13:21:22 -08:00
zotlabs
a417389934 trim expects error ... in admin/site 2018-03-10 13:20:20 -08:00
Andrew Manning
aa6f7481a0 Fixed access_token request bug and returned oauth2-server-php library to unmodified state. 2018-03-10 15:43:13 -05:00
Mario Vavti
ff2935e70c do not use trim on array 2018-03-10 21:22:21 +01:00
Mario Vavti
cd21519de3 do not use trim on array 2018-03-10 21:21:44 +01:00
Andrew Manning
a4de63ca92 Merge branch 'dev' into oauth2 2018-03-10 15:10:09 -05:00
Mario
4baf5eab16 Merge branch '3.2RC' 2018-03-09 11:12:18 +01:00
Mario Vavti
7361af85b5 bump version 2018-03-09 11:07:40 +01:00
Mario Vavti
8ce644af28 update changelog 2018-03-09 11:06:28 +01:00
Mario Vavti
78040330b6 update changelog 2018-03-09 11:06:05 +01:00
zotlabs
3f88a7619f notifications-btn-1 does not actually require the text-white class and this is known to cause issues on dark themes 2018-03-09 09:35:55 +01:00
Mathieu "Matbac" Bacou
056ec81a71 Uniformize title input with other input fields
Add rounded corners to mimic categories input field and main text area.
2018-03-09 09:24:47 +01:00
Mathieu "Matbac" Bacou
bc40651bc2 Remove useless background spec for category field 2018-03-09 09:24:35 +01:00
Mathieu "Matbac" Bacou
442b510b23 Fix background of tags field 2018-03-09 09:24:25 +01:00
Mathieu "Thrar" Bacou
4db112e28e Fix code background in wiki pages
Fix needed after commit c444e40c01
2018-03-09 09:24:14 +01:00
git-marijus
4fdad3b8af Merge pull request #994 from Reylak/dev
RedBasic theme dark schema update
2018-03-09 09:21:52 +01:00
Mario Vavti
9c02c66ed3 remove redundant comma 2018-03-09 09:17:57 +01:00
Mario Vavti
d82bf2b921 Merge remote-tracking branch 'mike/master' into dev 2018-03-09 09:04:14 +01:00
zotlabs
3ee35b83c2 notifications-btn-1 does not actually require the text-white class and this is known to cause issues on dark themes 2018-03-08 14:23:34 -08:00
Mathieu "Matbac" Bacou
500b141341 Uniformize title input with other input fields
Add rounded corners to mimic categories input field and main text area.
2018-03-08 21:12:33 +01:00
Mathieu "Matbac" Bacou
f9cca2422a Remove useless background spec for category field 2018-03-08 21:02:51 +01:00
Mathieu "Matbac" Bacou
76a8006003 Fix background of tags field 2018-03-08 20:56:23 +01:00
Mathieu "Thrar" Bacou
7ac70e1f23 Fix code background in wiki pages
Fix needed after commit c444e40c01
2018-03-08 20:14:44 +01:00
Mario
a0a1246efb use dbunescbin() for cover photos 2018-03-08 10:52:49 +01:00
Mario
8705882e6e use dbunescbin() for cover photos 2018-03-08 10:50:03 +01:00
Mario
2105cfd433 fix syntax error in postgres update 2018-03-08 10:27:43 +01:00
Mario
16f9e7bd40 fix syntax error in postgres update 2018-03-08 10:20:40 +01:00
Mario Vavti
f3a753bda6 Merge remote-tracking branch 'mike/master' into dev 2018-03-08 08:55:25 +01:00
zotlabs
1700aedbed remove extraneous logging 2018-03-07 17:29:01 -08:00
zotlabs
48b1042347 hashtag autocomplete 2018-03-07 16:59:55 -08:00
zotlabs
a454aad124 federated polls: GNU-Social requires us to preserve the original order of the poll answers for use in making a vote, unlike diaspora (which selects by guid) and activitypub (which selects by non-localisable text). 2018-03-07 15:39:14 -08:00
zotlabs
c8afde6f87 process follow from article menu in the background, do not reload page - hubzilla issue #987 2018-03-07 21:41:48 +01:00
Mario Vavti
726576363c RC3 2018-03-07 21:17:07 +01:00
Mario Vavti
d2ffe29343 we need the javascript in the template since strings are involved 2018-03-07 21:15:15 +01:00
Mario Vavti
ce81de1409 more bootstrap accordion fixes 2018-03-07 21:15:04 +01:00
Mario Vavti
89bbf6cd67 we do not support separate mobile themes anymore 2018-03-07 21:14:50 +01:00
Mario Vavti
17c102ebe1 we need the javascript in the template since strings are involved 2018-03-07 21:11:57 +01:00
Mario Vavti
d6812cf75e more bootstrap accordion fixes 2018-03-07 20:47:18 +01:00
Mario Vavti
04f7f99fc3 we do not support separate mobile themes anymore 2018-03-07 20:29:37 +01:00
zotlabs
46a4208b3d don't add pending connections to the default privacy group until accepted 2018-03-07 08:59:29 +01:00
zotlabs
f0f58dade8 federated polls: add poll_author which will be necessary for Diaspora federation 2018-03-06 15:31:45 -08:00
zotlabs
b282e45a02 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-06 15:23:05 -08:00
zotlabs
0a876e1518 don't add pending connections to the default privacy group until accepted 2018-03-06 11:39:49 -08:00
Mario Vavti
1d3d713c1c update changelog 2018-03-06 11:16:16 +01:00
Mario Vavti
da9fe27db1 update changelog 2018-03-06 11:15:47 +01:00
Andrew Manning
f91db3ee8e Improve rendering of Readme files in plugin settings 2018-03-06 09:00:33 +01:00
git-marijus
c7351c0922 Merge pull request #991 from anaqreon/dev
Improve rendering of Readme files in plugin settings
2018-03-06 08:49:06 +01:00
Andrew Manning
99247d0c59 Improve rendering of Readme files in plugin settings 2018-03-05 20:42:06 -05:00
Andrew Manning
9b13db1c48 Merge branch 'dev' into oauth2 2018-03-05 20:06:47 -05:00
Mario Vavti
ed79621c76 RC2 2018-03-05 23:06:27 +01:00
Mario Vavti
afdde44061 add pdl file for mod moderate 2018-03-05 23:04:35 +01:00
Mario Vavti
c462d2f15e add pdl file for mod moderate 2018-03-05 23:03:58 +01:00
Mario Vavti
c304361c9b fix javascript error if there are no notifications 2018-03-05 22:59:51 +01:00
Mario Vavti
bae2af09a0 fix javascript error if there are no notifications 2018-03-05 22:59:05 +01:00
Mario Vavti
12ca4caa4a update redbasic theme screenshot 2018-03-05 22:40:23 +01:00
Mario Vavti
a0e0b82067 update redbasic theme screenshot 2018-03-05 22:39:27 +01:00
mrjive
9fb65e10bd Partial italina translationhmessages.po hstrings.php 2018-03-05 05:37:15 -08:00
zotlabs
f02314dfd8 fix some issues with friend suggestions on standalone sites with no 'suggestme' volunteers. This wrongly pulled up a site directory suggesting everybody on the site. While a better outcome than finding nobody, this does not fit with our ethical design goals. If there are no friends of friends, we will only suggest those who volunteer to be on the default suggestion list. Also do not attempt to load poco data from dead sites. 2018-03-05 08:57:47 +01:00
zotlabs
af46c192bf bugfix: unable to reset profile fields to defaults in admin/profs by emptying the textarea 2018-03-05 08:57:35 +01:00
zotlabs
77a8a2b9ac restrict mail messages to max_import_size 2018-03-05 08:57:23 +01:00
Mario Vavti
a0e390c6c8 Merge remote-tracking branch 'mike/master' into dev 2018-03-05 08:54:46 +01:00
phellmes
09b6888526 Update DE translation strings 2018-03-05 08:54:19 +01:00
git-marijus
fd7d3f9286 Merge pull request #989 from phellmes/dev
Update DE translation strings (for 3.2RC)
2018-03-05 08:53:03 +01:00
zotlabs
59a2057fa0 fix some issues with friend suggestions on standalone sites with no 'suggestme' volunteers. This wrongly pulled up a site directory suggesting everybody on the site. While a better outcome than finding nobody, this does not fit with our ethical design goals. If there are no friends of friends, we will only suggest those who volunteer to be on the default suggestion list. Also do not attempt to load poco data from dead sites. 2018-03-04 17:40:38 -08:00
zotlabs
be6619d9c0 bugfix: unable to reset profile fields to defaults in admin/profs by emptying the textarea 2018-03-04 15:29:10 -08:00
phellmes
bb7457f43c Update DE translation strings 2018-03-05 00:24:41 +01:00
zotlabs
14f701f7fc restrict mail messages to max_import_size 2018-03-04 14:30:09 -08:00
Andrew Manning
058f7277b5 Merge branch 'dev' into oauth2 2018-03-04 06:45:07 -05:00
zotlabs
5d18996362 add dummy f= arg to suggestion urls, use directory version of suggest for newmember link instead of the suggest module as the UI is prettier. 2018-03-04 09:49:13 +01:00
zotlabs
ad3f61a215 sigh - missed two strings 2018-03-04 09:49:11 +01:00
zotlabs
1eab488754 There was no pdl for mod_thing; add one because it's only a link away from profile creation and remains on that page until you go elsewhere and new members may need help to find their way out 2018-03-04 09:46:17 +01:00
zotlabs
471c3c4d06 add dummy f= arg to suggestion urls, use directory version of suggest for newmember link instead of the suggest module as the UI is prettier. 2018-03-03 15:54:13 -08:00
zotlabs
ca1022675c There was no pdl for mod_thing; add one because it's only a link away from profile creation and remains on that page until you go elsewhere and new members may need help to find their way out 2018-03-03 15:19:39 -08:00
zotlabs
c3920116f2 more work on federated polls 2018-03-03 13:52:55 -08:00
zotlabs
26e0fd624a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-02 20:08:01 -08:00
zotlabs
4c69c56797 string change "Channel added" -> "Connection added" 2018-03-02 14:09:59 -08:00
zotlabs
df03805579 process follow from article menu in the background, do not reload page - hubzilla issue #987 2018-03-02 13:15:28 -08:00
zotlabs
b38ce967f3 sort settings/featured 2018-03-02 12:41:50 -08:00
zotlabs
dbe73cdcbe add icon to any addon settings blocks which don't already have one 2018-03-02 12:04:23 -08:00
git-marijus
2f0ebdeade Merge pull request #985 from mjfriaza/dev
Updated Spanish translation (hmessages.po/php and register_verify_member.tpl).
2018-03-02 20:46:34 +01:00
git-marijus
98e3e7ff9b Merge pull request #986 from mjfriaza/3.2RC
Updated Spanish translation (hmessages.po/php and register_verify_member.tpl).
2018-03-02 20:46:18 +01:00
zotlabs
226aad357d add federation property to webfinger 2018-03-02 20:40:45 +01:00
Mario Vavti
7c5f1e814b Merge remote-tracking branch 'mike/master' into dev 2018-03-02 20:25:17 +01:00
Manuel Jiménez Friaza
49a236345f New strings for Spanish translation. 2018-03-02 18:32:01 +01:00
Manuel Jiménez Friaza
840cea680c New strings for Spanish translation. 2018-03-02 18:28:42 +01:00
Mario Vavti
83365840af update DB update 1205 to mitigate
ERROR 1069 (42000): Too many keys specified; max 64 keys allowed
2018-03-02 13:10:44 +01:00
Mario Vavti
5c46e66694 update DB update 1205 to mitigate
ERROR 1069 (42000): Too many keys specified; max 64 keys allowed
2018-03-02 11:38:21 +01:00
Mario Vavti
b44e46f8be db update to drop index resource_type. we have uid_resource_type now. 2018-03-02 10:28:56 +01:00
Mario Vavti
bca05dc89f bump version 2018-03-02 10:23:53 +01:00
Mario Vavti
6ee6285670 db update to drop index resource_type. we have uid_resource_type now. 2018-03-02 10:10:29 +01:00
zotlabs
dcfe9bc64f background work for caldav integration continued, modify mod_follow to allow it to be called from ajax without redirecting. 2018-03-02 01:03:14 -08:00
zotlabs
8fd619da71 zot revision => 6.0a, not yet needed or referenced 2018-03-01 16:42:32 -08:00
zotlabs
1620691cbe add federation property to webfinger 2018-03-01 16:38:14 -08:00
zotlabs
49bd859136 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-03-01 16:16:58 -08:00
zotlabs
93a11ade04 sigh - missed two strings 2018-03-01 16:11:30 -08:00
Manuel Jiménez Friaza
343982a2f9 Updated Spanish translation (hmessages.po/php and register_verify_member.tpl). 2018-03-01 19:49:55 +01:00
Manuel Jiménez Friaza
3da9107354 Updated Spanish translation (hmessages.po/php and register_verify_member.tpl). 2018-03-01 19:41:59 +01:00
Mario Vavti
f5169bdbbb fix issues with accordions in settings and comment out jquery.textinputs.js 2018-03-01 13:47:46 +01:00
Mario Vavti
d32f583fda Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-03-01 13:46:39 +01:00
Mario Vavti
bab00731a8 fix issues with accordions in settings and comment out jquery.textinputs.js 2018-03-01 13:46:25 +01:00
git-marijus
8cd539e125 Merge pull request #984 from dawnbreak/dev
Update composer autoload cache.
2018-03-01 12:08:31 +01:00
git-marijus
3b8a0d4773 Merge pull request #983 from dawnbreak/QA_testing
 Unit Test for HTTPSig.
2018-03-01 12:07:37 +01:00
Klaus Weidenbach
b60098ec68 Update composer autoload cache. 2018-03-01 11:29:15 +01:00
Mario Vavti
321611f865 update strings 2018-03-01 08:54:48 +01:00
Mario Vavti
de02fddf89 update strings 2018-03-01 08:54:09 +01:00
Mario Vavti
2e058c9abc version 2018-03-01 08:42:02 +01:00
Mario Vavti
a7b48b9650 bump version 3.2RC1 2018-03-01 08:40:10 +01:00
Mario Vavti
844bef5070 Merge branch 'dev' into 3.2RC 2018-03-01 08:38:17 +01:00
zotlabs
6210b7727f profile edit: empty dob is set to the date of the first profile save unless you clear it first 2018-02-28 21:39:52 -08:00
zotlabs
01015bc0d5 several email validation issues 2018-02-28 21:15:26 -08:00
zotlabs
2b910eb5aa Create one and only one 'registration successful, check your email' popup. 2018-02-28 20:31:06 -08:00
zotlabs
9672d35d8c hide newmember widget if a new account was used to create a clone of an old channel 2018-02-28 20:02:08 -08:00
zotlabs
14e14c6c92 provide new member widget which sits beneath the notifications for the first 60 days after an account creation. 2018-02-28 19:49:33 -08:00
zotlabs
1c07880c01 important bugfix: if logged in locally and mod_display returns nothing owned by your uid, retry with known public uids rather than issue 'permission denied'. Affects the ability to view search results for otherwise public posts 'in context'. 2018-02-28 18:01:51 -08:00
Andrew Manning
39fe80a196 Merge branch 'dev' into oauth2 2018-02-28 20:47:14 -05:00
Klaus Weidenbach
7c28a40c3e Unit Test for HTTPSig. 2018-02-28 16:04:13 +01:00
Mario Vavti
029d155a07 erge remote-tracking branch 'mike/master' into dev 2018-02-28 13:02:22 +01:00
Mario Vavti
97e329906e typo 2018-02-28 10:28:35 +01:00
Mario Vavti
c92bc60cec typo 2018-02-28 10:28:06 +01:00
Mario Vavti
551eea05ed missed one index in the last update 2018-02-28 10:21:55 +01:00
Mario Vavti
6593dff9f5 missed one index in the last update 2018-02-28 10:21:22 +01:00
Mario Vavti
90c82e4394 missed some string for translation - update strings 2018-02-28 08:39:57 +01:00
Mario Vavti
924c8db712 missed some string for translation - update strings 2018-02-28 08:38:56 +01:00
zotlabs
6c60be9e8d rename Addon/Feature settings to addon settings [string change] 2018-02-27 19:51:29 -08:00
zotlabs
be5187718c provide usage hint on addon settings page to save each panel before opening another. [String change, not for 3.2] 2018-02-27 19:34:51 -08:00
zotlabs
14183b8fb5 move privacy groups to the newly created Access Control and Permissions tab. Not for 3.2 as it requires string changes from the prior checkin. 2018-02-27 19:18:53 -08:00
zotlabs
f34e6d8977 move oauth_client management and guest access tokens to features rather than auto-enabling at various feature levels. This involves string changes and should *not* go into 3.2RC. 2018-02-27 19:15:12 -08:00
Mario Vavti
58ee2a49fa bump version 2018-02-27 10:43:19 +01:00
Mario Vavti
68c6d7a099 fix syntax error 2018-02-27 09:55:10 +01:00
zotlabs
6c37a38980 fix public stream app permission check to match the recent fixes to the Module 2018-02-26 21:50:17 -08:00
zotlabs
5277e79fa2 change undo_post_tagging() to emit quoted tags rather than using underscore replacement if they contain spaces. 2018-02-26 20:30:36 -08:00
Andrew Manning
1035c453ea Merge branch 'dev' into oauth2 2018-02-26 19:48:15 -05:00
zotlabs
afe2ba3690 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-26 16:45:04 -08:00
zotlabs
01776e767d update directory fallback servers 2018-02-26 16:41:47 -08:00
zotlabs
87079e8071 require directory servers to be using some modern form of encryption; which means we only currently have 2. 2018-02-26 16:39:12 -08:00
zotlabs
f83b7c2d52 issues with delivery of edited posts to forums 2018-02-26 15:46:29 -08:00
Andrew Manning
45e0fc6802 Successful OAuth2 sequence demonstrated with the test vehicle, including an authenticated API call using an access_token. 2018-02-26 18:16:43 -05:00
zotlabs
cbcf389f50 fix autoname test 2018-02-26 14:30:04 -08:00
Mario Vavti
fe7fba4789 update strings 2018-02-26 20:40:55 +01:00
Mario Vavti
3bd2288ea9 fix icon position and make string translatable 2018-02-26 20:17:53 +01:00
Mario Vavti
f8f69767b7 missing clearfix 2018-02-26 15:13:53 +01:00
Mario Vavti
ee5fd8a0bd fix minor issue with custom acl selector 2018-02-26 15:09:46 +01:00
Mario Vavti
032cbca651 slightly improve custom acl selector 2018-02-26 13:57:13 +01:00
Mario Vavti
be3e0ca9a1 change fontname in css and fix issue with unicode characters 2018-02-26 12:54:26 +01:00
Mario Vavti
a5f843ba9b switch to fork-awesome 2018-02-26 11:05:48 +01:00
Mario Vavti
4781a8cb6b Merge remote-tracking branch 'mike/master' into dev 2018-02-26 10:42:13 +01:00
Mario Vavti
a38c8cc75c bump versio 2018-02-26 10:03:08 +01:00
Mario Vavti
51c0e5a988 another DB upgrade to address some long running maintenance queries 2018-02-26 09:58:42 +01:00
zotlabs
d2ed3a9abb provide opt-out link and text with notification emails 2018-02-25 21:40:19 -08:00
zotlabs
1b1550fb31 mention the hidden setting for #972 in doc/hidden_configs 2018-02-25 19:35:45 -08:00
zotlabs
04ec35d9cc hubzilla issue #979 - alter image selection widget to accept/submit on choose (jot, wiki, cover_photo, profile_photo) 2018-02-25 19:25:00 -08:00
Andrew Manning
e3095ce6b2 Merge branch 'dev' into oauth2 2018-02-25 08:36:52 -05:00
Andrew Manning
70b8f3240f An authorization token is received, but I had to modify the Request class in vendor/bshaffer/oauth2-server-php/ to accept $_REQUEST instead of $_POST. 2018-02-25 08:36:40 -05:00
Mario Vavti
673cf8d35e Merge remote-tracking branch 'mike/master' into dev 2018-02-25 13:01:23 +01:00
Mario Vavti
fed61c082c do not overwrite abook flags if we are not owner 2018-02-25 13:00:43 +01:00
zotlabs
d406e2aae2 siteinfo.json - if hide_in_statistics is set only include the total channels count and no other statistical info 2018-02-24 14:38:28 -08:00
zotlabs
3153129e2e make the profile photo image picker work correctly with multiple profiles. 2018-02-24 13:20:59 -08:00
Mario Vavti
c618bfc607 mark connections where we do not have post_comments permissions with an no entry sign. 2018-02-24 19:42:39 +01:00
Andrew Manning
497ebca54f Merge branch 'dev' into oauth2 2018-02-24 06:48:56 -05:00
Andrew Manning
64ee42fc3d Add channel ID to user_id in clients table. Added TODO comments about dynamic client registration protocol. 2018-02-24 06:48:30 -05:00
Mario Vavti
f6d024cb3f Merge remote-tracking branch 'mike/master' into dev 2018-02-24 08:42:25 +01:00
zotlabs
e6f9f284bf open_pubstream logic was messy and wrong 2018-02-23 22:12:29 -08:00
zotlabs
7ddf51722c style the buttons even more 2018-02-23 19:43:05 -08:00
zotlabs
59dafb610d style the 'use existing' button a wee bit 2018-02-23 19:36:46 -08:00
zotlabs
2d91aed183 use embed photos javascript widget to select existing photos for profile and cover photos 2018-02-23 19:23:17 -08:00
zotlabs
3dd64e7916 usability: click your own profile photo to change it instead of hunting it down in the profile edit navmenu. We still need work on the 'or use a photo from your albums' to use something like the photo selection widget in the post editor as you otherwise have to track down the 'use as profile photo' entry in the photo detail navmenu instead of just clicking an image. 2018-02-23 13:24:50 -08:00
zotlabs
048a636315 Usability and member experience: remove street address info from the default basic profile fields, mention that the site banner can be full HTML, mention on the techlevel setting that this also controls what additional features may be visible. 2018-02-23 12:44:07 -08:00
Mario Vavti
1c750dac41 fix issues with DB update 1204 2018-02-23 12:58:03 +01:00
zotlabs
5e53f36f34 mod_new_channel: don't require nickname validation after name validation (which generates a valid nickname). Enable the submit button as long as there are no errors. 2018-02-22 23:54:43 -08:00
zotlabs
8f95b8a824 handle error logging in on cloud page (post method not implemented), politely ask viewer to refresh the page rather than alert 'unknown error'. 2018-02-22 21:54:28 -08:00
zotlabs
5456ee7f65 cloud 'view-as-tiles' toggle wasn't available (at all) for guests and they are the most likely to prefer that view. Fix that and make tiles the default view for guests, and list mode the default view for the channel owner. 2018-02-22 21:45:00 -08:00
zotlabs
277da43631 provide DB compatibility for poll and voting implementations across several platforms 2018-02-22 20:52:39 -08:00
Andrew Manning
70719c67d3 Merge branch 'dev' into oauth2 2018-02-22 15:10:20 -05:00
Andrew Manning
43fca182e3 The authorization step with client registration and authorization code retrieval working. Might not conform perfectly to OAuth2 spec, but it is a start. 2018-02-22 15:10:05 -05:00
Mario Vavti
80ce2def46 also sort by id to not make mysql change the queryplan if offset is > 0 after recent index changes 2018-02-22 12:01:53 +01:00
Mario Vavti
a1f9d40d08 Merge remote-tracking branch 'mike/master' into dev 2018-02-22 10:11:18 +01:00
Mario Vavti
bdcee4fc30 query for what we need instead of what we do not need 2018-02-22 10:10:46 +01:00
zotlabs
bb2ec5d8dc remove the unused ZotDriver and ProtoDriver classes 2018-02-21 21:29:55 -08:00
zotlabs
56d1c08317 move dreport from zot to lib 2018-02-21 21:18:54 -08:00
zotlabs
2d69b419ff move Zotlabs\Zot\Verify to Zotlabs\Lib\Verify as part of the z6 re-org 2018-02-21 20:59:30 -08:00
zotlabs
fef3155e6a cleanup the recent crypto code modifications. We need this stuff to be readable. 2018-02-21 16:41:33 -08:00
zotlabs
1a2f722cdb Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-21 16:00:06 -08:00
zotlabs
8fc48f2d43 add event resource_id to iconfig so Diaspora can search on it without looking inside JSON objects. 2018-02-21 15:56:51 -08:00
mrjive
2d17e1c677 Merge pull request #15 from redmatrix/dev
Dev
2018-02-21 12:55:29 +01:00
Mario Vavti
a829256bc4 bump version 2018-02-21 09:38:29 +01:00
zotlabs
b6d34bffcc trim non-existent/deprecated plugins from siteinfo plugin list 2018-02-20 21:31:40 -08:00
Andrew Manning
8e5c1135c3 Merge branch 'dev' into oauth2 2018-02-20 21:11:59 -05:00
Andrew Manning
89a825cd03 OAuth2TestVehicle module can create and delete oauth2 database tables. 2018-02-20 21:11:38 -05:00
zotlabs
ce8349662d Add 'Validate' button to new_channel page and disable submit until validated. This is to get around the issue that clicking submit without ever focusing and blurring the nickname field won't actually submit the form but only provide validation. It needs to be clicked again to submit. The first click processed the blur but remained on the page with no feedback. If somebody has better workarounds, please provide. The goal is to ensure that the name and the nickname are both validated before we can submit. 2018-02-20 17:20:35 -08:00
zotlabs
02575f46a6 move the zot6 delivery to zot_fetch where it makes more sense. Exhaustively hand tested. 2018-02-20 17:18:08 -08:00
zotlabs
441cdeff3f zot6 delivery cleanup 2018-02-20 16:13:43 -08:00
Mario Vavti
85a6dd6031 Merge remote-tracking branch 'mike/master' into dev 2018-02-20 23:58:17 +01:00
zotlabs
b4dad81767 copy/paste error resulting in bad behaviour 2018-02-20 14:41:46 -08:00
Mario Vavti
6d0b88e242 Merge remote-tracking branch 'mike/master' into dev 2018-02-20 21:00:22 +01:00
zotlabs
dbeee4707b don't try to handle OAEP for plugin crypto methods; let them do it if desired 2018-02-20 11:56:51 -08:00
zotlabs
ae8623e3af encrypt/decrypt function not found 2018-02-20 11:51:59 -08:00
Mario Vavti
41da5af721 remove order by clause 2018-02-20 10:36:05 +01:00
Mario Vavti
93d4a16017 missing file 2018-02-20 10:29:22 +01:00
Mario Vavti
6ef0116f09 more index finetuning to fix the expire query 2018-02-20 10:26:32 +01:00
zotlabs
76b5c68646 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-19 16:19:14 -08:00
zotlabs
b6b4827680 OAEP padding mismatch on some newer encryption methods 2018-02-19 15:44:18 -08:00
zotlabs
a310cb2fbb more logging 2018-02-19 14:37:49 -08:00
zotlabs
67069beddc add logging 2018-02-19 14:27:27 -08:00
zotlabs
331fe92b9e and fix the typo 2018-02-19 14:14:45 -08:00
zotlabs
f0d68a1a25 fix the fix for precision 2018-02-19 14:13:44 -08:00
Mario Vavti
66309a3fea Merge remote-tracking branch 'mike/master' into dev 2018-02-19 22:21:50 +01:00
zotlabs
04185b05ab target zot6 deliveries with more precision to ensure we handle a very precise type of content until the mechanism is extended to other types in the future 2018-02-19 11:57:47 -08:00
Mario Vavti
2047801b85 updates 1201 and 1200 should return success for postgres. notifications: remove class show and session storage entry when we mark all notifications seen 2018-02-19 20:23:13 +01:00
Mario Vavti
43992dc463 do not show summary if it is equal to body and some styling for the summary/article toggle links 2018-02-19 14:11:58 +01:00
git-marijus
fac5d81790 Merge pull request #981 from anaqreon/dev
Update code tag styling so bbcode [code] blocks and wiki markdown ...
2018-02-19 11:11:31 +01:00
git-marijus
b56633e1d6 Merge pull request #980 from dawnbreak/dev
Refactor OAuth2Server a bit.
2018-02-19 11:11:08 +01:00
Mario Vavti
1732ffed7a backport update 1201 to the new update system and move dummy update to 1202 2018-02-19 10:59:21 +01:00
Andrew Manning
7d0c1bb737 Created test vehicle module oauth2test 2018-02-18 20:24:41 -05:00
Andrew Manning
c444e40c01 Update code tag styling so bbcode [code] blocks and wiki markdown inline code render nicely. 2018-02-18 10:09:05 -05:00
zotlabs
46cb45d94b crypto improvements (use pkcs1_oaep_padding instead of the older pkcs1_padding) 2018-02-16 18:45:15 -08:00
Klaus Weidenbach
4a5d1076ed Refactor OAuth2Server a bit. 2018-02-17 01:49:01 +01:00
zotlabs
4e6072fb29 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-16 16:42:45 -08:00
zotlabs
f492f808f4 refactor of the DB update system. Updates are now stored individually in Zotlabs/Update/_nnnn.php and are objects; so only the pending updates need to be loaded and executed rather than all historical updates. There is one single number (DB_UPDATE_VERSION) representing the current version and it is EQUAL TO the last known update. A dummy update _1201 was created to address the difference in counting behaviour; it will be executed on the next change of DB_UPDATE_VERSION as well as the next update. The database config values are also loaded from disk on every update immediately before setting the update lock in order to reduce timing conflicts and race conditions. 2018-02-16 12:42:02 -08:00
Mario Vavti
547ef772ab Merge remote-tracking branch 'mike/master' into dev 2018-02-16 20:47:20 +01:00
zotlabs
27cd26ec1e extend the oauth2 storage driver so that we can use our own channel table 2018-02-15 18:47:56 -08:00
Mario Vavti
2216c3dd32 bump version 2018-02-15 19:41:24 +01:00
Mario Vavti
9e251a1abc some more DB tuning. 2018-02-15 19:24:15 +01:00
Mario Vavti
45b42cbc1c Merge remote-tracking branch 'mike/master' into dev 2018-02-15 09:00:52 +01:00
zotlabs
c11ebd12d5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-14 15:37:35 -08:00
zotlabs
465d89129c provide option to block the public stream unless authenticated, since there could be legal issues with unmoderated content 2018-02-14 15:32:33 -08:00
Mario Vavti
0336082920 Merge remote-tracking branch 'mike/master' into dev 2018-02-14 10:29:36 +01:00
zotlabs
24da5d82db Merge branch 'share' 2018-02-13 20:09:55 -08:00
zotlabs
64809dd277 turn shares into activities - make certain to pull addons or JSON-LD will chuck a wobbly 2018-02-13 20:07:57 -08:00
zotlabs
6ca3442ba3 defperms: bad query 2018-02-13 12:13:37 -08:00
Mario Vavti
27baf46eb5 fix item link in fsprint 2018-02-13 12:33:49 +01:00
Mario Vavti
d2dcb93866 match against item verb 2018-02-13 12:04:48 +01:00
Mario Vavti
d826515ba8 since we only save the parent mid in notify we must look for thr_parent when dealing with likes 2018-02-13 11:01:58 +01:00
Mario Vavti
b221c68e4b fix parent id for likes in status notifications. 2018-02-13 10:29:32 +01:00
zotlabs
fd81a4bdc4 initial share refactor 2018-02-12 21:43:04 -08:00
Mario Vavti
b7fb78245a if always_show_in_notices is set to 1 also show likes and dislikes 2018-02-12 22:48:53 +01:00
Mario Vavti
571a9642a5 slightly improve cropper style 2018-02-12 11:06:21 +01:00
Mario Vavti
9e2424ee76 fix issue with new cropping lib and whitespace 2018-02-12 10:43:20 +01:00
zotlabs
6d2661a8f7 the 'each' function (used in startup() to revert magic quotes) is deprecated in php7.2. Since magic quotes themselves have been deprecated as a default condition for several years, the cleaning of globals should no longer be required and was also removed. 2018-02-11 20:11:18 -08:00
zotlabs
0f8d2d4e58 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-11 19:36:37 -08:00
zotlabs
63107f5b2f second part of hubzilla issue #972 2018-02-11 18:17:17 -08:00
zotlabs
a31331bfd9 hubzilla issue #972 - provide system toggle to allow/disallow anonymous comments 2018-02-11 18:02:28 -08:00
zotlabs
07d33a1183 use new forum tag style in forum search postings 2018-02-11 15:34:34 -08:00
zotlabs
0dbb024c99 purify summary 2018-02-11 14:12:24 -08:00
git-marijus
ba954b8cfe Merge pull request #976 from phellmes/time-ago-strings
more flexibility for relative date/time translations
2018-02-11 22:50:39 +01:00
Mario Vavti
3fa809ae79 this might seem rediculous but it helps mysql to find the better index for this query 2018-02-11 20:53:27 +01:00
phellmes
1a9c1ecfb1 update DE translation strings for new relative date/time options
temporary manual string update in relation to last commit
until changes reach Transifex and can be updated there
2018-02-11 17:01:47 +01:00
phellmes
c6b2652c01 add flexibility to prefix/suffix string translations for jquery.timeago
In addition to use the defaults or any other translated strings this allows
now to force an empty string by setting the translation to NONE.
Translators can choose to either use prefixes only, suffixes only,
none of them or both of them - whatever sounds best in their language.
2018-02-11 16:08:34 +01:00
zotlabs
5a9ea29614 hubzilla issue #975 (searching for title as well as body could present a performance issue, so perhaps the tradeoffs should be debated) 2018-02-09 14:08:29 -08:00
Mario Vavti
6cc3294395 finally fix channel query 2018-02-09 20:36:14 +01:00
Mario Vavti
5f229d81e9 use distinct in channel item query and minor notification cache improvement 2018-02-09 14:06:59 +01:00
Mario Vavti
cb70192f36 bump version 2018-02-09 10:36:43 +01:00
Mario Vavti
2227de5f65 Merge remote-tracking branch 'mike/master' into dev 2018-02-09 06:58:12 +01:00
zotlabs
3dfafb710c cosmetic 2018-02-08 21:32:18 -08:00
zotlabs
9f5d44fa32 turn the logs down again 2018-02-08 16:30:44 -08:00
zotlabs
cd1e5d4171 zot6 testing 2018-02-08 16:22:10 -08:00
zotlabs
beec49847f missing quote 2018-02-08 15:45:33 -08:00
zotlabs
e4503f743e logging 2018-02-08 15:36:22 -08:00
zotlabs
635c5e532b z6 testing 2018-02-08 15:32:54 -08:00
Mario Vavti
384cb215be wrong link 2018-02-08 10:26:49 +01:00
Mario Vavti
9e64ce7da7 Merge remote-tracking branch 'mike/master' into dev 2018-02-08 10:12:04 +01:00
Mario Vavti
661c20e452 more db and queries finetuning 2018-02-08 09:47:49 +01:00
zotlabs
4c27fa5c37 debug the crypto function 2018-02-07 22:04:53 -08:00
zotlabs
6cf2e9945a encrypt the httpsig for zot6 transport 2018-02-07 21:53:47 -08:00
zotlabs
b21a5c3ce9 compatibility: fallback to legacy zot if OWA succeeds but no data['msg'] is present 2018-02-07 20:17:32 -08:00
zotlabs
5057a4bd4c zot6 delivery work 2018-02-07 19:15:56 -08:00
zotlabs
3a0db39fa0 more zot6 delivery work 2018-02-07 18:38:10 -08:00
zotlabs
1d8d2c6e55 Merge branch 'master' into z6 2018-02-07 17:54:21 -08:00
zotlabs
dc88ccdc0b remove dead code 2018-02-07 17:53:54 -08:00
Mario Vavti
b512780e37 do not spam the log 2018-02-07 10:27:00 +01:00
Mario Vavti
91dda86a74 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-02-07 09:03:49 +01:00
zotlabs
4171854e2f slight improvement in ostatus protocol detection from xml feed 2018-02-06 17:00:56 -08:00
git-marijus
24a650d7ec Merge pull request #971 from dawnbreak/QA_testing
UnitTests for database classes and bit cleanup and docu
2018-02-06 12:48:34 +01:00
zotlabs
cb042e32bc code cleanup 2018-02-05 20:57:07 -08:00
zotlabs
5e94187d03 remove dead code 2018-02-05 20:31:24 -08:00
zotlabs
cadd958339 remove mobile_detect (outdated and unmaintainable) 2018-02-05 18:06:25 -08:00
zotlabs
b06c52553d fix manual queue invocation (was using the web argc/argv from the cli) 2018-02-05 16:08:01 -08:00
zotlabs
b41c5f3497 Merge branch 'master' into z6 2018-02-05 15:58:28 -08:00
zotlabs
930e1fdbdc feedutils: separate the parsing of author information from the parsing of item/activity information 2018-02-05 15:14:57 -08:00
zotlabs
f15fd93f90 implode can take its arguments in either order, but let's try to be consistent 2018-02-04 17:01:59 -08:00
zotlabs
6ad14f4ca0 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-04 15:53:56 -08:00
Mario Vavti
9d55a254dc this will fix the cards query and keep the rest intact 2018-02-04 22:37:30 +01:00
Mario Vavti
f9aecf5d4c superfluous , 2018-02-04 21:17:41 +01:00
Mario Vavti
c57b2d25b2 remove indices from mysql schema file 2018-02-04 21:13:24 +01:00
Mario Vavti
3cc756f302 remove some never used indices which prevented our item queries to find the right query execution plan in mysql and adjust some queries to optimze the result 2018-02-04 20:42:40 +01:00
zotlabs
3e7dffb676 decomplicate cont. 2018-02-03 12:50:07 -08:00
mrjive
d7ecaa8b23 Merge pull request #14 from redmatrix/dev
Dev
2018-02-02 09:23:55 +01:00
zotlabs
512f3a7643 provide summaries in feeds under very limited cases, but never in compat (GNU-Social) mode 2018-02-01 21:26:34 -08:00
zotlabs
c1eb796cbd document the tag changes 2018-02-01 20:12:34 -08:00
zotlabs
dd35cad62a some feed cleanup 2018-02-01 19:52:40 -08:00
zotlabs
5f972e00fe Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-02-01 17:47:37 -08:00
zotlabs
cc0cd0b292 more generalisation of commonly used code constructs 2018-02-01 17:17:23 -08:00
zotlabs
c92bb6176a more separation of complex code into separate functions 2018-02-01 15:09:51 -08:00
Mario Vavti
fffb95299e Merge remote-tracking branch 'mike/master' into dev 2018-02-01 13:14:52 +01:00
Mario Vavti
40cdb70b2f we need to manualy take care to mark the notification read in this case 2018-01-31 20:41:31 +01:00
zotlabs
feae454481 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-30 21:38:49 -08:00
zotlabs
71c2cc79e5 cosmetic readme changes, code cleanup 2018-01-30 18:16:20 -08:00
mrjive
7ac4b47702 Merge pull request #13 from redmatrix/dev
Dev
2018-01-30 16:13:30 +01:00
Mario Vavti
d24cf0b85b Merge remote-tracking branch 'mike/master' into dev 2018-01-30 14:31:06 +01:00
zotlabs
0e2c539d93 remove logging 2018-01-29 19:57:43 -08:00
zotlabs
4f24cc7377 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-29 18:57:15 -08:00
zotlabs
9bf83a57bd don't show jot bb-edit buttons if a mimetype other than text/bbcode is selected (:todo: also disable bbcode autocomplete) 2018-01-29 18:43:20 -08:00
zotlabs
668f56807a unable to delete accounts using tickboxes on admin/accounts - make all the action names consistent 2018-01-29 17:43:11 -08:00
zotlabs
8d479aa1c7 redirect to the email_validation page if login was attempted after account creation but prior to successful verification. This presents the link to resend the verification email and/or allows you to enter it. 2018-01-29 16:58:55 -08:00
Mario Vavti
296117124c Merge remote-tracking branch 'mike/master' into dev 2018-01-29 22:44:38 +01:00
git-marijus
0d21c6f863 Merge pull request #967 from dawnbreak/dev
Fix a PHP7.2 warning when a channel has no cards.
2018-01-29 22:18:31 +01:00
git-marijus
b787865fbb Merge pull request #970 from mrjive/patch-1
small details on connections.tpl
2018-01-29 22:15:43 +01:00
Klaus Weidenbach
210c91398d Make it little bit less likely to erase a real database.
Changed the default PHPUnit database environment variables to make it
little bit less likely to truncate accidently a real database.
2018-01-29 22:01:40 +01:00
mrjive
7a377e72e7 small details
Just changed the icon from sort to filter (it's what it does, it filters) and changed id to class in connection-wrapper clearfix (line 28)
2018-01-29 16:37:34 +01:00
mrjive
c2abbe2c23 small changes
changed icon from sort to filter and changed id to class in content-wrapper clearfix
2018-01-29 16:33:54 +01:00
mrjive
5f6f87a7cd Update connections.tpl 2018-01-29 16:32:32 +01:00
zotlabs
e4eff6a32b fix workflow for form based email validation when auto_channel_create is in effect. Eventually we will need to rework the workflow logic because it is getting a bit tangled. 2018-01-29 02:41:45 -08:00
zotlabs
c1e44c0f54 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-28 21:43:50 -08:00
zotlabs
5cf2bf6b29 change the image - make it bland and neutral 2018-01-28 20:50:37 -08:00
zotlabs
56d1614ea6 provide a default video image if nothing else is available. Allow sites to change it. 2018-01-28 20:35:05 -08:00
zotlabs
c3e365ef47 Surface the ability to change the landing page after channel creation and create a 'go' module to present several possible things to do at this point. Change the default from 'settings' to 'profiles' so that the focus is more on you rather than the software configuration. 2018-01-28 15:56:31 -08:00
Klaus Weidenbach
4bf0c9e36a Add tests for non existent tables.
Prevent PHP warnings "Undefined variable" in dba_pdo::q();
2018-01-28 23:02:46 +01:00
Klaus Weidenbach
509844fd7e 🔥 Cleanup old database related files.
Remove non used database drivers, remove unused methods.
Improve documentation.
2018-01-28 23:02:15 +01:00
Klaus Weidenbach
fb111e6d95 Unit Test for dba_pdo driver class. 2018-01-28 22:56:21 +01:00
Klaus Weidenbach
e177462c90 Unit Test for \DBA factory. 2018-01-28 22:56:21 +01:00
Klaus Weidenbach
82f19e6278 Fix a PHP7.2 warning when a channel has no cards. 2018-01-28 21:38:25 +01:00
Mario Vavti
edf6ad9eda do not always look first in chache when receiving the *open* status from cache 2018-01-28 19:35:01 +01:00
Mario Vavti
a86b260f73 query optimisations for notifications - use a specific index only 2018-01-28 12:09:47 +01:00
zotlabs
21f464a557 Guranteed somebody will paste the verification link and not the token, especially before all the translations are completed. But even then... 2018-01-27 15:20:43 -08:00
Mario Vavti
423274b923 Merge remote-tracking branch 'mike/master' into dev 2018-01-28 00:18:29 +01:00
Mario Vavti
6c4054c20b fix syntax error 2018-01-27 23:55:44 +01:00
zotlabs
69099a2732 registration testing 2018-01-27 14:16:52 -08:00
Mario Vavti
4bd6cf5652 accidently reverted a fix from yesterday in ma previous commit 2018-01-27 23:05:26 +01:00
zotlabs
d99a51e5b7 typo 2018-01-27 13:41:37 -08:00
Mario Vavti
843d631111 Merge remote-tracking branch 'mike/master' into dev 2018-01-27 22:25:46 +01:00
Mario Vavti
2e4e56f7cc if startpage is /hq redirect all notifications links to /hq and minor notifications and hq fixes 2018-01-27 22:23:47 +01:00
zotlabs
bd0f63980b Usability improvements to registration/verification workflow. This requires additional testing. 2018-01-27 12:51:48 -08:00
zotlabs
4eead1c688 typo from previous checkin and partial fix to hubzilla #965 - show any connection without comment permission as archived in contact_block(). 2018-01-26 13:42:53 -08:00
zotlabs
d70c42b495 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-26 12:51:04 -08:00
zotlabs
660079bd2a Issue with configurable site age limit, vagueness when informing about email validation policy; added email validation resend ability and the option to input a verification code at a webpage though both require additional work to provide these abilities. 2018-01-26 12:16:47 -08:00
Mario Vavti
7c600b0380 preserve open state of notifications 2018-01-26 11:44:24 +01:00
Mario Vavti
e982698de1 Merge remote-tracking branch 'mike/master' into dev 2018-01-26 10:33:55 +01:00
mrjive
4b7967b938 Merge pull request #12 from redmatrix/dev
Dev
2018-01-26 09:43:47 +01:00
zotlabs
e3c7200b6f don't do any bbcode translation within code blocks (except baseurl, observer, and linefeeds) 2018-01-25 16:18:16 -08:00
Mario Vavti
4656856dfb move template out of #notifications and revert reset timer on manual trigger 2018-01-25 17:27:48 +01:00
Mario Vavti
019dcefeca reset timer on manual update trigger 2018-01-25 12:56:52 +01:00
zotlabs
f7309b926b improve browser language detection by offering fallback of (for instance) fr-fr to fr if no other language matches could be found 2018-01-24 21:56:25 -08:00
zotlabs
217c324a98 remove unused prototype importer template and obsolete reflection cms importer 2018-01-24 21:35:41 -08:00
Mario Vavti
a0cfa769bd fix some issues with bootstrap accordion (this needs fixing in some other places too) 2018-01-24 23:26:43 +01:00
Mario Vavti
7df62589ac update to bootstrap 4 stable 2018-01-24 23:06:03 +01:00
Mario Vavti
93259e4e92 consolidate notifications caching and loading 2018-01-24 22:46:36 +01:00
mrjive
f560a3c98f Merge pull request #11 from redmatrix/dev
Dev
2018-01-24 18:30:59 +01:00
Mario Vavti
add9890754 bump version 2018-01-24 11:23:45 +01:00
Mario Vavti
503b2225f0 Merge remote-tracking branch 'mike/master' into dev 2018-01-24 11:17:25 +01:00
Mario Vavti
e3a6b0012e implement caching of notifications in browser session storage 2018-01-24 11:16:51 +01:00
zotlabs
304085606f some code cleanup and simplification in mod_like 2018-01-23 20:03:17 -08:00
zotlabs
5d4110375a add units to css 2018-01-23 16:44:11 -08:00
zotlabs
5902528bae undo and redo adding new cropper library as it had a .git config from the original project 2018-01-23 16:42:24 -08:00
zotlabs
1e8dcaffc9 cleanup git issue 2018-01-23 16:40:23 -08:00
zotlabs
4b7947d98c replace image cropping library 2018-01-23 16:36:56 -08:00
zotlabs
c034fab4da annual license update 2018-01-22 20:59:33 -08:00
zotlabs
4cfd7b65fb siteinfo embellishments 2018-01-22 20:07:08 -08:00
zotlabs
5967360991 hubzilla issue #920 - unable to delete permission groups with space in name 2018-01-22 16:49:45 -08:00
zotlabs
deede8e2dd Merge branch 'dev' 2018-01-22 11:58:12 -08:00
zotlabs
f85c6d76de better notifications for edit post/comments which may have been originally posted long ago 2018-01-22 11:54:53 -08:00
mrjive
131baa9f45 Merge pull request #10 from redmatrix/dev
Dev
2018-01-22 09:34:08 +01:00
zotlabs
629c915f36 ensure filter words are not empty 2018-01-21 23:30:08 -08:00
zotlabs
c994f26dbd preserve reverse date sort in mod_search after changes 2018-01-21 18:11:04 -08:00
zotlabs
886a1a5381 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-21 17:09:12 -08:00
zotlabs
d4c81d8e0e Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-21 17:08:39 -08:00
zotlabs
a4588af0f8 mod_search: fix the group by mess 2018-01-21 17:06:38 -08:00
Mario Vavti
1709dbd376 make sure we deal with lowercase string in all situations 2018-01-21 10:27:50 +01:00
Mario Vavti
9937fea2e7 css fix 2018-01-20 08:14:16 +01:00
Mario Vavti
d6fc85f460 use var instead of this 2018-01-19 21:14:32 +01:00
Mario Vavti
db25f2024e wrong class 2018-01-19 20:55:54 +01:00
Mario Vavti
395cf86607 make sure we deal with strings 2018-01-19 20:53:22 +01:00
Mario Vavti
4fb9989b4f input event is catching more situations than keyup 2018-01-19 13:32:08 +01:00
Mario Vavti
40a8e50471 only show clear button if there is something to clear 2018-01-19 12:24:03 +01:00
Mario Vavti
66e1e5b1b6 bootstrap seems to heavy for this - use custom css 2018-01-19 12:18:59 +01:00
Mario Vavti
ecd161d678 provide a button to clear the name filter 2018-01-19 11:40:16 +01:00
Mario Vavti
e9f32ef94e Merge remote-tracking branch 'mike/master' into dev 2018-01-19 09:16:51 +01:00
git-marijus
2cf4381e19 Merge pull request #960 from einervonvielen/CalDAV-CardDAV-on-Android
How to use CalDAV and CardDAV with Androids DAVDroid
2018-01-19 09:15:49 +01:00
git-marijus
0844fb8d8a Merge pull request #962 from dawnbreak/dev
Change dsn port handling in dba_pdo.
2018-01-19 09:10:28 +01:00
zotlabs
764d6e3407 zot api: provide channel list function (list all channel usernames [e.g. channel_address] associated with the logged in account) 2018-01-18 17:20:30 -08:00
zotlabs
b2ab906483 remove deprecated 'qcomment' feature; unused since 2012 2018-01-18 17:02:59 -08:00
zotlabs
6943960f99 Merge branch 'dev' of https://github.com/dawnbreak/hubzilla 2018-01-18 16:08:27 -08:00
zotlabs
858a6270d5 simplify webserver logic flow, remove obsolete $a from router 2018-01-18 15:36:46 -08:00
Klaus Weidenbach
8a60bb4619 Change dsn port handling in dba_pdo. 2018-01-18 23:46:49 +01:00
zotlabs
03d3cbdbf8 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-18 14:17:48 -08:00
zotlabs
89aa882c95 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-18 14:17:33 -08:00
zotlabs
0fba1bb868 simplify interactions with the get_features hook by calling it before any filtering takes place 2018-01-18 14:11:15 -08:00
Einer von Vielen
fad381586c How to use CalDAV and CardDAV with Androids DAVDroid 2018-01-18 22:39:17 +01:00
Mario Vavti
a0e1a8e0a2 Merge remote-tracking branch 'mike/master' into dev 2018-01-18 13:20:23 +01:00
Mario Vavti
a486c90686 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-01-18 12:44:57 +01:00
Mario Vavti
53e353abf2 consolidate navbar tucson and some javascript cleanup 2018-01-18 12:44:40 +01:00
git-marijus
dd45d0a8b2 Merge pull request #957 from einervonvielen/homeinstall-fix-cron-dev
Fixed poller. Use Master.php
2018-01-18 11:39:23 +01:00
git-marijus
577da0eb9e Merge pull request #956 from einervonvielen/homeinstall-fix-cron
Fixed poller. Use Master.php
2018-01-18 11:38:34 +01:00
Mario Vavti
eee037f7c2 raise the queue threshold default from 300 to 3000 2018-01-18 11:31:32 +01:00
Mario Vavti
23a20ba6a5 raise the queue threshold default from 300 to 3000 2018-01-18 11:30:33 +01:00
Mario Vavti
299b9e9014 bump version 2018-01-18 11:25:59 +01:00
Mario Vavti
21d081e175 implement notifications name filter and slightly change the way we load notification to the ui 2018-01-18 11:22:30 +01:00
mrjive
8e475810a7 Merge pull request #8 from redmatrix/dev
section-content-info-wrapper for register text
2018-01-18 10:40:15 +01:00
zotlabs
eb86ffefbf provide local pubstream option (content from this site only). 2018-01-17 21:30:19 -08:00
zotlabs
f1afb0ddfe simplify dir_tagadelic dramatically 2018-01-17 20:10:49 -08:00
zotlabs
561372e203 use mid/parent_mid to trigger $top_level_post 2018-01-17 18:28:13 -08:00
zotlabs
66f48847c9 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-17 18:28:02 -08:00
zotlabs
62e3083f23 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-17 18:27:45 -08:00
zotlabs
c331e585b8 remove sendzid core code from core (put in plugin where it belongs) 2018-01-17 15:25:30 -08:00
zotlabs
05de59d4ad initial z6 delivery 2018-01-16 20:08:10 -08:00
zotlabs
2de1285121 z6 deliver 2018-01-16 18:15:58 -08:00
Mario Vavti
647a9b2740 section-content-info-wrapper for register text 2018-01-16 22:10:52 +01:00
mrjive
e81949bb09 Merge pull request #7 from redmatrix/dev
Dev
2018-01-16 11:45:01 +01:00
Mario Vavti
42878c40fc fix some regressions with permission roles 2018-01-16 09:53:00 +01:00
Mario Vavti
9aadcb0bd4 Merge remote-tracking branch 'mike/master' into dev 2018-01-16 08:55:42 +01:00
zotlabs
82306682c6 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-15 21:49:48 -08:00
zotlabs
05f9f0a393 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-15 21:49:28 -08:00
zotlabs
03f692f24f surface the article feature 2018-01-15 21:46:27 -08:00
zotlabs
014a1f0158 add summary bbcode tag 2018-01-15 20:47:32 -08:00
Mario Vavti
746ea5a369 fix some regressions with permission roles 2018-01-15 11:34:42 +01:00
Mario Vavti
d868ebe4ba Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-01-15 08:56:41 +01:00
Mario Vavti
b49e09939a Merge remote-tracking branch 'mike/master' into dev 2018-01-15 08:56:15 +01:00
zotlabs
91db66b32d move markdown-in-posts/comments feature to plugin 2018-01-14 18:22:58 -08:00
zotlabs
f0faa7f9b0 support tables in markdown posts/comments (but not table alignment); and do not support iframes from html source. 2018-01-14 16:45:33 -08:00
Andrew Manning
ef11b3eb2b Added minimum registration age to /admin/site settings page 2018-01-14 15:02:43 -05:00
Einer von Vielen
3ab92ba9d9 Fixed poller. Use Master.php 2018-01-14 18:33:08 +01:00
Einer von Vielen
949cce094e Fixed poller. Use Master.php 2018-01-14 18:25:41 +01:00
Mario
09abba3dd0 bump version 2018-01-14 08:15:38 +01:00
Mario Vavti
8970d30c93 Merge remote-tracking branch 'mike/master' into dev 2018-01-14 07:42:58 +01:00
zotlabs
75285fd452 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-13 15:55:04 -08:00
zotlabs
76c8bbf7b8 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-13 15:54:45 -08:00
zotlabs
eb3e43feec cleanup of last fix 2018-01-13 14:08:15 -08:00
zotlabs
08bea83c03 unexpected openssl result 2018-01-13 13:45:33 -08:00
zotlabs
8892568652 improve owa logging 2018-01-13 12:24:55 -08:00
Mario Vavti
ce10a44e72 Merge remote-tracking branch 'mike/master' into dev 2018-01-12 22:44:59 +01:00
Mario Vavti
0f5bc00586 update league/html-to-markdown via composer 2018-01-12 22:32:42 +01:00
Mario Vavti
50ec3b300b fix some breaking changes with bootstrap 4 beta3 2018-01-12 22:23:05 +01:00
Mario Vavti
2c5b6cf8dc update to bootstrap 4 beta3 2018-01-12 22:03:06 +01:00
Mario Vavti
f2ec84fb13 typo 2018-01-12 16:03:41 +01:00
Mario Vavti
51d791d824 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-01-12 15:54:41 +01:00
Mario Vavti
db08e2cea0 mod hq: stick to show latest unseen toplevel post on load 2018-01-12 15:54:27 +01:00
zotlabs
619f8f752b Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-12 01:26:21 -08:00
zotlabs
e8958b1fb8 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-12 01:26:01 -08:00
git-marijus
07b67963f1 Merge pull request #951 from dawnbreak/docu
💡 Add source documentation from recent conversations.
2018-01-12 10:15:43 +01:00
zotlabs
b0a491eaa8 ability to parse info blocks in third-party (or system) widgets 2018-01-12 00:25:43 -08:00
Mario Vavti
47c14d3ca1 Merge remote-tracking branch 'mike/master' into dev 2018-01-12 09:16:56 +01:00
zotlabs
6a8c583220 expose settings for site sellpage and site location 2018-01-11 14:29:00 -08:00
zotlabs
468e976a88 OpenWebAuth: can fail after site re-installs; this may need to be pushed forward to master 2018-01-11 12:15:38 -08:00
Mario Vavti
25a63dc413 continue working on hq 2018-01-11 10:58:46 +01:00
Mario Vavti
61e019e176 Merge remote-tracking branch 'mike/master' into dev 2018-01-11 08:46:13 +01:00
zotlabs
894b3706e7 tag nav_featured_app to apps that the corresponding features may not be enabled by default, so that they will become visible in the app menu when enabled 2018-01-10 23:32:56 -08:00
zotlabs
e59237e680 provide de-de language since some browsers do not offer de on its own 2018-01-10 23:06:54 -08:00
zotlabs
b05c1c391c db issue reported in hubzilla #953 - this does not do anything about the auth issue 2018-01-10 15:42:02 -08:00
zotlabs
c09bab466a hubzilla issue #945 continued: We previously blocked directory keywords when searching the local directory as it produced errant results and included results from the entire directory space (an issue that was resolved satisfactorily by that fix sometime in the past). As a result of issue #945 this was reworked so that we should return correct results for keywords when searching either the local directory or a standalone directory. 2018-01-10 15:32:04 -08:00
Mario Vavti
46cc360e4e Merge remote-tracking branch 'mike/master' into dev 2018-01-10 11:39:02 +01:00
Mario Vavti
d6ff8dc9b6 introduce datasrc2src(selector) js function 2018-01-10 11:34:37 +01:00
zotlabs
d0d72c7fd2 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-09 17:05:58 -08:00
zotlabs
f0798f7833 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-09 17:05:39 -08:00
zotlabs
3ce79dd6e1 scrutinizer mods 2018-01-09 17:04:02 -08:00
Mario Vavti
ef7225b4f6 Merge remote-tracking branch 'mike/master' into dev 2018-01-09 10:27:26 +01:00
Mario Vavti
906cbbe45d changelog 2018-01-09 08:56:35 +01:00
zotlabs
dfb75840b8 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2018-01-08 14:51:16 -08:00
zotlabs
75804d7ce5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2018-01-08 14:50:58 -08:00
zotlabs
62f0266f46 scrutinizer issues: none worthy of including in 3.0, there will likely be a few hundred more before all is said and done. 2018-01-08 14:45:21 -08:00
Mario Vavti
0600817ef7 fix regression in app categories 2018-01-08 11:11:17 +01:00
Mario Vavti
214fa81ec6 Merge remote-tracking branch 'mike/master' into dev 2018-01-07 19:53:03 +01:00
Mario Vavti
98fd311891 start with nonactive state for the notifications button and display some text if there are no notifications on small screens only 2018-01-07 19:14:19 +01:00
zotlabs
0d415fb3c9 hubzilla issue #946 2018-01-07 02:34:37 -08:00
Mario Vavti
8d0cdf5c9a make active notifications filter sticky 2018-01-06 12:16:45 +01:00
Klaus Weidenbach
aa63c23839 💡 Add source documentation from recent conversations.
There have been some conversations in the last weeks which explained
several parts of the code, so add it to the source code documentation.
Also some other small source code documentation improvements.
2018-01-05 01:38:20 +01:00
Mario Vavti
0bb5f38ba5 bump version 2018-01-04 11:33:09 +01:00
Mario Vavti
6f21b3dc34 fix nav update regressions - fixes issue #950 2018-01-04 11:31:48 +01:00
Mario Vavti
e13d7beac4 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2018-01-03 20:19:32 +01:00
Mario Vavti
4562e1cc1c update changelog 2018-01-03 20:18:11 +01:00
git-marijus
67dd9c2930 Merge pull request #949 from einervonvielen/dev-fix-homeinstall
Dev fix homeinstall
2018-01-03 19:25:28 +01:00
Einer von Vielen
e9c91a3ef3 Typo 2018-01-03 17:26:31 +01:00
Einer von Vielen
4cde513523 Fixed homeinstall for dev as in 3.0RC 2018-01-03 17:21:41 +01:00
zotlabs
ada578e7e3 issues with feed parameters 2018-01-02 14:04:43 -08:00
Mario Vavti
f826c09abc Merge remote-tracking branch 'mike/master' into dev 2018-01-02 22:14:31 +01:00
zotlabs
3bd7133ba3 hubzilla issue #947 2018-01-01 12:25:43 -08:00
zotlabs
ce38350e00 this should finish up hubzilla issue #113 2017-12-31 14:45:42 -08:00
zotlabs
45923f408f provide warning if ffmpeg not found and video thumbnail is requested 2017-12-30 23:24:24 -08:00
zotlabs
94e92bb4bf update file thumbnails when imported/synced 2017-12-30 23:15:47 -08:00
zotlabs
3fadedcc54 test of new affinity preset code (post 3.0) 2017-12-30 22:48:06 -08:00
zotlabs
e095cb8113 possibly fix hubzilla #673 (prev/next buttons on connedit can show deleted connections). We cannot actually determine that a connection has been deleted (this is typically accomplished by removing the abook record), but we can determine if the corresponding xchan has been deleted. 2017-12-30 15:35:18 -08:00
zotlabs
1fcf59ff94 cleanup 2017-12-28 15:16:50 -08:00
zotlabs
5cfb63da50 a different (hopefully better) implementation of affinity presets, but not for 3.0 because strings have changed. 2017-12-28 15:12:20 -08:00
zotlabs
38646fe0e1 Make affinity widget settings work. It's entirely possible they never did work correctly. I'm not comfortable over-riding the network_page_default config in this way but this is the way I've always set the affinity and it has worked just fine for me for several years and there haven't been any other requests to extend the network page default options. 2017-12-28 14:06:30 -08:00
Mario
e418a6b3d4 changelog 2017-12-28 21:18:50 +01:00
git-marijus
ab1dec813b Merge pull request #944 from dentm42/fix-dupe-bug-in-content-hooks
Fix dupe bug in content hooks
2017-12-27 16:50:17 +01:00
Mario
4a71fb0831 Merge remote-tracking branch 'mike/master' into dev 2017-12-27 16:45:33 +01:00
zotlabs
5a8efc10d8 hubzilla issue #945 - directory keywords returned from twkn in standalone mode 2017-12-26 13:19:27 -08:00
zotlabs
1aa9ce8fe5 sort cloud directory by 1. is_dir and 2. name until we can figure out a way to request different sort orders 2017-12-25 16:25:04 -08:00
zotlabs
32dfa4e868 document that imagick calls/execs ffmpeg for mp4 video thumbnails 2017-12-25 16:06:24 -08:00
zotlabs
b507ac1f98 util/dcp - argument warning when arguments are correct 2017-12-25 15:18:12 -08:00
zotlabs
601706b7b5 cannot use file_get/put_contents in attach_store, must use pipe_streams 2017-12-25 14:59:08 -08:00
Matthew Dent
ef952a41b3 Fix whitespace formatting 2017-12-23 11:09:37 -05:00
M.Dent
e7f6cd2cfa fix dupe bug in content hooks 2017-12-23 10:58:51 -05:00
Mario
8e626a0142 changelog 2017-12-23 14:26:24 +01:00
zotlabs
d4af870bb6 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-22 14:39:14 -08:00
Mario
89fbb86c7b more changelog 2017-12-22 20:20:33 +01:00
git-marijus
8e4dea2334 Merge pull request #939 from einervonvielen/Debian9
Debian9 - Changes for Debian 9 and several fixes
2017-12-22 11:15:56 +01:00
git-marijus
8340d152e1 Merge pull request #940 from einervonvielen/Doku-homeinstall-Debian-9
Changes for homeinstall for Debian 9
2017-12-22 11:15:32 +01:00
zotlabs
f825e27f1a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2017-12-21 13:36:58 -08:00
zotlabs
e7143a265a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-21 13:36:33 -08:00
zotlabs
c087d1e18b hubzilla-addons issue #74 - delayed posts not honoured for GNU-Social
There is a very high probability this will also fix hubzilla-addons issue #75
2017-12-21 13:34:59 -08:00
Einer von Vielen
51d9c37f6b Changes for homeinstall for Debian 9 2017-12-21 16:59:35 +01:00
Einer von Vielen
057da80f2f Changes for Debian 9. Serveral fixes. 2017-12-21 16:29:53 +01:00
Mario Vavti
9c72963d7c add url and headings to bbco_autocomplete() 2017-12-21 09:27:40 +01:00
Mario Vavti
64fe15b6f5 remove additional linebreaks after headings 2017-12-21 09:07:37 +01:00
Mario Vavti
73766caa81 html2bbcode: use headings bbcode for headings 2017-12-20 11:11:18 +01:00
git-marijus
d92ceed737 Merge pull request #936 from phellmes/dev
Update DE translation strings (for 3.0RC too)
2017-12-19 14:02:02 +01:00
phellmes
4ff533769a Update DE translation strings 2017-12-19 13:07:00 +01:00
Mario Vavti
e3ce0496f5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev 2017-12-19 12:43:36 +01:00
Mario Vavti
8ef422a79b changelog 2017-12-19 12:43:02 +01:00
git-marijus
4a6e6ba1b2 Merge pull request #933 from dawnbreak/dev
Don't drop PHP7.0 compatibility for dev yet.
2017-12-19 08:48:23 +01:00
Klaus Weidenbach
8b3535bd0f Don't drop PHP7.0 compatibility for dev yet.
There is no need yet to drop PHP7.0 compatibility for running tests in
TravisCI.
The next PHPUnit release in Feb 2018 will drop PHP7.0, but current
version with PHP7.0 will be supported until 2019.
2017-12-18 22:12:33 +01:00
Mario Vavti
28b2db93dc actually add the smarty lib 2017-12-18 15:53:44 +01:00
Mario Vavti
439d41b194 install smarty via composer and update other php libs 2017-12-18 15:48:49 +01:00
Mario Vavti
08a8f195e7 do not use text-muted class for $sitelocation 2017-12-18 14:58:29 +01:00
Mario Vavti
fe960d7c28 notifications: only handle item otype notify_ids 2017-12-18 12:46:37 +01:00
Mario Vavti
07b628b667 Merge remote-tracking branch 'mike/master' into dev 2017-12-18 12:43:31 +01:00
git-marijus
fcb3674ce4 Merge pull request #932 from dawnbreak/dev
Update classmap caches and add phpunit/dbunit.
2017-12-18 10:32:50 +01:00
zotlabs
ad487ec9f7 since api_zot (doc page) is now referenced from the project webpage, include a mention of the twitter/statusnet API plugin since that enables some degree of compatibility with dozens of third-party apps out of the box. 2017-12-17 14:26:33 -08:00
Klaus Weidenbach
7cfe4c0f01 Update classmap caches and add phpunit/dbunit.
In preparation for DB unit tests add phpunit/dbunit and update dev
libraries.
Update autoload classmap caches.
2017-12-17 22:47:51 +01:00
git-marijus
77ffc385ab Merge pull request #930 from mjfriaza/dev
Updated Spanish translation.
2017-12-17 11:12:45 +01:00
Mario Vavti
78146d6417 merge red master into dev 2017-12-17 09:49:10 +01:00
zotlabs
59779f2a0e reverse the logic so we zidify by default 2017-12-16 15:14:28 -08:00
zotlabs
b1e191ce21 don't zidify all permalinks, only zot permalinks 2017-12-16 15:10:43 -08:00
Mario Vavti
7181cf9012 silence PHP7.2 warning 2017-12-16 20:33:07 +01:00
Mario Vavti
d304821977 fix undefined constant warning 2017-12-16 20:30:42 +01:00
Manuel Jiménez Friaza
55f3198c9c Updated Spanish translation. 2017-12-16 10:55:46 +01:00
Mario Vavti
a3d39b223d Merge remote-tracking branch 'mike/master' into dev 2017-12-15 08:51:39 +01:00
Mario Vavti
5c5fc0a62f only use effective uid if we deal with sys channel content 2017-12-15 08:51:05 +01:00
Mario Vavti
26b92c8564 fix another PHP7.2 warningg 2017-12-14 22:41:11 +01:00
zotlabs
f965d9dc9e wrong constant name 2017-12-14 13:38:56 -08:00
zotlabs
538845cbf5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge 2017-12-14 13:33:20 -08:00
zotlabs
684b572aa8 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-14 13:32:58 -08:00
zotlabs
869126259b hubzilla issue #928 2017-12-14 13:30:31 -08:00
Mario Vavti
a61c72b3b2 fix some more PHP7.2 warnings 2017-12-14 22:10:56 +01:00
Mario Vavti
a07b5ba4dd make remote homelink link to the home host and not to the home channel 2017-12-14 21:48:30 +01:00
Mario Vavti
412f177c56 bump version 2017-12-14 10:24:16 +01:00
zotlabs
215d615fc3 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-12 11:54:26 -08:00
zotlabs
979c05b24d Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-07 11:49:25 -08:00
zotlabs
e5653945d3 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-06 14:29:36 -08:00
zotlabs
0a55d6d511 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-04 14:28:00 -08:00
zotlabs
95311ad07e Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-12-02 17:31:59 -08:00
zotlabs
ef4a0e5af5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-30 14:56:08 -08:00
zotlabs
3acc5b0508 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-28 14:18:17 -08:00
zotlabs
981631752a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-27 15:13:02 -08:00
zotlabs
4471f580d7 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-25 14:08:15 -08:00
zotlabs
e5141dd91b Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-23 14:00:24 -08:00
zotlabs
9936670f44 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-22 15:43:48 -08:00
zotlabs
6ac3fc4e07 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-21 17:30:40 -08:00
zotlabs
babe14410c Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-20 15:04:08 -08:00
zotlabs
4cd0b745cb Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-19 17:39:19 -08:00
zotlabs
cf4588f16f Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-15 12:41:03 -08:00
zotlabs
d43542dd7a Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-14 14:50:36 -08:00
zotlabs
59caf141d1 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-12 16:07:04 -08:00
zotlabs
71a30cd9a5 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-09 18:36:40 -08:00
zotlabs
ef27a1ce6c use logger 2017-11-08 19:21:36 -08:00
zotlabs
75471ba10f Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-08 19:21:20 -08:00
zotlabs
5e47b767ea Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-06 21:55:58 -08:00
zotlabs
7ef641e256 Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge 2017-11-04 18:18:10 -07:00
4353 changed files with 368904 additions and 314049 deletions

2
.gitignore vendored
View File

@@ -37,7 +37,7 @@ pageheader.html
doc/SiteTOS.md
# themes except for redbasic
view/theme/*
! view/theme/redbasic
!view/theme/redbasic
# site theme schemas
view/theme/redbasic/schema/default.php
# Doxygen API documentation, run 'doxygen util/Doxyfile' to generate it

147
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,147 @@
# Select image from https://hub.docker.com/_/php/
#image: php:7.2
# Use a prepared Hubzilla image to optimise pipeline duration
image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.2
stages:
- test
- deploy
# Select what we should cache
cache:
paths:
- vendor/
- .cache/
# global variables for all jobs, if no job specific variables
variables:
# Tell composer to use the project workspace .cache folder
COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/.cache/composer"
# Ignore a Composer warning
COMPOSER_ALLOW_SUPERUSER: 1
# Configure MySQL/MariaDB service (https://hub.docker.com/_/mysql/, https://hub.docker.com/_/mariadb/)
MYSQL_DATABASE: hello_world_test
MYSQL_ROOT_PASSWORD: mysql
# Configure PostgreSQL service (https://hub.docker.com/_/postgres/)
POSTGRES_DB: ci-db
POSTGRES_USER: ci-user
POSTGRES_PASSWORD: ci-pass
before_script:
# pecl and composer do not work with PHP production restrictions (from Hubzilla Docker image)
- if [ -f /usr/local/etc/php/conf.d/z_prod.ini ]; then mv /usr/local/etc/php/conf.d/z_prod.ini /usr/local/etc/php/conf.d/z_prod.ini.off; fi
# Install & enable Xdebug for code coverage reports
- pecl install xdebug
- docker-php-ext-enable xdebug
# Install composer
- curl -sS https://getcomposer.org/installer | php
# Install dev libraries from composer
- php ./composer.phar install --no-progress
# hidden job definition with template for MySQL/MariaDB
.job_template_mysql: &job_definition_mysql
stage: test
script:
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
# hidden job definition with template for PostgreSQL
.job_template_postgres: &job_definition_postgres
stage: test
services:
- postgres:latest
script:
- export PGPASSWORD=$POSTGRES_PASSWORD
- psql --version
- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT VERSION();"
# Import hubzilla's DB schema
- psql -h "postgres" -U "$POSTGRES_USER" -v ON_ERROR_STOP=1 --quiet "$POSTGRES_DB" < ./install/schema_postgres.sql
# Show databases and relations/tables of hubzilla's database
#- psql -h "postgres" -U "$POSTGRES_USER" -l
#- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "\dt;"
# Run the actual tests
- vendor/bin/phpunit --configuration tests/phpunit-pgsql.xml --testdox
# hidden job definition with artifacts config template
.artifacts_template:
artifacts: &artifacts_template
expire_in: 1 week
# Gitlab should show the results, but has problems parsing PHPUnit's junit file.
reports:
junit: tests/results/junit.xml
# Archive test results (coverage, testdox, junit)
name: "$CI_COMMIT_REF_SLUG-$CI_JOB_NAME"
paths:
- tests/results/
# PHP7.2 with MySQL 5.7
php7.2_mysql5.7:
<<: *job_definition_mysql
services:
- mysql:5.7
# PHP7.2 with MySQL 8 (latest)
php7.2_mysql8:
<<: *job_definition_mysql
services:
- name: mysql:8
command: ["--default-authentication-plugin=mysql_native_password"]
# PHP7.2 with MariaDB 10.2
php7.2_mariadb10.2:
<<: *job_definition_mysql
services:
- name: mariadb:10.2
alias: mysql
# PHP7.3 with MariaDB 10.3 (latest)
php7.3_mariadb10.3:
<<: *job_definition_mysql
image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.3
services:
- name: mariadb:10.3
alias: mysql
# PHP7.2 with PostgreSQL latest (11)
php7.2_postgres11:
<<: *job_definition_postgres
artifacts: *artifacts_template
# PHP7.3 with PostgreSQL latest (11)
php7.3_postgres11:
<<: *job_definition_postgres
image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.3
artifacts: *artifacts_template
# Generate Doxygen API Documentation and deploy it as GitLab pages
pages:
stage: deploy
cache: {}
image: php:7-cli-alpine
before_script:
- apk update
- apk add doxygen ttf-freefont graphviz
script:
- doxygen util/Doxyfile
- mv doc/html/ public/
- echo "API documentation should be accessible at https://hubzilla.frama.io/core/ soon"
artifacts:
paths:
- public
only:
# Only generate it on main repo's master branch
- master@hubzilla/core

View File

@@ -1,16 +1,43 @@
# Hubzilla at Home next to your Router
Run hubzilla-setup.sh for an unattended installation of hubzilla.
This readme will show you how to install and run Hubzilla or Zap at home.
The installation is done by a script.
What the script will do for you...
+ install everything required by Zap/Hubzilla, basically a web server (Apache), PHP, a database (MySQL), certbot,...
+ create a database
+ run certbot to have everything for a secure connection (httpS)
+ create a script for daily maintenance
- backup to external disk (certificates, database, /var/www/)
- renew certfificate (letsencrypt)
- update of Zap/Hubzilla
- update of Debian
- restart
+ create cron jobs for
- DynDNS (selfHOST.de or freedns.afraid.org) every 5 minutes
- Master.php for Zap/Hubzilla every 10 minutes
- daily maintenance script every day at 05:30
The script is known to work without adjustments with
+ Hardware
- Mini-PC with Debian-9.2-amd64, or
- Rapberry 3 with Raspbian, Debian-9.3
- Mini-PC with Debian 9 (stretch), or
- Rapberry 3 with Raspbian, Debian 9
+ DynDNS
- selfHOST.de
- freedns.afraid.org
The script can install both [Hubzilla](https://zotlabs.org/page/hubzilla/hubzilla-project) and [Zap](https://zotlabs.com/zap/). Make sure to use the correct GIT repositories.
+ Hubzilla
- core: git clone https://framagit.org/hubzilla/core.git html (in this readme)
- addons: util/add_addon_repo https://framagit.org/hubzilla/addons.git hzaddons (in hubzilla-setup.sh)
+ Zap
- core: git clone https://framagit.org/zot/zap.git html (in this readme)
- addons: util/add_addon_repo https://framagit.org/zot/zap-addons.git zaddons (in hubzilla-setup.sh)
## Disclaimers
- This script does work with Debian 9 only.
@@ -29,81 +56,64 @@ Hardware
Software
+ Fresh installation of Debian 9 (Stretch)
+ Router with open ports 80 and 443 for your Hub
+ Router with open ports 80 and 443 for your web server
## The basic steps (quick overview)
+ Register your own domain (for example at selfHOST) or a free subdomain (for example at freeDNS)
+ Log on to your new debian (server)
+ Log on to your fresh Debian
- apt-get install git
- mkdir -p /var/www
- cd /var/www
- git clone https://github.com/redmatrix/hubzilla.git html
- cd /html/.homeinstall
- git clone https://framagit.org/hubzilla/core.git html
- cd html/.homeinstall
- cp hubzilla-config.txt.template hubzilla-config.txt
- nano hubzilla-config.txt
- Read the comments carefully
- Enter your values: db pass, domain, values for dyn DNS
- Make sure your your external drive (for backups) is mounted
- Prepare your external disk for backups
- hubzilla-setup.sh as root
- ... wait, wait, wait until the script is finised
- reboot
+ Open your domain with a browser and step throught the initial configuration of hubzilla.
## Troubleshooting
If the check of the mail address fails when you try to register the very first user in the browser. Do...
cd /var/www/html
util/config system.do_not_check_dns 1
## Optional - Set path to imagemagick
In Admin settings of hubzilla or via terminal
cd /var/www/html
util/config system.imagick_convert_path /usr/bin/convert
# Step-by-Step in Detail
## Preparations Hardware
### Mini-PC
### Recommended: USB Drive for Backups
The installation will create a daily backup written to an external drive.
The USB drive must be compatible with the filesystems
- ext4 (if you do not want to encrypt the USB)
- LUKS + ext4 (if you want to encrypt the USB)
The backup includes
- Hubzilla DB
- Hubzilla installation /var/www/html
- Certificates for letsencrypt
## Preparations Software
### Install Debian Linux on the Mini-PC
## Install Debian 9
Download the stable Debian at https://www.debian.org/
(Debian 8 is no longer supported.)
Provided you use a Raspberry Pi 3...
Create bootable USB drive with Debian on it.You could use
Download the OS Raspbian from https://www.raspberrypi.org/downloads/raspbian/
- unetbootin, https://en.wikipedia.org/wiki/UNetbootin
- or simply the linux command "dd"
Follow the installation instruction there.
Example for command dd...
## Configure your Router
su -
dd if=2017-11-29-raspbian-stretch.img of=/dev/mmcblk0
Your web has to be visible in the internet.
Do not forget to unmount the SD card before and check if unmounted like in this example...
su -
umount /dev/mmcblk0*
df -h
Switch off your mini pc, plug in your USB drive and start the mini pc from the
stick. Install Debian. Follow the instructions of the installation.
### Configure your Router
Open the ports 80 and 443 on your router for your Debian
Open the ports 80 and 443 on your router for your Debian. Make sure your web server is marked as "exposed host".
## Preparations Dynamic IP Address
Follow the instructions in .homeinstall/hubzilla-config.txt.
In short...
Your Hubzilla must be reachable by a domain that you can type in your browser
cooldomain.org
@@ -118,92 +128,15 @@ There are two ways to get a domain...
...for example buy at selfHOST.de
The cost are around 10,- € once and 1,50 € per month (2017).
The cost is 1,50 € per month (2019).
The cost are around 10,- € once and 1,50 € per month (2017).
### Method 2: Register a free subdomain
...for example register at freedns.afraid.org
Follow the instructions in .homeinstall/hubzilla-config.txt.
## Note on Rasperry
## Install Hubzilla on your Debian
Login to your debian
(Provided your username is "you" and the name of the mini pc is "debian". You
could take the IP address instead of "debian")
ssh -X you@debian
Change to root user
su -l
Install git
apt-get install git
Make the directory for apache and change diretory to it
mkdir /var/www
cd /var/www/
Clone hubzilla from git ("git pull" will update it later)
git clone https://github.com/redmatrix/hubzilla html
Change to the install script
cd html/.homeinstall/
Copy the template file
cp hubzilla-config.txt.template hubzilla-config.txt
Modify the file "hubzilla-config.txt". Read the instructions there carefully and enter your values.
nano hubzilla-config.txt
Make sure your external drive (for backups) is plugged in and can be mounted as configured in "hubzilla-config.txt". Otherwise the daily backups will not work.
Run the script
./hubzilla-setup.sh
Wait... The script should not finish with an error message.
In a webbrowser open your domain.
Expected: A test page of hubzilla is shown. All checks there should be
successfull. Go on...
Expected: A page for the Hubzilla server configuration shows up.
Leave db server name "127.0.0.1" and port "0" untouched.
Enter
- DB user name = hubzilla
- DB pass word = This is the password you entered in "hubzilla-config.txt"
- DB name = hubzilla
Leave db type "MySQL" untouched.
Follow the instructions in the next pages.
After the daily script was executed at 05:30 (am)
- look at var/www/html/hubzilla-daily.log
- check your backup on the external drive
- optionally view the daily log under yourdomain.org/admin/logs/
- set the logfile to var/www/html/hubzilla-daily.log
## Note for the Rasperry
The script was tested with an Raspberry 3 under Raspian (Debian 9.3, 2017-11-29-raspbian-stretch.img).
It is recommended to deinstall these programms to avoid endless updates. Use...
sudo apt-get purge wolfram-engine sonic-pi
sudo apt-get autoremove
The script was tested with an Raspberry 3 under Raspian, Debian 9.
It is recommended to run the Raspi without graphical frontend (X-Server). Use...
@@ -213,4 +146,12 @@ to boot the Rapsi to the client console.
DO NOT FORGET TO CHANGE THE DEFAULT PASSWORD FOR USER PI!
On a Raspian Stretch (Debian 9) the validation of the mail address fails for the very first user.
This used to happen on some *bsd distros but there was some work to fix that a year ago (2017).
So if your system isn't registered in DNS or DNS isn't active do
cd /var/www/html
util/config system.do_not_check_dns 1

View File

@@ -2,8 +2,8 @@
### MANDATORY - database password #############
#
# Please give your database password
# It is better to not use blanks inside the password.
# Example: db_pass=pass_word_with_no_blanks_in_it
# Example: db_pass="this password has blanks in it"
db_pass=
###############################################
@@ -18,7 +18,12 @@ db_pass=
# Example: my.cooldomain.org
# Example: cooldomain.org
#
# Email is optional
# You might use "localhost" for a LOCAL TEST installation.
# This is usefull if you want to debug the server inside a VM.
#
# Example: localhost
#
# Email is optional if you use "localhost".
#
#
le_domain=
@@ -28,7 +33,7 @@ le_email=
### OPTIONAL - selfHOST - dynamic IP address ##
#
# 1. Register a domain at selfhost.de
# - choose offer "DOMAIN dynamisch" 1,50€/mon at 08.01.2016
# - choose offer "DOMAIN dynamisch" 1,50€/mon at 04/2019
# 2. Get your configuration for dynamic IP update
# - Log in at selfhost.de
# - go to "DynDNS Accounte"

315
.homeinstall/hubzilla-setup.sh Executable file → Normal file
View File

@@ -3,7 +3,10 @@
# How to use
# ----------
#
# This file automates the installation of hubzilla under Debian Linux
# This file automates the installation of
# - hubzilla: https://zotlabs.org/page/hubzilla/hubzilla-project and
# - zap: https://zotlabs.com/zap/
# under Debian Linux
#
# 1) Copy the file "hubzilla-config.txt.template" to "hubzilla-config.txt"
# Follow the instuctions there
@@ -25,16 +28,14 @@
# * php,
# * mysql - the database for hubzilla,
# * phpmyadmin,
# * git to download and update hubzilla itself
# * git to download and update hubzilla addon
# - download hubzilla core and addons
# - configure cron
# * "poller.php" for regular background prozesses of hubzilla
# * to_do "apt-get update" and "apt-get dist-upgrade" to keep linux
# up-to-date
# * to_do backup hubzillas database and files (rsnapshot)
# - configure dynamic ip with cron
# - to_do letsencrypt
# - to_do redirection to https
# * "Master.php" for regular background prozesses of hubzilla
# * "apt-get update" and "apt-get dist-upgrade" and "apt-get autoremove" to keep linux up-to-date
# * run command to keep the IP up-to-date > DynDNS provided by selfHOST.de or freedns.afraid.org
# * backup hubzillas database and files (rsync)
# - letsencrypt
#
#
# Discussion
@@ -43,26 +44,11 @@
# Security - password is the same for mysql-server, phpmyadmin and hubzilla db
# - The script runs into installation errors for phpmyadmin if it uses
# different passwords. For the sake of simplicity one singel password.
#
# Security - suhosin for PHP
# - The script does not install suhosin.
# - Is the security package suhosin usefull or not usefull?
#
# Hubzilla - email verification
# - The script switches off email verification off in all htconfig.tpl.
# Example: /var/www/html/view/en/htconfig.tpl
# - Is this a silly idea or not?
#
#
# Remove Hubzilla (for a fresh start using the script)
# ----------------------------------------------------
#
# You could use /var/www/hubzilla-remove.sh
# that is created by hubzilla-setup.sh.
#
# The script will remove (almost everything) what was installed by the script.
# After the removal you could run the script again to have a fresh install
# of all applications including hubzilla and its database.
#
# How to restore from backup
# --------------------------
@@ -76,18 +62,10 @@
#
# hubzilla-daily.sh makes a (daily) backup of all relevant files
# - /var/lib/mysql/ > hubzilla database
# - /var/www/html/ > hubzilla from github
# - /var/www/letsencrypt/ > certificates
# - /var/www/ > hubzilla/zap from github
# - /etc/letsencrypt/ > certificates
#
# hubzilla-daily.sh writes the backup
# - either to an external disk compatible to LUKS+ext4 (see hubzilla-config.txt)
# - or to /var/cache/rsnapshot in case the external disk is not plugged in
#
# Restore backup
# - - - - - - -
#
# This was not tested yet.
# Bacically you can copy the files from the backup to the server.
# hubzilla-daily.sh writes the backup to an external disk compatible to LUKS+ext4 (see hubzilla-config.txt)
#
# Credits
# -------
@@ -136,17 +114,17 @@ function check_config {
# backup is important and should be checked
if [ -n "$backup_device_name" ]
then
device_mounted=0
if [ ! -d "$backup_mount_point" ]
then
mkdir "$backup_mount_point"
fi
device_mounted=0
if fdisk -l | grep -i "$backup_device_name.*linux"
then
print_info "ok - filesystem of external device is linux"
if [ -n "$backup_device_pass" ]
then
echo "$backup_device_pass" | cryptsetup luksOpen $backup_device_name cryptobackup
if [ ! -d /media/hubzilla_backup ]
then
mkdir /media/hubzilla_backup
fi
if mount /dev/mapper/cryptobackup /media/hubzilla_backup
then
device_mounted=1
@@ -246,6 +224,11 @@ function install_apache {
nocheck_install "apache2 apache2-utils"
}
function install_imagemagick {
print_info "installing imagemagick..."
nocheck_install "imagemagick"
}
function install_curl {
print_info "installing curl..."
nocheck_install "curl"
@@ -259,7 +242,7 @@ function install_sendmail {
function install_php {
# openssl and mbstring are included in libapache2-mod-php
print_info "installing php..."
nocheck_install "libapache2-mod-php php php-pear php-curl php-mcrypt php-gd"
nocheck_install "libapache2-mod-php php php-pear php-curl php-mcrypt php-gd php-mysqli php-mbstring php-xml"
sed -i "s/^upload_max_filesize =.*/upload_max_filesize = 100M/g" /etc/php/7.0/apache2/php.ini
sed -i "s/^post_max_size =.*/post_max_size = 100M/g" /etc/php/7.0/apache2/php.ini
}
@@ -444,11 +427,11 @@ function configure_cron_selfhost {
print_info "configure cron for selfhost..."
if [ -z "$selfhost_user" ]
then
print_info "freedns is not configured because freedns_key is empty in $configfile"
print_info "selfhost is not configured because selfhost_key is empty in $configfile"
else
# Use cron for dynamich ip update
# - at reboot
# - every 30 minutes
# - every 5 minutes
if [ -z "`grep 'selfhost-updater.sh' /etc/crontab`" ]
then
echo "@reboot root bash /etc/selfhost/selfhost-updater.sh update > /dev/null 2>&1" >> /etc/crontab
@@ -466,89 +449,24 @@ function install_letsencrypt {
then
die "Failed to install let's encrypt: 'le_domain' is empty in $configfile"
fi
# configure apache
apache_le_conf=/etc/apache2/sites-available/le-default.conf
if [ -f $apache_le_conf ]
# check if user gave mail address
if [ -z "$le_email" ]
then
print_info "$apache_le_conf exist already"
die "Failed to install let's encrypt: 'le_domain' is empty in $configfile"
fi
nocheck_install "apt-transport-https"
# add backports to your sources.list
backports_list=/etc/apt/sources.list.d/backports.list
if [ -f $backports_list ]
then
print_info "$backports_list exist already"
else
cat > $apache_le_conf <<END
# letsencrypt default Apache configuration
Alias /.well-known/acme-challenge /var/www/letsencrypt
<Directory /var/www/letsencrypt>
Options FollowSymLinks
Allow from all
</Directory>
END
a2ensite le-default.conf
service apache2 restart
echo "deb https://deb.debian.org/debian stretch-backports main" > $backports_list
fi
# download the shell script
if [ -d $le_dir ]
then
print_info "letsenrypt exists already (nothing downloaded > no certificate created and registered)"
return 0
fi
git clone https://github.com/lukas2511/dehydrated $le_dir
cd $le_dir
# create config file for letsencrypt.sh
echo "WELLKNOWN=$le_dir" > $le_dir/config.sh
if [ -n "$le_email" ]
then
echo "CONTACT_EMAIL=$le_email" >> $le_dir/config.sh
fi
# create domain file for letsencrypt.sh
# WATCH THIS:
# - It did not work wit "sub.domain.org www.sub.domain.org".
# - So just use "sub.domain.org" only!
echo "$le_domain" > $le_dir/domains.txt
# test apache config for letsencrpyt
url_http=http://$le_domain/.well-known/acme-challenge/domains.txt
wget_output=$(wget -nv --spider --max-redirect 0 $url_http)
if [ $? -ne 0 ]
then
die "Failed to load $url_http"
fi
# accept terms of service of letsencrypt
./dehydrated --register --accept-terms
# run script dehydrated
#
./dehydrated --cron --config $le_dir/config.sh
}
function configure_apache_for_https {
print_info "configuring apache to use httpS ..."
# letsencrypt.sh
#
# "${BASEDIR}/certs/${domain}/privkey.pem"
# "${BASEDIR}/certs/${domain}/cert.pem"
# "${BASEDIR}/certs/${domain}/fullchain.pem"
#
SSLCertificateFile=${le_dir}/certs/${le_domain}/cert.pem
SSLCertificateKeyFile=${le_dir}/certs/${le_domain}/privkey.pem
SSLCertificateChainFile=${le_dir}/certs/${le_domain}/fullchain.pem
if [ ! -f $SSLCertificateFile ]
then
print_warn "Failed to configure apache for httpS: Missing certificate file $SSLCertificateFile"
return 0
fi
# make sure that the ssl mode is enabled
print_info "...configuring apache to use httpS - a2enmod ssl ..."
a2enmod ssl
# modify apach' ssl conf file
if grep -i "ServerName" $sslconf
then
print_info "seems that apache was already configered to use httpS with $sslconf"
else
sed -i "s/ServerAdmin.*$/ServerAdmin webmaster@localhost\\n ServerName ${le_domain}/" $sslconf
fi
sed -i s#/etc/ssl/certs/ssl-cert-snakeoil.pem#$SSLCertificateFile# $sslconf
sed -i s#/etc/ssl/private/ssl-cert-snakeoil.key#$SSLCertificateKeyFile# $sslconf
sed -i s#/etc/apache2/ssl.crt/server-ca.crt#$SSLCertificateChainFile# $sslconf
sed -i s/#SSLCertificateChainFile/SSLCertificateChainFile/ $sslconf
# apply changes
a2ensite default-ssl.conf
apt-get -y update
DEBIAN_FRONTEND=noninteractive apt-get -q -y -t stretch-backports install certbot python-certbot-apache
print_info "run certbot ..."
certbot --apache -w /var/www/html -d $le_domain -m $le_email --agree-tos --non-interactive --redirect --hsts --uir
service apache2 restart
}
@@ -567,7 +485,10 @@ function check_https {
function install_hubzilla {
print_info "installing hubzilla addons..."
cd /var/www/html/
util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons
# if you install Hubzilla
util/add_addon_repo https://framagit.org/hubzilla/addons hzaddons
# if you install ZAP
#util/add_addon_repo https://framagit.org/zot/zap-addons.git zaddons
mkdir -p "store/[data]/smarty3"
chmod -R 777 store
touch .htconfig.php
@@ -577,7 +498,7 @@ function install_hubzilla {
chown root:www-data /var/www/html/
chown root:www-data /var/www/html/.htaccess
chmod 0644 /var/www/html/.htaccess
# try to switch off email registration
print_info "try to switch off email registration..."
sed -i "s/verify_email.*1/verify_email'] = 0/" /var/www/html/view/*/ht*
if [ -n "`grep -r 'verify_email.*1' /var/www/html/view/`" ]
then
@@ -586,49 +507,9 @@ function install_hubzilla {
print_info "installed hubzilla"
}
function rewrite_to_https {
print_info "configuring apache to redirect http to httpS ..."
htaccessfile=/var/www/html/.htaccess
if grep -i "https" $htaccessfile
then
print_info "...configuring apache to redirect http to httpS was already done in $htaccessfile"
else
sed -i "s#QSA]#QSA]\\n RewriteCond %{SERVER_PORT} !^443$\\n RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]#" $htaccessfile
fi
service apache2 restart
}
# This will allways overwrite both config files
# - internal disk
# - external disk (LUKS + ext4)
# of rsnapshot for hubzilla
function install_rsnapshot {
print_info "installing rsnapshot..."
nocheck_install "rsnapshot"
# internal disk
cp -f /etc/rsnapshot.conf $snapshotconfig
sed -i "s/^cmd_cp/#cmd_cp/" $snapshotconfig
sed -i "s/^backup/#backup/" $snapshotconfig
echo "backup /var/lib/mysql/ localhost/" >> $snapshotconfig
echo "backup /var/www/html/ localhost/" >> $snapshotconfig
echo "backup /var/www/letsencrypt/ localhost/" >> $snapshotconfig
# external disk
if [ -n "$backup_device_name" ]
then
cp -f /etc/rsnapshot.conf $snapshotconfig_external_device
sed -i "s#snapshot_root.*#snapshot_root $backup_mount_point#" $snapshotconfig_external_device
sed -i "/alpha/s/6/30/" $snapshotconfig_external_device
sed -i "s/^cmd_cp/#cmd_cp/" $snapshotconfig_external_device
sed -i "s/^backup/#backup/" $snapshotconfig_external_device
if [ -z "`grep 'letsencrypt' $snapshotconfig_external_device`" ]
then
echo "backup /var/lib/mysql/ localhost/" >> $snapshotconfig_external_device
echo "backup /var/www/html/ localhost/" >> $snapshotconfig_external_device
echo "backup /var/www/letsencrypt/ localhost/" >> $snapshotconfig_external_device
fi
else
print_info "No backup configuration (rsnapshot) for external device configured. Reason: backup_device_name and/or backup_device_pass not given in $configfile"
fi
function install_rsync {
print_info "installing rsync..."
nocheck_install "rsync"
}
function install_cryptosetup {
@@ -639,28 +520,28 @@ function install_cryptosetup {
function configure_cron_daily {
print_info "configuring cron..."
# every 10 min for poller.php
if [ -z "`grep 'poller.php' /etc/crontab`" ]
if [ -z "`grep 'Master.php' /etc/crontab`" ]
then
echo "*/10 * * * * www-data cd /var/www/html; php include/poller.php >> /dev/null 2>&1" >> /etc/crontab
echo "*/10 * * * * www-data cd /var/www/html; php Zotlabs/Daemon/Master.php Cron >> /dev/null 2>&1" >> /etc/crontab
fi
# Run external script daily at 05:30
# - stop apache and mysql-server
# - backup hubzilla
# - renew the certificate of letsencrypt
# - backup db, files (/var/www/html), certificates if letsencrypt
# - update hubzilla core and addon
# - update and upgrade linux
# - reboot
# - reboot is done by "shutdown -h now" because "reboot" hangs sometimes depending on the system
echo "#!/bin/sh" > /var/www/$hubzilladaily
echo "#" >> /var/www/$hubzilladaily
echo "echo \" \"" >> /var/www/$hubzilladaily
echo "echo \"+++ \$(date) +++\"" >> /var/www/$hubzilladaily
echo "echo \" \"" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - renew certificate...\"" >> /var/www/$hubzilladaily
echo "bash $le_dir/dehydrated --cron --config $le_dir/config.sh" >> /var/www/$hubzilladaily
echo "certbot renew --noninteractive" >> /var/www/$hubzilladaily
echo "#" >> /var/www/$hubzilladaily
echo "# stop hubzilla" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - stoping apache and mysql...\"" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - stopping apache and mysql...\"" >> /var/www/$hubzilladaily
echo "service apache2 stop" >> /var/www/$hubzilladaily
echo "/etc/init.d/mysql stop # to avoid inconsistancies" >> /var/www/$hubzilladaily
echo "/etc/init.d/mysql stop # to avoid inconsistencies" >> /var/www/$hubzilladaily
echo "#" >> /var/www/$hubzilladaily
echo "# backup" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - try to mount external device for backup...\"" >> /var/www/$hubzilladaily
@@ -691,11 +572,13 @@ echo " if mount $backup_device_name $backup_mount_point" >> /var/www/$hub
echo " then" >> /var/www/$hubzilladaily
echo " device_mounted=1" >> /var/www/$hubzilladaily
echo " echo \"device $backup_device_name is now mounted. Starting backup...\"" >> /var/www/$hubzilladaily
echo " rsnapshot -c $snapshotconfig_external_device alpha" >> /var/www/$hubzilladaily
echo " echo \"\$(date) - disk sizes...\"" >> /var/www/$hubzilladaily
echo " df -h" >> /var/www/$hubzilladaily
echo " echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily
echo " du -h $backup_mount_point | grep mysql/hubzilla" >> /var/www/$hubzilladaily
echo " rsync -a --delete /var/lib/mysql/ /media/hubzilla_backup/mysql" >> /var/www/$hubzilladaily
echo " rsync -a --delete /var/www/ /media/hubzilla_backup/www" >> /var/www/$hubzilladaily
echo " rsync -a --delete /etc/letsencrypt/ /media/hubzilla_backup/letsencrypt" >> /var/www/$hubzilladaily
echo " echo \"\$(date) - disk sizes...\"" >> /var/www/$hubzilladaily
echo " df -h" >> /var/www/$hubzilladaily
echo " echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily
echo " du -h $backup_mount_point | grep mysql/hubzilla" >> /var/www/$hubzilladaily
echo " echo \"unmounting backup device...\"" >> /var/www/$hubzilladaily
echo " umount $backup_mount_point" >> /var/www/$hubzilladaily
echo " else" >> /var/www/$hubzilladaily
@@ -717,18 +600,16 @@ echo "echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily
echo "du -h /var/lib/mysql/ | grep mysql/hubzilla" >> /var/www/$hubzilladaily
echo "#" >> /var/www/$hubzilladaily
echo "# update" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - updating dehydrated...\"" >> /var/www/$hubzilladaily
echo "git -C /var/www/letsencrypt/ pull" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - updating hubhilla core...\"" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - updating core and addons...\"" >> /var/www/$hubzilladaily
echo "(cd /var/www/html/ ; util/udall)" >> /var/www/$hubzilladaily
echo "chown -R www-data:www-data /var/www/html/ # make all accessable for the webserver" >> /var/www/$hubzilladaily
echo "chown root:www-data /var/www/html/.htaccess" >> /var/www/$hubzilladaily
echo "chmod 0644 /var/www/html/.htaccess # www-data can read but not write it" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - updating linux...\"" >> /var/www/$hubzilladaily
echo "apt-get -q -y update && apt-get -q -y dist-upgrade && apt-get -q -y autoremove # update linux and upgrade" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - Backup hubzilla and update linux finished. Rebooting...\"" >> /var/www/$hubzilladaily
echo "echo \"\$(date) - Backup and update finished. Rebooting...\"" >> /var/www/$hubzilladaily
echo "#" >> /var/www/$hubzilladaily
echo "reboot" >> /var/www/$hubzilladaily
echo "shutdown -r now" >> /var/www/$hubzilladaily
if [ -z "`grep 'hubzilla-daily.sh' /etc/crontab`" ]
then
@@ -740,38 +621,6 @@ echo "reboot" >> /var/www/$hubzilladaily
print_info "configured cron for updates/upgrades"
}
function write_uninstall_script {
print_info "writing uninstall script..."
cat > /var/www/hubzilla-remove.sh <<END
#!/bin/sh
#
# This script removes Hubzilla.
# You might do this for a fresh start using the script.
# The script will remove (almost everything) what was installed by the script,
# all applications including hubzilla and its database.
#
# Backup the certificates of letsencrypt (you never know)
cp -a /var/www/letsencrypt/ ~/backup_le_certificats
#
# Removal
apt-get remove apache2 apache2-utils libapache2-mod-php5 php5 php-pear php5-xcache php5-curl php5-mcrypt php5-gd php5-mysql mysql-server mysql-client phpmyadmin
apt-get purge apache2 apache2-utils libapache2-mod-php5 php5 php-pear php5-xcache php5-curl php5-mcrypt php5-gd php5-mysql mysql-server mysql-client phpmyadmin
apt-get autoremove
apt-get clean
rm /etc/rsnapshot_hubzilla.conf
rm /etc/rsnapshot_hubzilla_external_device.conf
rm -R /etc/apache2/
rm -R /var/lib/mysql/
rm -R /var/www
rm -R /etc/selfhost/
# uncomment the next line if you want to remove the backups
# rm -R /var/cache/rsnapshot
nano /etc/crontab # remove entries there manually
END
chmod -x /var/www/hubzilla-remove.sh
}
########################################################################
# START OF PROGRAM
########################################################################
@@ -787,11 +636,7 @@ selfhostdir=/etc/selfhost
selfhostscript=selfhost-updater.sh
hubzilladaily=hubzilla-daily.sh
plugins_update=.homeinstall/plugins_update.sh
snapshotconfig=/etc/rsnapshot_hubzilla.conf
snapshotconfig_external_device=/etc/rsnapshot_hubzilla_external_device.conf
backup_mount_point=/media/hubzilla_backup
le_dir=/var/www/letsencrypt
sslconf=/etc/apache2/sites-available/default-ssl.conf
#set -x # activate debugging from here
@@ -801,6 +646,7 @@ update_upgrade
install_curl
install_sendmail
install_apache
install_imagemagick
install_php
install_mysql
install_phpmyadmin
@@ -810,15 +656,26 @@ install_run_selfhost
ping_domain
configure_cron_freedns
configure_cron_selfhost
install_letsencrypt
configure_apache_for_https
check_https
if [ "$le_domain" != "localhost" ]
then
install_letsencrypt
check_https
else
print_info "is localhost - skipped installation of letsencrypt and configuration of apache for https"
fi
install_hubzilla
rewrite_to_https
install_rsnapshot
configure_cron_daily
install_cryptosetup
write_uninstall_script
if [ "$le_domain" != "localhost" ]
then
install_rsync
install_cryptosetup
else
print_info "is localhost - skipped installation of cryptosetup"
fi
#set +x # stop debugging from here

View File

@@ -62,28 +62,34 @@ matrix:
fast_finish: true
# Additional check combinations
include:
# PHP7.1, mariadb 10.1
- php: '7.1'
env: DB=mariadb MARIADB_VERSION=10.1 CODECOV=1
# PHP7.2, mariadb 10.2
- php: '7.2'
env: DB=mariadb MARIADB_VERSION=10.2 CODECOV=1
# use mariadb instead of MySQL
addons:
mariadb: '10.1'
# PHP7.1, PostgreSQL 9.6
- php: '7.1'
mariadb: '10.2'
# PHP7.2, PostgreSQL 9.6
- php: '7.2'
env: DB=pgsql POSTGRESQL_VERSION=9.6 PHPUNITFILE=phpunit-pgsql.xml
# Use newer postgres than 9.2 default
addons:
postgresql: '9.6'
services:
- postgresql
# PHP7.1, old precise distribution with MySQL 5.5
- php: '7.1'
# PostgreSQL 10 with Docker container
- php: '7.2'
env: DB=pgsql POSTGRESQL_VERSION=10 PHPUNITFILE=phpunit-pgsql.xml
sudo: required
services:
- docker
# PHP7.2, old precise distribution with MySQL 5.5
- php: '7.2'
env: DB=mysql MYSQL_VERSION=5.5
dist: precise
services:
- mysql
# MySQL 5.7 with Docker container
- php: '7.1'
- php: '7.2'
env: DB=mysql MYSQL_VERSION=5.7
sudo: required
services:
@@ -109,6 +115,8 @@ before_install:
- travis_retry composer self-update
# Start MySQL 5.7 Docker container, needs some time to come up
- if [[ "$MYSQL_VERSION" == "5.7" ]]; then sudo service mysql stop; docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:5.7 && sleep 25 && docker ps; fi
# Start PostgreSQL 10 Docker container, needs some time to come up
- if [[ "$POSTGRESQL_VERSION" == "10" ]]; then sudo service postgresql stop; docker run -d -p 5432:5432 postgres:10-alpine && sleep 35 && docker ps; fi
# Install composer dev libs
install:

777
CHANGELOG
View File

@@ -1,3 +1,780 @@
Hubzilla 4.2 (2019-06-04)
- Introduce Calendar app which deprecates Events and CalDAV apps and streamlines the featuresets
- Update mod cal to reflect changes in the calendar app
- Improve timezone detection for CalDAV calendars
- Add mention support to event description in channel calendar
- Update jgrowl library
- Do not try to oembed URLs without embed tags
- Optimise pdf oembed processing
- Add form security token to mod register
- Replace URLs for mod gallery, mod photos and mod photo on cloned channel post sync
- Update justified gallery library
- Update bootstrap libraries
- Use "cache" flag for bbcode() on content destined for zot6
- Improve DB indexing
- Drop deprecated columns from channel the table
- Replace own image URL in clonned channel posts
- Improve DB update handling
- Improve item deletion when a contact was removed
- Zot6 compatibility for emoji reactions
- Add threaded comments support (disabled by default)
- Improve xmlify()/unxmlify() performance
- Update blueimp/jquery-file-uplad library
- Update sabre/vobject library
- Various doco updates
- Implement remove profile photo button (reset to default photo)
- Implement remove cover photo button
- Update the homeinstall script
- Add command line tool for photo thumbnails storage conversion
- Implement option to store photo thumbnails in filesystem instead of DB
Bugfixes
- Fix category widget when using articles
- Fix live update not triggering in mod search
- Fix encoded URLs in code blocks
- Fix wiki headers not escaped
- Fix possible xchan protocol confusion in new_contact()
- Fix xchan_url not displayed if xchan_addr not available
- Fix suggestion ordering in mod directory
- Fix event attachment delivery to zot6
Addons
- pubcrawl: improve friendica compatibility by adding the nonstandard diaspora:guid field
- pubcrawl: initial suport for events
- pubcrawl: improve permalink detection
- flashcards: fix moving learn buttons if viewport sizes changes
- flashcards: Move card details to the bottom of a card
- upgrade_info: provide links to changelog
- photocache: do not save filename for cached photos
- pubcrawl: save local comment activitypub payload in iconfig to be used for relay
- flashcards: UI improvements in box settings
- pubcrawl: implement profile update messages
- pubcrawl: use URI instead of object for actor
- flashcards: fix jumping sync button
- pubcrawl: add threaded comments support
- pubcrawl: ignore target encoding errors
- pubcrawl: format photo items for activitypub
Hubzilla 4.0.3 (2019-04-26)
- Add attachments to zot6 event objects
- Add zot6 to federated transports
- Update import/export to handle zot6 hublocs and xchans
- Update fix_system_urls() to handle zot6 hublocs
- Fix infinite loop using postgres as backend
- Fix magic auth in combination with zot6
- Fix check for required PHP version
- Diaspora: favour diaspora protocol identities over others with same hubloc or xchan address
Hubzilla 4.0.2 (2019-04-08)
- Port cdav calendar to fullcalendar version 4
- Fix perms_pending not evaluated correctly
- Fix return wrong profile photo modification date by plugin
- Fix suggestion widget using feature_enabled still
- Fix check service class limits when syncing files
- Remove xchan_instance_url from notifier query - it is not used anymore
- Implement remove cover photo functionality
- Fix z6_discover() and create a zot6 hubloc on import if applicable
- Add backend support for connections ordering
- Deduplicate items in item_store() by uuid if we got one otherwise by mid
- Add ITEM_TYPE_CUSTOM support to mod display
- Fix mod subthread on sys channel items
- Fix "recipient not found" dreport spaming with own xchan
- Fix wrong variables in dirsearch
- Fix 48 hours timeframe check in mod changeaddr
- Fix wrong variable in Libsync
- Pubcrawl: revert adding additional receivers to comments
- Diaspora: fix intro received when being banned
- Pubcrawl: add diaspora:guid from friendica AP posts for deduplication
- Diaspora: fix friendica plink
- Photocache: fix issue with spaces and quotes in original filenames
Hubzilla 4.0.1 (2019-03-21)
- Fix permissions not getting decrypted on follow
- Add option to add a poster to the video bbcode
- Fix SQL performance issue with queries including thr_parent
- Fix share encoding issue between hz and zap
- Fix edge case in unsupported advisory privacy
- Messagefilter enhancements
- Fix XSS issues
- Clone systems apps to the extent possible
- Auto-configure imagick thumbnail binary during setup if possible
- Fix array not unserialized in util/service_class
- Add phpmd and phpcs to composer require-dev for code linting
- Fix issue with email encoding
- Fix signature issue for zot6 content imported from zotfeeds to hubzilla
- Find unregistered z6 clones on hubzilla sites
- Add zot6 to clonable networks
- Add owner permission checks to AS item fetch
- Perform zot6 discovery in import_author_xchan
- Fix authenticated fetches
- Port zot_record_preferred() from zap
Addons:
- Pubcrawl: deliver comments to abook contacts and thread participants
- Pubcrawl: fix can_comment_on_post()
- Deliverynotice: do not save empty postopts
- Gravatar: fix URL and use z_fetch_url()
- Pubcrawl: improve SQL queries in pubcrawl_item_mod_init()
- Pubcrawl: fix authenticated item fetch
Hubzilla 4.0 (2019-03-08)
- Add CURLOPT_CONNECTTIMEOUT option
- Allow parameters as final path argument in API router
- Remove clones from delivery recipients for top-level posts in favor of clone sync
- Mention php-zip module dependency in administrator guide
- Iron out some kinks with scrollToItem() in combination with collapsed content and images
- Zot API changes to support combined content (items+files) import addon
- Update PHP Version check during setup - min version is now 7.1
- Urlencode links in category widget
- Implement ability for channel visitors to be able to delete their own content
- Support zot location independent urls
- MySQL 8 admin summary compatibility
- Improved gitlab-ci environment
- Deprecate and remove addon settings in favour of per app settings
- Refactor PhotoDriver class and add tests
- Convert affinity tool to app
- Refactor linkify_tags() so it works with xchans across multiple protocols
- Add the actual mid to viewsrc for debuging reasons
- Add filter hooks and the ability to add buttons to the default status editor
- Prevent Hubzilla usage for SEO backlinks
- Implement privacy warning for forum posts via !-tag
- Set document title when title changes on a page update
- Cache embeds in the background on initial storage rather than on first access
- Custom sessionhandler support
- Update nginx and lighttpd sample server configs to explicit disallow access to util
- Introduce command line tool for managing site admins
- Various doxygen improvements
- Add privacygroup_extras_post/drop hooks
- Add collect_public_recipients hook
- Prevent memory exhaustion on zot message pickup with large message queue
- Remove experimental worker queue from core
- Add get_base_apps hook
- Improve handling of notification updates while commenting
- Add warning if upload_filesize < 4MB
- Add ITEM_TYPE_CUSTOM and hooks for processing custom item types
- Set min/maxversion for plugins to STD_VERSION unless otherwise specified
- Add option to make affinity slider 'sticky' across page loads
- Add photo_view_filter hook
- Reset page title if article has no title
- Implement the zot6 protocol
- Add PHOTO_CACHE photo type
- Basic support for HTTP3
- Add native summary support
- Disable image caching if personal or group permissions enabled
Bugfixes
- Fix guest access token xchan record not created on URL login
- Fix regression where mod oep was still using hex2bin/bin2hex instead of album hash
- Fix regression when selecting multiple images in embed images
- Fix broken sync_an_item()
- Fix page jumping on like if comments are expanded (show all x comments)
- Fix regression in mod display where an page update could display items from multiple channels
- Fix starring and filing allowed for other unsupported item types
- Fix wrong variable in z_get_temp_dir()
- Fix page jumping when liking a collapsed/expanded post
- Fix tags detection in URL
- Fix warnings in mod embedphotos
- Fix wrong variable in can_comment_on_post()
- Fix mod new_channel counting removed channels
- Fix regression where not all content variables were sslified
- Fix default values for affinity tool and other information which could be lost when approving a connection
- Fix regression in linkdropper()
- Fix issue with unset auto_save_draft variable which resultet in a javascript error
- Fix home notifications won't expand if there are more than 300 unseen network notifications ahead of them
- Fix total_identities count
- Fix delayed items propagate before publication on cloned channels
Addons
- twitter_api: fedilab needs profile_image_url_https
- New addon: content_import - imports items and files to cloned channels (this obsoletes hzfiles)
- Diaspora: prevent processing of incomplete messages in various places
- hzfiles: fix add missing load/unload functions
- chess: do not look for games if we have no game_id - improves initial pageload performance
- chess: convert to app
- channelreputation: convert to app
- irc: convert to per app
- Provide the addon_common directory for common addon libraries
- fuzzloc: convert to app
- flattrwidget: convert to app
- jappixmini: convert to app
- xmpp: convert to app
- visage: convert to app
- diaspora: reflect linkify_tags() rewrite
- twitter: convert to app
- smileybutton: convert to app
- skeleton: convert to app
- planets: convert to app
- pumpio: convert to app
- pageheader: convert to app
- nsabait: convert to app
- dwpost: convert to app
- diaspora: set the preserve_lf option in various places
- diaspora: fix comments from unknown persons are not accpted
- nofed: convert to app
- ljpost: convert to app
- diaspora: call update_queue_item() if delivery failed
- pubcrawl: call update_queue_item() if delivery failed
- libertree: convert to app
- New addon: queueworker advanced - queue handling (experimental)
- gallery: extended functionality: implements stream image viewer, converts images at the beginning of a post to a gallery
- authchoose: correction to query, add affinity setting
- New addon: photocache - local caching for public photos
- New addon: totp - two factor authentication using time-based one-time passwords
Hubzilla 3.8.9 (2018-02-03)
- Fix typos in mod oep
- Fix page jumping when liking collapsed/expanded post
- Fix failure to import mail in mod import
- Fix wrong channel count in mod new_channel
- Fix diaspora addon regression
- Remove deprecated diaspora addon endpoint
- Fix wrong function call in gallery addon
Hubzilla 3.8.8 (2018-12-22)
- Fix issue with linkinfo
- Fix cURL with HTTP/2
- Remove scale_external_images()
- Style highlight bbcode via css
- Make mod channel deal with b64 encoded mid's
- Fix email retrieval in OAuth2Storage
- Add reinstall option to util/addons
- Remove deprecated caching protection from mod photo
- Add missing check for observer in mod like
- Articles: default to logged in channel if channel name is not passed
- Wiki: fix preview issue with hyperlinks
- Cart: backport fixes from osada
- Gallery: provide file extensions for better compatibility
- Hsse: fix issue when linkinfo data was inserted
- Diaspora: remove deprecated scale_external_images()
Hubzilla 3.8.7 (2018-12-14)
- Fix issue with linkdropper in comment area
- Fix regression wit app ordering
- Fix return if readImnageBlob() throws an exception
- Introduce photo_view_filter hook
- Fix home notifications not expanding in certain situations
- Fix for dark schema
- Fix total identities restriction
- Fix article page title not updating if article has no title
- Gallery: the gallery app will now act as the full-size photo viewer in /photos if installed
Hubzilla 3.8.6 (2018-12-03)
- Prevent incompatible export files (osada/zap) from being imported
- Catch exception if readImageBlob() receives bogus data
- Streamline PDF previews
- Allow notification filtering by name or address
- Fix too restrictive attached photo permissions
- Update ES translation
- Use flex for the default template
- Do not store serialized pconfig value received via to Module/Pconfig.php
- Update jquery-file-upload lib and move to composer
- Update imagesloaded lib and move to composer
- Fix activitypub tag notifications
- Fix call to undefined function in PConfig
- Fix typo which prevented propagation of comments to zot6 (dev)
- Activitypub: add support for pterotype (wordpress plugin)
- Openstreetmap: check validity of lat+lon before rendering a map
Hubzilla 3.8.5 (2018-11-19)
- Fix pconfig for new installs
- Fix delayed publication of posts in combination with channel clones
- Fix issue where photo filesize was not updated in the DB when a photo was edited
- Fix issue where the original photo size was not set correct in the DB
- Fix delivery issue in zot_fetch()
- Fix typo in channel reputation addon
Hubzilla 3.8.4 (2018-11-14)
- Fix xss issue (thanks to Eduardo)
- Implement hook in enotify to be used by superblock
- Various css fixes
- Improve photo cache handling
- Provide a function hz_syslog() to log to syslog
- Fix request_target in z_post_url()
- Fix plural handling for various languages
- Some preparatory work for zot6
- Fix warning in gallery addon
- Fix date issue on xchan photo update in diaspora and pubcrawl addons
- Fix typos in startpage addon
- Improve activitypub addressing
- Fix taxonomy in activitypub direct messages
- Fix syntax error in diaspora addon
- New e-learning addon flashcards
- Remove DNS check for database connection during installation
- Implement timestamps for pconfig
Hubzilla 3.8.3 (2018-11-05)
- Do not count likes in forum notifications if likes notifications are disabled
- Fix typo in spanish translation which broke javascript
- Improve linkinfo charset handling and image detection
- Fix wrong image resize for some external images
- Move blueimp upload lib to composer and update to version 9.25
- Remove primary/clone counts from admin summary until we have a mechanism to update the fixed counts
- Fix html2markdown() and re-enable previously failing tests
- Improve look of oembed content for Hubzilla links
- Fix forum notifications count not correct
- Fix gallery addon which broke mod apps in some situations
- Fix wiki_list widget not working on every page respectively level
Hubzilla 3.8.2 (2018-10-29)
- Merge unmerged changes from dev into master
- Fix issues with forum handling in mod network and ping
- Fix delivery chain linkage messed up if original post was edited
- Fix issues with the experimental queue worker
- Fix call to image source {1} from html template
- Group stream filters by threaded and unthreaded default view
- Show only unseen forum messages when clicking on forum notification
- Improve editor contact autocomplete performance
- Convert non UTF-8 content on link embeding
- Make textcomplete return up to 100 items
- Look for for matches in the entire string when suggesting emojis
- Add [summary] bbcode to autocomplete list
- Update blueimp_upload to version 9.23
- Update spanish strings
Addons
- Cart: don't allow items to be added unless user is logged into the Grid.
- Pubcrawl: simplify asencode_activity() addressing to reflect upcoming changes in mastodon 2.6
- Rendezvous: Update rendezvous_group.tpl to fix broken Bootstrap library reference
Hubzilla 3.8.1 (2018-10-21)
- Fix issue with too long navbar banners
- Fix menu item edit link
- Fix issue with jquery file upload
Hubzilla 3.8 (2018-10-19)
- Re-implement basic build test via gitlab-ci
- Rework wiki encoding/decoding
- Implement improved worker (experimental - off by default)
- Rework hubzilla settings infrastructure
- Port the features to stand-alone apps
- Add app_destroy hook
- Improve mod network search
- Extend app_install() to allow installing by app name
- Remove tech levels
- Hide channel creation form when at or over service_class['limit_identities']
- Rename groups and group_members tables for MySQL 8 compatibility
- Improve checks for image magick and pdo at setup
- Allow a second url in apd files for settings
- Add contact autocomplete to mod photo comments
- Add hook to allow addons to filter the list returned by app_list
- Do not sync channel moved field
- Add attach_delete hook
- Catch errors in template rendering
- Provide a noscript_content switch for mod channel and display
- Install and update bootstrap via composer
- Improve cover-photo handling
- Improve notification handling on small screens
- Detect and automatically repair duplicate plugin hook scenarios
- Add dreport_process hook
- Redirect stdout/stderr on cron command
- Update composer libs and add ramsey/uuid
- Add hook to extend conv_item cog dropdown menu
- Trigger the query options off of the active module rather than passed parameters in first_post_date()
- Tweak archive widget for articles
- Add api_not_found hook
- Ignore deleted hublocs in zot finger
- Don't use "checkjs" with an associated page reload - wrap a static copy of the content in noscript tags instead
- Add possibility to override helpfiles
- Add support for overriding the default template location and individual templates via .htconfig.php
- Add table support to markdown
- Make channel_remove less memory hungry
- Prevent json-ld bombing
- Turn off browser autocomplete on channel sources creation
- Add alter_pdl hook
- Add ability for addons to create .pdl files and load them automatically
- Sanitise vcard fields
- Don't sync system apps
Bugfixes
- Fix issue with timeago plurals
- Fix issue with HTTP signatures
- Fix issues with channel import
- Fix double linebreaks in viewsrc output
- Fix jsonld signature issue (library is using sha1, spec requires sha256)
- Fix bookmarks not syncing between clones
- Fix combined view getting lost when deleting first message in pm thread
- Fix authors unable to comment on posts they authored when owned by others in certain circumstances
- Fix syschannel included in total channels count
- Fix html-to-markdown adds a backslash infront of a hash after each new line
- Fix profile likes dropdown
- Fix tags corruption when editing posts
- Fix duplicate info() messages
- Fix zid leaking to nonzot sites if markdown is enabled
- Fix app delete issue with base installed apps and app photo being reloaded uneccessarily
- Fix app update and ownership issues
Addons
- Upgrade Info: new addon to inform channel owners about system upgrades
- Superblock: fix issue with not removeable channels
- Cart: fix subscription table not created on install
- Hsse: new addon - a WYSIWYG editor for certain modules
- Rainbowtag: convert to app infrastructure
- Superblock: convert to app infrastructure
- Send ZID: convert to app infrastructure
- Adultphotoflag: move setting to mod photos
- GNU-Social: convert to app infrastructure
- Pubcrawl: convert to app infrastructure
- Startpage: convert to app infrastructure
- Wppost: convert to app infrastructure
- Diaspora: convert to app infrastructure
- Mdpost: move setting to editor settings
- Cart: convert to app infrastructure
- Cart: reflect renaming of groups table
- Authchoose: convert to app infrastructure
- Channelreputation: new addon - reputation system for community channels (forums, etc.)
- Diaspora: fix commenting on diaspora reshares
- Gallery: convert to app infrastructure
- Nsfw: convert to app infrastructure
- Diaspora: change top level retraction type from StatusMessage to Post
- Delivery Notice: new addon - display delivery status information at the top of items
- Diaspora: exclude xchan_networks rss, anon and unknown from the query to make the results more reliable
- Diaspora: provide xchan_url if we have no xchan_addr for mentions
- Diaspora: fix x-social-relay tags converted to associative array
- Twitter API: improvements for the twidere client
- Pubcrawl: partial support for inbound AP events
- Pubcrawl: add support for image objects
- Gallery: provide a way to direct link to a photo album gallery
- Pubcrawl: improve can_comment_on_post handler
- Pubcrawl: implement pleroma quirks regarding follow activities
- Cart: add ability to create catalog entries for physical and/or manually fulfilled items
- Cart: add subscriptions submodule
Hubzilla 3.6 (2018-07-25)
- Update jquery.timeago library
- Implement Hookable CSP
- ActivityStreams: accept header changes to support plume
- Streamline inconsistencies in addon naming
- SECURITY: hash the session_id in logs
- Update justified gallery library
- Hide channel in /cloud root if channel is hidden in directory
- Add resend option to channel sources tp discard original author.
- Provide flag to exclude privacy groups for federation plugin use in collect_recipients()
- Upgrading from redmatrix is no longer supported
- Deal with htmlentity encoding during authentication workflow
- Rework mod group
- Make droping posts of removed connections more memory efficient
- Refactor getOutainfo() for DAV storage
- Optionally report total available space when uploading
- SECURITY: provide option to disable the cloud 'root' directory and make the cloud module require a target channel nickname
- Add plink and llink to viewsource
- Add new 'filter by name' feature
- Remove network tabs
- New activity filter widget
- New activity order widget
- Make menus editable by visitors with webpage write permissions
- Move forum notifications to notifications
- Move manage privacy groups to the panel channel menu
- Don't remove items that are starred, filed, or that you replied to when removing a connection
- Don't deliver local items more than once
- Make navbar search use the module search function in /network and /channel
- Paint the locks on private activitypub items red. Their privacy model is "slightly" different from hubzillas
- Improve new channel creation workflow
- Add hook 'get_system_apps'
- Implement reset button for jot
- Adjust accept header to make pleroma happy
- Provide a general purpose GDPR document
- Provide function to fetch photo contents from url
- Make get_default_profile_photo() pluggable
- Refactor tags/mentions
- Refactor autocomplete mechanism
- Display pubsites link in info area if invite only
- Add cancel button to editor
- Implement MessageFilter for pubstream and sourced messages
- Add supported protocols to siteinfo
- Allow pdf embeds
- Allow uninstall of plugins which no longer exists via cmdline tool
- Improve the homeinstall script
- Provide easy access to the autoperms setting for forum and repository channels
- Implement admin delete of files, photos and posts
- Allow a different username to be used when importing a channel
- Provide warnings about profile photo and cover photo permissions
- Set the 'force' flag on attach_mkdir when initiated from a DAV operation
Bugfixes
- Fix double file uploads when dropping files into jot
- Fix jot collapsing when drag and drop to open jot
- Fix wrong album name when moving photos
- Fix wrong timestamp localization before first update in mod mail
- Fix post exiration not propagated to other networks (which support it)
- Fix sys channels visible in dirsearch
- Fix remote_self not working correctly
- Fix photos not syncing properly if destination is a postgres site
- Fix wrong hubloc_url for activitypub hublocs
- Fix z_check_dns() for BSD
- Fix not null violation in oauth1
- Fix DB issues with oauth2 on postgresql
- Fix 'anybody authenticated' not correctly handled in can_comment_on_post()
- Fix postgres issue if register mode is set to yes - with approval
- Fix tag search not finding articles
- Fix issue with mentions when markdown post addon is enabled
- Fix duplicate addressbook entries on repeated channel imports
Addons
- Cart: various display improvements
- Cart: make cart work with postgresql DB backend
- Cart: add new hzservice for service_classes
- Cart: add storewide currency settings
- Cart: provide channel app 'Shop' for cart addon
- Cart: implement order updating
- Cart: use CSP hook for paypals checkout.js
- Cart: provide a cancel mechanism for orders
- Cart: add paypal button
- Gallery: new addon to display photo albums with the photoswipe library
- Ldapauth: optionally auto create channel
- Pubcrawl: new setting to ignore ActivityPub recipients in privacy groups
- Diaspora: fix issue with displaying multiple photos
- Pubcrawl: provide plink
- Pubcrawl: hubloc_url should be baseurl, not actor url
- Pubcrawl: deliver restricted posts from hubzilla as direct messages (there is no other way to address only a subset of followers in mastodon)
- Pubcrawl: address comments to a restricted mastodon post to /followers
Hubzilla 3.4.2 (2018-07-19)
- Compatibility fix for future versions
Hubzilla 3.4.1 (2018-06-08)
- Say bye, bye to GitHub and move sourcecode repositories to #^https://framagit.org/hubzilla
- When removing a connection, don't remove items that are starred, filed or replied to
- Do not show archived forums in forum widget
- Fix potential XSS vulnerabilities
- Translation updates
- Fix postresql issue with oauth2
- Improve abconfig queries
- Fix postgresql issue if register mode was set to yes - with approval
Addons
- Diaspora: fix likes of non-contacts not allowed to like allthough diaspora_public_comments is set
- Pubcrawl: fix wrong hubloc url
- Pubcrawl: fix issues with attachments
- Pubcrawl: fetch required item metadata in asfetch_item()
- Cavatar: use cavatar for all default profile photos if enabled
- Pubcrawl: fix peertube video display
- Pubcrawl: fix incoming activitypub comments not getting propagated downstream
- Statistics: fix .well-known/nodeinfo
- Pubsubhubbub: fix postgresql related issues
- Pubcrawl: send the original LD-signature signed activity when distributing comments downstream if we have it
- Cavatar: improve the image creation process
Hubzilla 3.4 (2018-05-04)
- Provide warnings about profile photo and cover photo permissions
- Don't duplicate addressbook entries on repeated channel imports
- Where possible strip zid parameter from links that get pasted into posts so that they will get a correct zid when rendered
- Rename boxy schema to Focus-Boxy
- Rename BS-Default schema to Focus-Light
- Mark simple_* schemas unmaintained and deprecated - they will be removed in next release if nobody steps up to maintain them.
- Implement trending tags for mod pubstream
- Relax restrictions to the design tools menu to allow those with write_pages permission
- Add alt pager to mod moderate
- Show existing cover photo when changing it
- Update to bootstrap lib to version 4.1
- Provide a higher accuracy method for active channels information
- Provide visible star status for starred posts
- Move the thread author menu to the wall item photo
- Accept system_language through either get or post
- Remove recipient name from stored notifications but keep them in emails
- Fix issue of being forced to log back in after leaving a delegated channel
- Implement last commented expiration setting in mod admin
- Create catcloud widget and provide a type option which can include 'cards' or 'articles'
- Modified notifications widget to add the public stream when the current user is allowed to see it only
- Don't provide a connect button for transient identities
- Merge techlevels and features
- Implement auto-save posts and comments in browser using localStorage
- Display directory server in siteinfo.json
- Bring back the dnt policy document
- Implement OAuth2/OpenIDConnect server
- Add basic structure for additional features documentation
- Community tag refactor
- Obscurify chats
- Provide a way to share wiki pages
- Update folder timestamp on uploaded files
- Code optimisations and de-duplication on updating parent commented timestamp
- Turn newmember widget into a feature
- Make list mode work in cards and articles
- Make alt pager work for articles and cards
- Initial support for alternative sort orders on the cloud pages
- Add Ochannel module for testing OStatus bad behaviour
- Add the social - federation permission role
- Update justified gallery lib from 3.6.3 to 3.6.5
Bugfixes
- Fix regression with forum widget unseen count
- Fix issue with imagemagick exif info
- Aonymous comments in StdLimits shouldn't be allowed
- Fix wiki pages not syncing
- Show "Unseen public activity" channel setting when site only public streams are activated
- Fix channel import failing to provide channel_password value
- Fix permalinks to children of articles and cards
- Fix missing year on profile birthday input
- Fix missing login/out buttons for medium screensize
- Preserve existing categories when updating an app from an embed source
- Fix app sellpage not being stored
- Fix tagadelic being overly protective of permissions
- Fix comments not displayed in single card/article view
- Fix anonymous comments bump thread
- Fix pending registrations visible in admin accounts
Addons
Pubcrawl: fix issues with "private" messages
Pubcrawl: fix issues with postgresql
Fuzzloc: new addon to blur your browser location
Pubcrawl: implement follow by webfinger
Cart: new addon which provides online shop functionalities (experimental)
Pubcrawl: implement two-way summary functionality
Wordpress: upgrade incutio xmlrpc library to use hubzilla curl wrapper
Hzfiles: various fixes
Diaspora: support full_name attribute in profile messages
Frphotos: deprecate plugin (keep it for reference)
Webmention: require html5 parser
GNU-Social: provide alternative xchan_url
Diaspora: fix wrong callback function
Diaspora: fix conversion of forum mentions to markdown by providing a !{forum@host} link syntax
Diaspora: fix item title not transferred
Hubzilla 3.2 (2018-03-09)
- Improve rendering of Readme files in plugin settings
- Add pdl file for mod moderate
- Update redbasic theme screenshot
- Restrict mail messages to max_import_size
- Add pdl file for mod thing
- Add federation property to webfinger
- Provide new member widget which sits beneath the notifications for the first 60 days after an account creation
- Rename Addon/Feature settings to Addon Settings
- Move privacy groups to the newly created Access Control and Permissions tab
- Move oauth_client management and guest access tokens to features rather than auto-enabling at various feature levels
- Change undo_post_tagging() to emit quoted tags rather than using underscore replacement if they contain spaces
- Require directory servers to be using some modern form of encryption
- Change icon set from font-awesome to fork-awesome
- Provide opt-out link and text with notification emails
- Alter image selection widget to accept/submit on choose (github issue #979)
- If hide_in_statistics is set, only include the total channels count and no other statistical info in siteinfo.json
- Mark connections where we do not have post_comments permissions with an no entry sign
- Click your own profile photo to change it if loged in
- Remove street address info from the default basic profile fields
- Handle error logging in on cloud page (post method not implemented)
- Cloud 'view-as-tiles' toggle wasn't available for guests and they are the most likely to prefer that view
- Provide DB compatibility for poll and voting implementations across several platforms
- Remove the unused ZotDriver and ProtoDriver classes
- Move dreport from zot to lib
- Move Zotlabs\Zot\Verify to Zotlabs\Lib\Verify as part of the zot6 re-org
- Add event resource_id to iconfig so Diaspora can search on it without looking inside JSON objects
- Trim non-existent/deprecated plugins from siteinfo plugin list
- Add 'Validate' button to new_channel page
- Do not show summary if it is equal to body
- Update code tag styling so bbcode [code] blocks and wiki markdown inline code render nicely
- Crypto improvements (use pkcs1_oaep_padding instead of the older pkcs1_padding)
- Refactor OAuth2Server a bit
- Refactor of the DB update system
- Extend the oauth2 storage driver so that we can use our own channel table
- Provide option to block the public stream unless authenticated
- Refactor shares and urn shares into activities
- Show likes and dislikes in notices if always_show_in_notices is set
- Add hidden config to disallow anonymous comments (github issue #972)
- Add flexibility to prefix/suffix string translations for jquery.timeago
- Make post titles searchable (github issue #975)
- Implement zot6 delivery
- Remove mobile_detect library
- Separate the parsing of author information from the parsing of item/activity information in feedutils
- Provide summaries in feeds under very limited cases
- Redirect to the email_validation page if login was attempted after account creation but prior to successful verification
- Iprove workflow for form based email validation when auto_channel_create is in effect
- Provide a default video image if nothing else is available
- Surface the ability to change the landing page after channel creation
- Create the 'go' module to present several possible things to do after channel creation
- Add unit test for dba_pdo driver class
- Add unit test for \DBA factory
- Usability improvements to registration/verification workflow
- Don't do any bbcode translation within code blocks (except baseurl, observer, and linefeeds)
- Improve browser language detection
- Remove unused prototype importer template and obsolete reflection cms importer
- Update to bootstrap 4 stable
- Implement caching of notifications in browser session storage
- Code cleanup and simplification in mod_like
- Implement new cropper library
- Better notifications for edit post/comments which may have been originally posted long ago
- Ensure filter words are not empty in include/items.php
- Change query in mod search to be compatible with postgres
- Provide channel list function in the zot api
- Remove deprecated 'qcomment' feature
- Simplify webserver logic flow
- Simplify interactions with the get_features hook
- Provide a local pubstream option (content from this site only)
- Simplify dir_tagadelic dramatically
- Surface the article feature
- Add summary bbcode tag
- Move markdown-in-posts/comments feature to plugin
- Support tables in markdown posts/comments
Bugfixes
- Fix javascript error if there are no notifications
- Fix some issues with friend suggestions on standalone sites with no 'suggestme' volunteers
- Fix unable to reset profile fields to defaults in admin/profs by emptying the textarea
⁻ Fix issues with accordions related to bootstrap upgrade
- Fix empty dob is set to the date of the first profile save
- Fix several email validation issues
- Fix issue if logged in locally and mod_display returns nothing owned by your uid; retry with known public uids rather than issue 'permission denied'
- Fix public stream app permission check to match the recent fixes to the Module
- Fix issues with delivery of edited posts to forums
- Fix autoname test
- Fix issue where self and pending connections were visible in connections when not loged in
- Fix bad query in mod defperms
- Fix issue where gnusocial likes were not recognised as like activity
- Fix manual queue invocation
- Fix unable to delete accounts using tickboxes on admin/accounts
- Fix a PHP7.2 warning when a channel has no cards
- Fix unable to delete permission groups with space in name (github issue #920)
Addons
Statistic: fix reporting of incorrect register policy in nodeinfo
Diaspora: diaspora_init_relay: calls diaspora_import_author with too many arguments
Pubcrawl: provide a system 'allowed' for to match the system setting for other protocols
Diaspora: fix issue with sending diaspora profile change messages over diaspora_v2
Diaspora: provide limited but hopefully adequate support for new Diaspora html5 audio/video
Pubcrawl: send zot context with follow requests
Pubcrawl: add video to the set of message types we process
Pubcrawl: support for activitypub media
Openclipatar: remove extra details for each image
Diaspora: initial work on event participation
Statistic: remove the friendica protocol from nodeinfo until it is fully implemented
Statistic: re-arrange the order of the .host-meta/nodeinfo links
Pubcrawl: add share verb to activitystreams translator
Pubcrawl: post public posts to syschannel
Statistics: fix legacy statistics.json interface
Gnusocial: improve error checking when processing a salmon message
Dirstats: fix sql syntax error
Pubcrawl: possibly reduce constraint violations for xchan_store_lowlevel (duplicate entry)
Diaspora: ensure we process Friendica-over-Diaspora yearless birthdays correctly
Chess: added simple history browsing controls to spectator view
Diaspora: support post/comment edits
Diaspora: don't redirect fetch requests for non-Diaspora wall-to-wall and forum posts unless they can be redirected to a Diaspora protocol site
Chess: added support for publicly visible games
Phpmailer: add quickstart notes
Chess: choose random color if no color is chosen
New Plugin: mdpost - markdown in posts/comments, migrated from core to addon
Diaspora: provide a configuration option to import the diaspora firehose, otherwise only import content matching subscribed tags
NSFW: load images only after click on the button
Twitter: provide configurable tweet length until such time as 280 becomes universal
Hubzilla 3.0 (2018-01-09)
- Updated homeinstall script
- Sort cloud directory by 1. is_dir and 2. name

View File

@@ -1,4 +1,4 @@
Copyright (c) 2010-2017 the Hubzilla Community
Copyright (c) 2010-2018 the Hubzilla Community
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@@ -3,18 +3,18 @@
Hubzilla - Community Server
===========================
<p align="center" markdown="1">
<em><a href="https://github.com/redmatrix/hubzilla/blob/master/install/INSTALL.txt">Installing Hubzilla</a></em>
</p>
<p align="center" markdown="1">
<em><a href="https://framagit.org/hubzilla/core/blob/master/install/INSTALL.txt">Installing Hubzilla</a></em>
</p>
**What is Hubzilla?**
Hubzilla is a general purpose communication server integrated with a web publishing system and a decentralised permission system. If this sounds like a bunch of technical mumbo-jumbo to you, just think of it as an independent platform for sharing stuff online.
Hubzilla is a general purpose communication server integrated with a web publishing system and a decentralised permission system. If this sounds like a bunch of technical mumbo-jumbo to you, just think of it as an independent platform for sharing stuff online (publicly or privately).
Hubzilla contains some social network bits, some cloud storage bits, some blog and forum bits, and some content management bits. These are all integrated within a common privacy framework - and it is all decentralised.
Everything you publish or share can be restricted to those channels and people you wish to share them with; and these permissions work completely invisibly - even with channels on different servers or other communications services.
Everything you publish or share can be restricted to those channels and people you wish to share them with; and these permissions work completely invisibly - **even with channels on different servers or other communications services**.
Migration and live backups of your connections, settings, and everything you publish are built-in, so you never need worry about server failure.
@@ -25,5 +25,8 @@ Hubzilla is completely decentralised and open source, for you modify or adapt to
The Hubzilla community consists of passionate volunteers creating an open source commons of decentralised services which are highly integrated and can rival the feature set of large centralised providers. We do our best to provide ethical software which places you in control of your online communications and privacy expectations.
Build status master branch:
[![Build Status Master](https://framagit.org/hubzilla/core/badges/master/build.svg)](https://framagit.org/hubzilla/core/badges/master/build.svg)
[![Build Status](https://travis-ci.org/redmatrix/hubzilla.svg)](https://travis-ci.org/redmatrix/hubzilla)
Build status dev branch:
[![Build Status Dev](https://framagit.org/hubzilla/core/badges/dev/build.svg)](https://framagit.org/hubzilla/core/badges/dev/build.svg)

View File

@@ -3,10 +3,14 @@
namespace Zotlabs\Access;
/**
* @brief AccessList class.
* @brief AccessList class which represents individual content ACLs.
*
* A class to hold an AccessList object with allowed and denied contacts and
* groups.
*
* After evaluating @ref ::Zotlabs::Access::PermissionLimits "PermissionLimits"
* and @ref ::Zotlabs::Lib::Permcat "Permcat"s individual content ACLs are evaluated.
* These answer the question "Can Joe view *this* album/photo?".
*/
class AccessList {
/**
@@ -103,7 +107,7 @@ class AccessList {
* @brief Return an array consisting of the current access list components
* where the elements are directly storable.
*
* @return Associative array with:
* @return array An associative array with:
* * \e string \b allow_cid => string of allowed cids
* * \e string \b allow_gid => string of allowed gids
* * \e string \b deny_cid => string of denied cids

View File

@@ -2,35 +2,90 @@
namespace Zotlabs\Access;
use \Zotlabs\Lib as ZLib;
use Zotlabs\Lib\PConfig;
/**
* @brief Permission limits.
*
* Permission limits are a very high level permission setting. They are hard
* limits by design.
* "Who can view my photos (at all)?"
* "Who can post photos in my albums (at all)?"
*
* For viewing permissions we generally set these to 'anybody' and for write
* permissions we generally set them to 'those I allow', though many people
* restrict the viewing permissions further for things like 'Can view my connections'.
*
* People get confused enough by permissions that we wanted a place to set their
* privacy expectations once and be done with it.
*
* Connection related permissions like "Can Joe view my photos?" are handled by
* @ref ::Zotlabs::Lib::Permcat "Permcat" and inherit from the channel's Permission
* limits.
*
* @see Permissions
*/
class PermissionLimits {
/**
* @brief Get standard permission limits.
*
* Viewing permissions and post_comments permission are set to 'anybody',
* other permissions are set to 'those I allow'.
*
* The list of permissions comes from Permissions::Perms().
*
* @return array
*/
static public function Std_Limits() {
$limits = [];
$perms = Permissions::Perms();
$limits = array();
foreach($perms as $k => $v) {
if(strstr($k,'view') || $k === 'post_comments')
if(strstr($k, 'view'))
$limits[$k] = PERMS_PUBLIC;
else
$limits[$k] = PERMS_SPECIFIC;
}
return $limits;
}
static public function Set($channel_id,$perm,$perm_limit) {
ZLib\PConfig::Set($channel_id,'perm_limits',$perm,$perm_limit);
/**
* @brief Sets a permission limit for a channel.
*
* @param int $channel_id
* @param string $perm
* @param int $perm_limit one of PERMS_* constants
*/
static public function Set($channel_id, $perm, $perm_limit) {
PConfig::Set($channel_id, 'perm_limits', $perm, $perm_limit);
}
static public function Get($channel_id,$perm = '') {
/**
* @brief Get a channel's permission limits.
*
* Return a channel's permission limits from PConfig. If $perm is set just
* return this permission limit, if not set, return an array with all
* permission limits.
*
* @param int $channel_id
* @param string $perm (optional)
* @return
* * \b false if no perm_limits set for this channel
* * \b int if $perm is set, return one of PERMS_* constants for this permission, default 0
* * \b array with all permission limits, if $perm is not set
*/
static public function Get($channel_id, $perm = '') {
if($perm) {
return Zlib\PConfig::Get($channel_id,'perm_limits',$perm);
return intval(PConfig::Get($channel_id, 'perm_limits', $perm));
}
else {
Zlib\PConfig::Load($channel_id);
if(array_key_exists($channel_id,\App::$config) && array_key_exists('perm_limits',\App::$config[$channel_id]))
return \App::$config[$channel_id]['perm_limits'];
return false;
}
}
PConfig::Load($channel_id);
if(array_key_exists($channel_id, \App::$config)
&& array_key_exists('perm_limits', \App::$config[$channel_id]))
return \App::$config[$channel_id]['perm_limits'];
return false;
}
}

View File

@@ -41,6 +41,24 @@ class PermissionRoles {
break;
case 'social_federation':
$ret['perms_auto'] = false;
$ret['default_collection'] = false;
$ret['directory_publish'] = true;
$ret['online'] = true;
$ret['perms_connect'] = [
'view_stream', 'view_profile', 'view_contacts', 'view_storage',
'view_pages', 'view_wiki', 'send_stream', 'post_wall', 'post_comments',
'post_mail', 'chat', 'post_like', 'republish'
];
$ret['limits'] = PermissionLimits::Std_Limits();
$ret['limits']['post_comments'] = PERMS_AUTHED;
$ret['limits']['post_mail'] = PERMS_AUTHED;
$ret['limits']['post_like'] = PERMS_AUTHED;
$ret['limits']['chat'] = PERMS_AUTHED;
break;
case 'social_restricted':
$ret['perms_auto'] = false;
$ret['default_collection'] = true;
@@ -263,6 +281,7 @@ class PermissionRoles {
static public function roles() {
$roles = [
t('Social Networking') => [
'social_federation' => t('Social - Federation'),
'social' => t('Social - Mostly Public'),
'social_restricted' => t('Social - Restricted'),
'social_private' => t('Social - Private')
@@ -289,6 +308,8 @@ class PermissionRoles {
]
];
call_hooks('list_permission_roles',$roles);
return $roles;
}

View File

@@ -67,7 +67,7 @@ class Permissions {
'post_comments' => t('Can comment on or like my posts'),
'post_mail' => t('Can send me private mail messages'),
'post_like' => t('Can like/dislike profiles and profile things'),
'tag_deliver' => t('Can forward to all my channel connections via @+ mentions in posts'),
'tag_deliver' => t('Can forward to all my channel connections via ! mentions in posts'),
'chat' => t('Can chat with me'),
'republish' => t('Can source my public posts in derived channels'),
'delegate' => t('Can administer my channel')

View File

@@ -0,0 +1,27 @@
<?php /** @file */
namespace Zotlabs\Daemon;
class Cache_embeds {
static public function run($argc,$argv) {
if(! $argc == 2)
return;
$c = q("select body from item where id = %d ",
dbesc(intval($argv[1]))
);
if(! $c)
return;
$item = $c[0];
// bbcode conversion by default processes embeds that aren't already cached.
// Ignore the returned html output.
bbcode($item['body']);
}
}

View File

@@ -50,14 +50,19 @@ class Cron {
// expire any expired items
$r = q("select id from item where expires > '2001-01-01 00:00:00' and expires < %s
$r = q("select id,item_wall from item where expires > '2001-01-01 00:00:00' and expires < %s
and item_deleted = 0 ",
db_utcnow()
);
if($r) {
require_once('include/items.php');
foreach($r as $rr)
drop_item($rr['id'],false);
foreach($r as $rr) {
drop_item($rr['id'],false,(($rr['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL));
if($rr['item_wall']) {
// The notifier isn't normally invoked unless item_drop is interactive.
Master::Summon( [ 'Notifier', 'drop', $rr['id'] ] );
}
}
}
@@ -89,6 +94,29 @@ class Cron {
@time_sleep_until(microtime(true) + (float) $interval);
}
}
// Clean expired photos from cache
$age = get_config('system','active_expire_days', '30');
$r = q("SELECT DISTINCT xchan, content FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
intval(PHOTO_CACHE),
db_utcnow(),
db_quoteinterval($age . ' DAY')
);
if($r) {
foreach($r as $rr) {
$file = dbunescbin($rr['content']);
if(is_file($file)) {
@unlink($file);
logger('info: deleted cached photo file ' . $file, LOGGER_DEBUG);
}
}
}
q("DELETE FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
intval(PHOTO_CACHE),
db_utcnow(),
db_quoteinterval($age . ' DAY')
);
// publish any applicable items that were set to be published in the future
// (time travel posts). Restrict to items that have come of age in the last

View File

@@ -85,6 +85,7 @@ class Cron_daily {
Master::Summon(array('Cli_suggest'));
remove_obsolete_hublocs();
z6_discover();
call_hooks('cron_daily',datetime_convert());

View File

@@ -2,6 +2,8 @@
namespace Zotlabs\Daemon;
use Zotlabs\Lib\DReport;
require_once('include/zot.php');
require_once('include/queue_fn.php');
@@ -58,11 +60,12 @@ class Deliver {
foreach($dresult as $xx) {
if(is_array($xx) && array_key_exists('message_id',$xx)) {
if(delivery_report_is_storable($xx)) {
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s','%s','%s','%s','%s' ) ",
if(DReport::is_storable($xx)) {
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan ) values ( '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
dbesc($xx['message_id']),
dbesc($xx['location']),
dbesc($xx['recipient']),
dbesc(($xx['name']) ? $xx['name'] : EMPTY_STR),
dbesc($xx['status']),
dbesc(datetime_convert($xx['date'])),
dbesc($xx['sender'])
@@ -75,6 +78,8 @@ class Deliver {
q("delete from dreport where dreport_queue = '%s'",
dbesc($argv[$x])
);
continue;
}
}

View File

@@ -34,7 +34,8 @@ class Expire {
logger('expire: start', LOGGER_DEBUG);
$site_expire = get_config('system', 'default_expire_days');
$site_expire = intval(get_config('system', 'default_expire_days'));
$commented_days = intval(get_config('system','active_expire_days'));
logger('site_expire: ' . $site_expire);
@@ -64,7 +65,7 @@ class Expire {
// if the site or service class expiration is non-zero and less than person expiration, use that
logger('Expire: ' . $rr['channel_address'] . ' interval: ' . $expire_days, LOGGER_DEBUG);
item_expire($rr['channel_id'], $expire_days);
item_expire($rr['channel_id'], $expire_days, $commented_days);
}
}
@@ -85,7 +86,7 @@ class Expire {
logger('Expire: sys interval: ' . $expire_days, LOGGER_DEBUG);
if ($expire_days)
item_expire($x['channel_id'], $expire_days);
item_expire($x['channel_id'], $expire_days, $commented_days);
logger('Expire: sys: done', LOGGER_DEBUG);
}

View File

@@ -3,7 +3,6 @@
namespace Zotlabs\Daemon;
if(array_search( __file__ , get_included_files()) === 0) {
require_once('include/cli_startup.php');
array_shift($argv);
$argc = count($argv);
@@ -23,8 +22,22 @@ class Master {
static public function Release($argc,$argv) {
cli_startup();
logger('Master: release: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG);
$cls = '\\Zotlabs\\Daemon\\' . $argv[0];
$cls::run($argc,$argv);
}
$hookinfo = [
'argv'=>$argv
];
call_hooks ('daemon_master_release',$hookinfo);
$argv = $hookinfo['argv'];
$argc = count($argv);
if ((!is_array($argv) || (count($argv) < 1))) {
return;
}
logger('Master: release: ' . json_encode($argv), LOGGER_ALL,LOG_DEBUG);
$cls = '\\Zotlabs\\Daemon\\' . $argv[0];
$cls::run($argc,$argv);
}
}

View File

@@ -2,6 +2,8 @@
namespace Zotlabs\Daemon;
use Zotlabs\Lib\Libzot;
require_once('include/queue_fn.php');
require_once('include/html2plain.php');
require_once('include/conversation.php');
@@ -90,8 +92,6 @@ class Notifier {
$item_id = $argv[2];
$extra = (($argc > 3) ? $argv[3] : null);
if(! $item_id)
return;
@@ -315,7 +315,7 @@ class Notifier {
}
if($target_item['id'] == $target_item['parent']) {
if($target_item['mid'] === $target_item['parent_mid']) {
$parent_item = $target_item;
$top_level_post = true;
}
@@ -346,7 +346,16 @@ class Notifier {
return;
$encoded_item = encode_item($target_item);
// activitystreams version
$m = get_iconfig($target_item,'activitystreams','signed_data');
if($m) {
$activity = json_decode($m,true);
}
else {
$activity = \Zotlabs\Lib\Activity::encode_activity($target_item);
}
// Send comments to the owner to re-deliver to everybody in the conversation
// We only do this if the item in question originated on this site. This prevents looping.
// To clarify, a site accepting a new comment is responsible for sending it to the owner for relay.
@@ -403,6 +412,12 @@ class Notifier {
$private = false;
$recipients = collect_recipients($parent_item,$private);
if ($top_level_post) {
// remove clones who will receive the post via sync
$recipients = array_diff($recipients, [ $target_item['owner_xchan'] ]);
}
// FIXME add any additional recipients such as mentions, etc.
// don't send deletions onward for other people's stuff
@@ -425,6 +440,8 @@ class Notifier {
$x['body'] = 'private';
logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
//logger('notifier: encoded activity: ' . print_r($activity,true), LOGGER_DATA, LOG_DEBUG);
stringify_array_elms($recipients);
if(! $recipients) {
logger('no recipients');
@@ -435,7 +452,7 @@ class Notifier {
$env_recips = (($private) ? array() : null);
$details = q("select xchan_hash, xchan_instance_url, xchan_network, xchan_addr, xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . protect_sprintf(implode(',',$recipients)) . ")");
$details = q("select xchan_hash, xchan_network, xchan_addr, xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . protect_sprintf(implode(',',$recipients)) . ")");
$recip_list = array();
@@ -561,7 +578,9 @@ class Notifier {
foreach($dhubs as $hub) {
if($hub['hubloc_network'] !== 'zot') {
logger('notifier_hub: ' . $hub['hubloc_url'],LOGGER_DEBUG);
if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
$narr = [
'channel' => $channel,
'upstream' => $upstream,
@@ -610,20 +629,32 @@ class Notifier {
continue;
}
// default: zot protocol
if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
continue;
}
// Do not change this to a uuid as long as we have traditional zot servers
// in the loop. The signature verification step can't handle dashes in the
// hashes.
$hash = random_string(48);
$hash = random_string();
$packet = null;
$pmsg = '';
if($packet_type === 'refresh' || $packet_type === 'purge') {
$packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
if($hub['hubloc_network'] === 'zot6') {
$packet = Libzot::build_packet($channel, $packet_type, ids_to_array($packet_recips,'hash'));
}
else {
$packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
}
}
if($packet_type === 'keychange') {
$packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
if($packet_type === 'keychange' && $hub['hubloc_network'] === 'zot') {
$pmsg = get_pconfig($channel['channel_id'],'system','keychange');
$packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
}
elseif($packet_type === 'request') {
elseif($packet_type === 'request' && $hub['hubloc_network'] === 'zot') {
$env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
$packet = zot_build_packet($channel,$packet_type,$env,$hub['hubloc_sitekey'],$hub['site_crypto'],
$hash, array('message_id' => $request_message_id)
@@ -636,19 +667,60 @@ class Notifier {
'account_id' => $channel['channel_account_id'],
'channel_id' => $channel['channel_id'],
'posturl' => $hub['hubloc_callback'],
'driver' => $hub['hubloc_network'],
'notify' => $packet,
'msg' => (($pmsg) ? json_encode($pmsg) : '')
));
}
else {
$env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
$packet = zot_build_packet($channel,'notify',$env,(($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
if($hub['hubloc_network'] === 'zot6') {
$zenv = [];
if($env) {
foreach($env as $e) {
$zenv[] = $e['hash'];
}
}
$packet_type = (($upstream || $uplink) ? 'response' : 'activity');
// block zot private reshares from zot6, as this could cause a number of privacy issues
// due to parenting differences between the reshare implementations. In zot a reshare is
// a standalone parent activity and in zot6 it is a followup/child of the original activity.
// For public reshares, some comments to the reshare on the zot fork will not make it to zot6
// due to these different message models. This cannot be prevented at this time.
if($packet_type === 'activity' && $activity['type'] === 'Announce' && intval($target_item['item_private'])) {
continue;
}
$packet = Libzot::build_packet($channel,$packet_type,$zenv,$activity,'activitystreams',(($private) ? $hub['hubloc_sitekey'] : null),$hub['site_crypto']);
}
else {
// currently zot6 delivery is only performed on normal items and not sync items or mail or anything else
// Eventually we will do this for all deliveries, but for now ensure this is precisely what we are dealing
// with before switching to zot6 as the primary zot6 handler checks for the existence of a message delivery report
// to trigger dequeue'ing
$z6 = (($encoded_item && $encoded_item['type'] === 'activity' && (! array_key_exists('allow_cid',$encoded_item))) ? true : false);
if($z6) {
$packet = zot6_build_packet($channel,'notify',$env, json_encode($encoded_item), (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
}
else {
$packet = zot_build_packet($channel,'notify',$env, (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
}
}
queue_insert(
[
'hash' => $hash,
'account_id' => $target_item['aid'],
'channel_id' => $target_item['uid'],
'posturl' => $hub['hubloc_callback'],
'driver' => $hub['hubloc_network'],
'notify' => $packet,
'msg' => json_encode($encoded_item)
]

View File

@@ -69,7 +69,7 @@ class Onepoll {
return;
}
if($contact['xchan_network'] !== 'zot')
if(! in_array($contact['xchan_network'],['zot','zot6']))
return;
// update permissions

View File

@@ -71,14 +71,18 @@ class Poller {
$randfunc = db_getfunc('RAND');
$contacts = q("SELECT * FROM abook LEFT JOIN xchan on abook_xchan = xchan_hash
$contacts = q("SELECT abook.abook_updated, abook.abook_connected, abook.abook_feed,
abook.abook_channel, abook.abook_id, abook.abook_archived, abook.abook_pending,
abook.abook_ignored, abook.abook_blocked,
xchan.xchan_network,
account.account_lastlog, account.account_flags
FROM abook LEFT JOIN xchan on abook_xchan = xchan_hash
LEFT JOIN account on abook_account = account_id
where abook_self = 0
$sql_extra
AND (( account_flags = %d ) OR ( account_flags = %d )) $abandon_sql ORDER BY $randfunc",
intval(ACCOUNT_OK),
intval(ACCOUNT_UNVERIFIED) // FIXME
);
if($contacts) {
@@ -106,7 +110,7 @@ class Poller {
}
if($contact['xchan_network'] !== 'zot')
if(! in_array($contact['xchan_network'],['zot','zot6']))
continue;
if($c == $t) {
@@ -195,6 +199,7 @@ class Poller {
set_config('system','lastpoll',datetime_convert());
//All done - clear the lockfile
@unlink($lockfile);
return;

View File

@@ -12,11 +12,10 @@ class Queue {
require_once('include/items.php');
require_once('include/bbcode.php');
if(argc() > 1)
$queue_id = argv(1);
if($argc > 1)
$queue_id = $argv[1];
else
$queue_id = 0;
$queue_id = EMPTY_STR;
logger('queue: start');
@@ -61,10 +60,20 @@ class Queue {
// or just prior to this query based on recent and long-term delivery history. If we have good reason to believe
// the site is permanently down, there's no reason to attempt delivery at all, or at most not more than once
// or twice a day.
$r = q("SELECT * FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s ",
$sqlrandfunc = db_getfunc('rand');
$r = q("SELECT *,$sqlrandfunc as rn FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s order by rn limit 1",
db_utcnow()
);
while ($r) {
foreach($r as $rv) {
queue_deliver($rv);
}
$r = q("SELECT *,$sqlrandfunc as rn FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s order by rn limit 1",
db_utcnow()
);
}
}
if(! $r)
return;

48
Zotlabs/Extend/Route.php Normal file
View File

@@ -0,0 +1,48 @@
<?php
namespace Zotlabs\Extend;
class Route {
static function register($file,$modname) {
$rt = self::get();
$rt[] = [ $file, $modname ];
self::set($rt);
}
static function unregister($file,$modname) {
$rt = self::get();
if($rt) {
$n = [];
foreach($rt as $r) {
if($r[0] !== $file && $r[1] !== $modname) {
$n[] = $r;
}
}
self::set($n);
}
}
static function unregister_by_file($file) {
$rt = self::get();
if($rt) {
$n = [];
foreach($rt as $r) {
if($r[0] !== $file) {
$n[] = $r;
}
}
self::set($n);
}
}
static function get() {
return get_config('system','routes',[]);
}
static function set($r) {
return set_config('system','routes',$r);
}
}

47
Zotlabs/Extend/Widget.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
namespace Zotlabs\Extend;
class Widget {
static function register($file,$widget) {
$rt = self::get();
$rt[] = [ $file, $widget ];
self::set($rt);
}
static function unregister($file,$widget) {
$rt = self::get();
if($rt) {
$n = [];
foreach($rt as $r) {
if($r[0] !== $file && $r[1] !== $widget) {
$n[] = $r;
}
}
self::set($n);
}
}
static function unregister_by_file($file) {
$rt = self::get();
if($rt) {
$n = [];
foreach($rt as $r) {
if($r[0] !== $file) {
$n[] = $r;
}
}
self::set($n);
}
}
static function get() {
return get_config('system','widgets',[]);
}
static function set($r) {
return set_config('system','widgets',$r);
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace Zotlabs\Identity;
class OAuth2Server extends \OAuth2\Server {
public function __construct(OAuth2Storage $storage, $config = null) {
if(! is_array($config)) {
$config = [
'use_openid_connect' => true,
'issuer' => \Zotlabs\Lib\System::get_site_name()
];
}
parent::__construct($storage, $config);
// Add the "Client Credentials" grant type (it is the simplest of the grant types)
$this->addGrantType(new \OAuth2\GrantType\ClientCredentials($storage));
// Add the "Authorization Code" grant type (this is where the oauth magic happens)
// Need to use OpenID\GrantType to return id_token (see:https://github.com/bshaffer/oauth2-server-php/issues/443)
$this->addGrantType(new \OAuth2\OpenID\GrantType\AuthorizationCode($storage));
$keyStorage = new \OAuth2\Storage\Memory( [
'keys' => [
'public_key' => get_config('system', 'pubkey'),
'private_key' => get_config('system', 'prvkey')
]
]);
$this->addStorage($keyStorage, 'public_key');
}
}

View File

@@ -0,0 +1,139 @@
<?php
namespace Zotlabs\Identity;
class OAuth2Storage extends \OAuth2\Storage\Pdo {
/**
* @param string $username
* @param string $password
* @return bool
*/
public function checkUserCredentials($username, $password)
{
if ($user = $this->getUser($username)) {
return $this->checkPassword($user, $password);
}
return false;
}
/**
* @param string $username
* @return array|bool
*/
public function getUserDetails($username)
{
return $this->getUser($username);
}
/**
*
* @param array $user
* @param string $password
* @return bool
*/
protected function checkPassword($user, $password)
{
$x = account_verify_password($user,$password);
return((array_key_exists('channel',$x) && ! empty($x['channel'])) ? true : false);
}
/**
* @param string $username
* @return array|bool
*/
public function getUser($username)
{
$x = channelx_by_n($username);
if(! $x) {
return false;
}
$a = q("select * from account where account_id = %d",
intval($x['channel_account_id'])
);
$n = explode(' ', $x['channel_name']);
return( [
'webfinger' => channel_reddress($x),
'portable_id' => $x['channel_hash'],
'email' => $a[0]['account_email'],
'username' => $x['channel_address'],
'user_id' => $x['channel_id'],
'name' => $x['channel_name'],
'firstName' => ((count($n) > 1) ? $n[1] : $n[0]),
'lastName' => ((count($n) > 2) ? $n[count($n) - 1] : ''),
'picture' => $x['xchan_photo_l']
] );
}
public function scopeExists($scope) {
// Report that the scope is valid even if it's not.
// We will only return a very small subset no matter what.
// @TODO: Truly validate the scope
// see vendor/bshaffer/oauth2-server-php/src/OAuth2/Storage/ScopeInterface.php and
// vendor/bshaffer/oauth2-server-php/src/OAuth2/Storage/Pdo.php
// for more info.
return true;
}
public function getDefaultScope($client_id=null) {
// Do not REQUIRE a scope
// see vendor/bshaffer/oauth2-server-php/src/OAuth2/Storage/ScopeInterface.php and
// for more info.
return null;
}
public function getUserClaims ($user_id, $claims) {
// Populate the CLAIMS requested (if any).
// @TODO: create a more reasonable/comprehensive list.
// @TODO: present claims on the AUTHORIZATION screen
$userClaims = Array();
$claims = explode (' ', trim($claims));
$validclaims = Array ("name","preferred_username","webfinger","portable_id","email","picture","firstName","lastName");
$claimsmap = Array (
"webfinger" => 'webfinger',
"portable_id" => 'portable_id',
"name" => 'name',
"email" => 'email',
"preferred_username" => 'username',
"picture" => 'picture',
"given_name" => 'firstName',
"family_name" => 'lastName'
);
$userinfo = $this->getUser($user_id);
foreach ($validclaims as $validclaim) {
if (in_array($validclaim,$claims)) {
$claimkey = $claimsmap[$validclaim];
$userClaims[$validclaim] = $userinfo[$claimkey];
} else {
$userClaims[$validclaim] = $validclaim;
}
}
$userClaims["sub"]=$user_id;
return $userClaims;
}
/**
* plaintext passwords are bad! Override this for your application
*
* @param string $username
* @param string $password
* @param string $firstName
* @param string $lastName
* @return bool
*/
public function setUser($username, $password, $firstName = null, $lastName = null)
{
return true;
}
}

2256
Zotlabs/Lib/Activity.php Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,21 +7,25 @@ namespace Zotlabs\Lib;
*
* Parses an ActivityStream JSON string.
*/
class ActivityStreams {
public $data;
public $valid = false;
public $id = '';
public $type = '';
public $actor = null;
public $obj = null;
public $tgt = null;
public $origin = null;
public $owner = null;
public $signer = null;
public $ldsig = null;
public $sigok = false;
public $recips = null;
public $raw = null;
public $data = null;
public $valid = false;
public $deleted = false;
public $id = '';
public $parent_id = '';
public $type = '';
public $actor = null;
public $obj = null;
public $tgt = null;
public $origin = null;
public $owner = null;
public $signer = null;
public $ldsig = null;
public $sigok = false;
public $recips = null;
public $raw_recips = null;
/**
@@ -33,15 +37,50 @@ class ActivityStreams {
*/
function __construct($string) {
$this->data = json_decode($string, true);
$this->raw = $string;
if(is_array($string)) {
$this->data = $string;
}
else {
$this->data = json_decode($string, true);
}
if($this->data) {
// verify and unpack JSalmon signature if present
if(is_array($this->data) && array_key_exists('signed',$this->data)) {
$ret = JSalmon::verify($this->data);
$tmp = JSalmon::unpack($this->data['data']);
if($ret && $ret['success']) {
if($ret['signer']) {
$saved = json_encode($this->data,JSON_UNESCAPED_SLASHES);
$this->data = $tmp;
$this->data['signer'] = $ret['signer'];
$this->data['signed_data'] = $saved;
if($ret['hubloc']) {
$this->data['hubloc'] = $ret['hubloc'];
}
}
}
}
$this->valid = true;
if(array_key_exists('type',$this->data) && array_key_exists('actor',$this->data) && array_key_exists('object',$this->data)) {
if($this->data['type'] === 'Delete' && $this->data['actor'] === $this->data['object']) {
$this->deleted = $this->data['actor'];
$this->valid = false;
}
}
}
if($this->is_valid()) {
$this->id = $this->get_property_obj('id');
$this->type = $this->get_primary_type();
$this->actor = $this->get_compound_property('actor');
$this->actor = $this->get_actor('actor','','');
$this->obj = $this->get_compound_property('object');
$this->tgt = $this->get_compound_property('target');
$this->origin = $this->get_compound_property('origin');
@@ -50,14 +89,31 @@ class ActivityStreams {
$this->ldsig = $this->get_compound_property('signature');
if($this->ldsig) {
$this->signer = $this->get_compound_property('creator',$this->ldsig);
if($this->signer && $this->signer['publicKey'] && $this->signer['publicKey']['publicKeyPem']) {
$this->sigok = \Zotlabs\Lib\LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
if($this->signer && is_array($this->signer) && array_key_exists('publicKey',$this->signer) && is_array($this->signer['publicKey']) && $this->signer['publicKey']['publicKeyPem']) {
$this->sigok = LDSignatures::verify($this->data,$this->signer['publicKey']['publicKeyPem']);
}
}
if(($this->type === 'Note') && (! $this->obj)) {
if(! $this->obj) {
$this->obj = $this->data;
$this->type = 'Create';
if(! $this->actor) {
$this->actor = $this->get_actor('attributedTo',$this->obj);
}
}
if($this->obj && is_array($this->obj) && $this->obj['actor'])
$this->obj['actor'] = $this->get_actor('actor',$this->obj);
if($this->tgt && is_array($this->tgt) && $this->tgt['actor'])
$this->tgt['actor'] = $this->get_actor('actor',$this->tgt);
$this->parent_id = $this->get_property_obj('inReplyTo');
if((! $this->parent_id) && is_array($this->obj)) {
$this->parent_id = $this->obj['inReplyTo'];
}
if((! $this->parent_id) && is_array($this->obj)) {
$this->parent_id = $this->obj['id'];
}
}
}
@@ -187,28 +243,32 @@ class ActivityStreams {
$base = (($base) ? $base : $this->data);
$propname = (($prefix) ? $prefix . ':' : '') . $property;
if(! is_array($base)) {
btlogger('not an array: ' . print_r($base,true));
return null;
}
return ((array_key_exists($propname, $base)) ? $base[$propname] : null);
}
/**
* @brief Fetches a property from an URL.
*
* @param string $url
* @return NULL|mixed
*/
function fetch_property($url) {
$redirects = 0;
if(! check_siteallowed($url)) {
logger('blacklisted: ' . $url);
return null;
}
return self::fetch($url);
}
$x = z_fetch_url($url, true, $redirects,
['headers' => [ 'Accept: application/ld+json; profile="https://www.w3.org/ns/activitystreams", application/activity+json' ]]);
if($x['success'])
return json_decode($x['body'], true);
static function fetch($url,$channel = null) {
return Activity::fetch($url,$channel);
}
return null;
static function is_an_actor($s) {
return(in_array($s,[ 'Application','Group','Organization','Person','Service' ]));
}
/**
@@ -219,10 +279,71 @@ class ActivityStreams {
* @param string $namespace (optional) default empty
* @return NULL|mixed
*/
function get_compound_property($property, $base = '', $namespace = '') {
function get_actor($property,$base='',$namespace = '') {
$x = $this->get_property_obj($property, $base, $namespace);
if($this->is_url($x)) {
$x = $this->fetch_property($x);
// SECURITY: If we have already stored the actor profile, re-generate it
// from cached data - don't refetch it from the network
$r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where hubloc_id_url = '%s' limit 1",
dbesc($x)
);
if($r) {
$y = Activity::encode_person($r[0]);
$y['cached'] = true;
return $y;
}
}
$actor = $this->get_compound_property($property,$base,$namespace,true);
if(is_array($actor) && self::is_an_actor($actor['type'])) {
if(array_key_exists('id',$actor) && (! array_key_exists('inbox',$actor))) {
$actor = $this->fetch_property($actor['id']);
}
return $actor;
}
return null;
}
/**
* @brief
*
* @param string $property
* @param array $base
* @param string $namespace (optional) default empty
* @param boolean $first (optional) default false, if true and result is a sequential array return only the first element
* @return NULL|mixed
*/
function get_compound_property($property, $base = '', $namespace = '', $first = false) {
$x = $this->get_property_obj($property, $base, $namespace);
if($this->is_url($x)) {
$y = $this->fetch_property($x);
if (is_array($y)) {
$x = $y;
}
}
// verify and unpack JSalmon signature if present
if(is_array($x) && array_key_exists('signed',$x)) {
$ret = JSalmon::verify($x);
$tmp = JSalmon::unpack($x['data']);
if($ret && $ret['success']) {
if($ret['signer']) {
$saved = json_encode($x,JSON_UNESCAPED_SLASHES);
$x = $tmp;
$x['signer'] = $ret['signer'];
$x['signed_data'] = $saved;
if($ret['hubloc']) {
$x['hubloc'] = $ret['hubloc'];
}
}
}
}
if($first && is_array($x) && array_key_exists(0,$x)) {
return $x[0];
}
return $x;
@@ -270,4 +391,18 @@ class ActivityStreams {
return $x;
}
static function is_as_request() {
$x = getBestSupportedMimeType([
'application/ld+json;profile="https://www.w3.org/ns/activitystreams"',
'application/activity+json',
'application/ld+json;profile="http://www.w3.org/ns/activitystreams"'
]);
return(($x) ? true : false);
}
}

View File

@@ -12,8 +12,16 @@ class Api_router {
}
static function find($path) {
if(array_key_exists($path,self::$routes))
if (array_key_exists($path,self::$routes)) {
return self::$routes[$path];
}
$with_params = dirname($path) . '/[id]';
if (array_key_exists($with_params,self::$routes)) {
return self::$routes[$with_params];
}
return null;
}

File diff suppressed because it is too large Load Diff

View File

@@ -266,7 +266,7 @@ class Chatroom {
intval($room_id),
dbesc($xchan),
dbesc(datetime_convert()),
dbesc($arr['chat_text'])
dbesc(str_rot47(base64url_encode($arr['chat_text'])))
);
$ret['success'] = true;

View File

@@ -142,9 +142,9 @@ class Config {
/**
* @brief Returns a value directly from the database configuration storage.
* @brief Returns a record directly from the database configuration storage.
*
* This function queries directly the database and bypasses the chached storage
* This function queries directly the database and bypasses the cached storage
* from get_config($family, $key).
*
* @param string $family

View File

@@ -10,22 +10,12 @@ class DB_Upgrade {
function __construct($db_revision) {
$platform_name = System::get_platform_name();
$this->config_name = 'db_version';
$this->func_prefix = '_';
$update_file = 'install/' . $platform_name . '/update.php';
if(! file_exists($update_file)) {
$update_file = 'install/update.php';
$this->config_name = 'db_version';
$this->func_prefix = 'update_r';
}
else {
$this->config_name = $platform_name . '_db_version';
$this->func_prefix = $platform_name . '_update_';
}
$build = get_config('system', $this->config_name, 0);
$build = get_config('system', 'db_version', 0);
if(! intval($build))
$build = set_config('system', $this->config_name, $db_revision);
$build = set_config('system', 'db_version', $db_revision);
if($build == $db_revision) {
// Nothing to be done.
@@ -40,82 +30,85 @@ class DB_Upgrade {
$current = intval($db_revision);
if(($stored < $current) && file_exists($update_file)) {
if($stored < $current) {
Config::Load('database');
// The last update we performed was $stored.
// Start at $stored + 1 and continue until we have completed $current
// We're reporting a different version than what is currently installed.
// Run any existing update scripts to bring the database up to current.
require_once($update_file);
// make sure that boot.php and update.php are the same release, we might be
// updating from git right this very second and the correct version of the update.php
// file may not be here yet. This can happen on a very busy site.
if($db_revision == UPDATE_VERSION) {
for($x = $stored; $x < $current; $x ++) {
$func = $this->func_prefix . $x;
if(function_exists($func)) {
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// after first checking to see if somebody else already has.
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
if(get_config('database', $func))
break;
set_config('database',$func, '1');
// call the specific update
$retval = $func();
if($retval) {
// Prevent sending hundreds of thousands of emails by creating
// a lockfile.
$lockfile = 'store/[data]/mailsent';
if ((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 86400)))
return;
@unlink($lockfile);
//send the administrator an e-mail
file_put_contents($lockfile, $x);
$r = q("select account_language from account where account_email = '%s' limit 1",
dbesc(\App::$config['system']['admin_email'])
);
push_lang(($r) ? $r[0]['account_language'] : 'en');
z_mail(
[
'toEmail' => \App::$config['system']['admin_email'],
'messageSubject' => sprintf( t('Update Error at %s'), z_root()),
'textVersion' => replace_macros(get_intltext_template('update_fail_eml.tpl'),
[
'$sitename' => \App::$config['system']['sitename'],
'$siteurl' => z_root(),
'$update' => $x,
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
]
)
]
);
//try the logger
logger('CRITICAL: Update Failed: ' . $x);
pop_lang();
}
else {
set_config('database',$func, 'success');
}
}
for($x = $stored + 1; $x <= $current; $x ++) {
$s = '_' . $x;
$cls = '\\Zotlabs\Update\\' . $s ;
if(! class_exists($cls)) {
return;
}
// There could be a lot of processes running or about to run.
// We want exactly one process to run the update command.
// So store the fact that we're taking responsibility
// after first checking to see if somebody else already has.
// If the update fails or times-out completely you may need to
// delete the config entry to try again.
Config::Load('database');
if(get_config('database', $s))
break;
set_config('database',$s, '1');
$c = new $cls();
$retval = $c->run();
if($retval != UPDATE_SUCCESS) {
$source = t('Source code of failed update: ') . "\n\n" . @file_get_contents('Zotlabs/Update/' . $s . '.php');
// Prevent sending hundreds of thousands of emails by creating
// a lockfile.
$lockfile = 'store/[data]/mailsent';
if ((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 86400)))
return;
@unlink($lockfile);
//send the administrator an e-mail
file_put_contents($lockfile, $x);
$r = q("select account_language from account where account_email = '%s' limit 1",
dbesc(\App::$config['system']['admin_email'])
);
push_lang(($r) ? $r[0]['account_language'] : 'en');
z_mail(
[
'toEmail' => \App::$config['system']['admin_email'],
'messageSubject' => sprintf( t('Update Error at %s'), z_root()),
'textVersion' => replace_macros(get_intltext_template('update_fail_eml.tpl'),
[
'$sitename' => \App::$config['system']['sitename'],
'$siteurl' => z_root(),
'$update' => $x,
'$error' => sprintf( t('Update %s failed. See error logs.'), $x),
'$baseurl' => z_root(),
'$source' => $source
]
)
]
);
//try the logger
logger('CRITICAL: Update Failed: ' . $x);
pop_lang();
}
else {
set_config('database',$s, 'success');
}
set_config('system', $this->config_name, $db_revision);
}
}
set_config('system', 'db_version', $db_revision);
}
}
}

147
Zotlabs/Lib/DReport.php Normal file
View File

@@ -0,0 +1,147 @@
<?php
namespace Zotlabs\Lib;
class DReport {
private $location;
private $sender;
private $recipient;
private $message_id;
private $status;
private $date;
function __construct($location,$sender,$recipient,$message_id,$status = 'deliver') {
$this->location = $location;
$this->sender = $sender;
$this->recipient = $recipient;
$this->name = EMPTY_STR;
$this->message_id = $message_id;
$this->status = $status;
$this->date = datetime_convert();
}
function update($status) {
$this->status = $status;
$this->date = datetime_convert();
}
function set_name($name) {
$this->name = $name;
}
function addto_update($status) {
$this->status = $this->status . ' ' . $status;
}
function set($arr) {
$this->location = $arr['location'];
$this->sender = $arr['sender'];
$this->recipient = $arr['recipient'];
$this->name = $arr['name'];
$this->message_id = $arr['message_id'];
$this->status = $arr['status'];
$this->date = $arr['date'];
}
function get() {
return array(
'location' => $this->location,
'sender' => $this->sender,
'recipient' => $this->recipient,
'name' => $this->name,
'message_id' => $this->message_id,
'status' => $this->status,
'date' => $this->date
);
}
/**
* @brief decide whether to store a returned delivery report
*
* @param array $dr
* @return boolean
*/
static function is_storable($dr) {
if(get_config('system', 'disable_dreport'))
return false;
/**
* @hooks dreport_is_storable
* Called before storing a dreport record to determine whether to store it.
* * \e array
*/
call_hooks('dreport_is_storable', $dr);
// let plugins accept or reject - if neither, continue on
if(array_key_exists('accept',$dr) && intval($dr['accept']))
return true;
if(array_key_exists('reject',$dr) && intval($dr['reject']))
return false;
if(! ($dr['sender']))
return false;
// Is the sender one of our channels?
$c = q("select channel_id from channel where channel_hash = '%s' or channel_portable_id = '%s' limit 1",
dbesc($dr['sender']),
dbesc($dr['sender'])
);
if(! $c)
return false;
// legacy zot recipients add a space and their name to the xchan. remove it if true.
$legacy_recipient = strpos($dr['recipient'], ' ');
if($legacy_recipient !== false) {
$legacy_recipient_parts = explode(' ', $dr['recipient'], 2);
$rxchan = $legacy_recipient_parts[0];
}
else {
$rxchan = $dr['recipient'];
}
// is the recipient one of our connections, or do we want to store every report?
$pcf = get_pconfig($c[0]['channel_id'],'system','dreport_store_all');
if($pcf)
return true;
// We always add ourself as a recipient to private and relayed posts
// So if a remote site says they can't find us, that's no big surprise
// and just creates a lot of extra report noise
if(($dr['location'] !== z_root()) && ($dr['sender'] === $rxchan) && ($dr['status'] === 'recipient not found'))
return false;
// If you have a private post with a recipient list, every single site is going to report
// back a failed delivery for anybody on that list that isn't local to them. We're only
// concerned about this if we have a local hubloc record which says we expected them to
// have a channel on that site.
$r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and hubloc_url = '%s'",
dbesc($rxchan),
dbesc($dr['location'])
);
if((! $r) && ($dr['status'] === 'recipient_not_found'))
return false;
$r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
dbesc($rxchan),
intval($c[0]['channel_id'])
);
if($r)
return true;
return false;
}
}

View File

@@ -63,7 +63,9 @@ class Enotify {
$thanks = t('Thank You,');
$sitename = get_config('system','sitename');
$site_admin = sprintf( t('%s Administrator'), $sitename);
$opt_out1 = sprintf( t('This email was sent by %1$s at %2$s.'), t('$Projectname'), \App::get_hostname());
$opt_out2 = sprintf( t('To stop receiving these messages, please adjust your Notification Settings at %s'), z_root() . '/settings');
$hopt_out2 = sprintf( t('To stop receiving these messages, please adjust your %s.'), '<a href="' . z_root() . '/settings' . '">' . t('Notification Settings') . '</a>');
$sender_name = $product;
$hostname = \App::get_hostname();
if(strpos($hostname,':'))
@@ -112,6 +114,11 @@ class Enotify {
}
$always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices');
$vnotify = get_pconfig($recip['channel_id'],'system','vnotify');
$salutation = $recip['channel_name'];
// e.g. "your post", "David's photo", etc.
$possess_desc = t('%s <!item_type!>');
@@ -119,7 +126,7 @@ class Enotify {
logger('notification: mail');
$subject = sprintf( t('[$Projectname:Notify] New mail received at %s'),$sitename);
$preamble = sprintf( t('%1$s, %2$s sent you a new private message at %3$s.'),$recip['channel_name'], $sender['xchan_name'],$sitename);
$preamble = sprintf( t('%1$s sent you a new private message at %2$s.'), $sender['xchan_name'],$sitename);
$epreamble = sprintf( t('%1$s sent you %2$s.'),'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
$tsitelink = sprintf( $sitelink, $siteurl . '/mail/' . $params['item']['id'] );
@@ -128,18 +135,28 @@ class Enotify {
}
if ($params['type'] == NOTIFY_COMMENT) {
// logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
//logger("notification: params = " . print_r($params, true), LOGGER_DEBUG);
$moderated = (($params['item']['item_blocked'] == ITEM_MODERATED) ? true : false);
$itemlink = $params['link'];
// ignore like/unlike activity on posts - they probably require a separate notification preference
$action = t('commented on');
if(array_key_exists('item',$params) && in_array($params['item']['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) {
if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.');
pop_lang();
return;
}
if(activity_match($params['verb'], ACTIVITY_LIKE))
$action = t('liked');
if(activity_match($params['verb'], ACTIVITY_DISLIKE))
$action = t('disliked');
if (array_key_exists('item',$params) && (! visible_activity($params['item']))) {
logger('notification: not a visible activity. Ignoring.');
pop_lang();
return;
}
$parent_mid = $params['parent_mid'];
@@ -181,26 +198,26 @@ class Enotify {
//$possess_desc = str_replace('<!item_type!>',$possess_desc);
// "a post"
$dest_str = sprintf(t('%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]'),
$recip['channel_name'],
$dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]a %4$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
$item_post_type);
// "George Bull's post"
if($p)
$dest_str = sprintf(t('%1$s, %2$s commented on [zrl=%3$s]%4$s\'s %5$s[/zrl]'),
$recip['channel_name'],
$dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]%4$s\'s %5$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
$p[0]['author']['xchan_name'],
$item_post_type);
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
$dest_str = sprintf(t('%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]'),
$recip['channel_name'],
$dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]your %4$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
$item_post_type);
@@ -213,7 +230,7 @@ class Enotify {
$subject = sprintf( t('[$Projectname:Notify] Moderated Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
else
$subject = sprintf( t('[$Projectname:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s commented on an item/conversation you have been following.'), $recip['channel_name'], $sender['xchan_name']);
$preamble = sprintf( t('%1$s commented on an item/conversation you have been following.'), $sender['xchan_name']);
$epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -231,12 +248,12 @@ class Enotify {
$itemlink = $params['link'];
// ignore like/unlike activity on posts - they probably require a separate notification preference
if (array_key_exists('item',$params) && (! activity_match($params['item']['verb'],ACTIVITY_LIKE))) {
logger('notification: not a like activity. Ignoring.');
pop_lang();
return;
if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.');
pop_lang();
return;
}
}
$parent_mid = $params['parent_mid'];
@@ -279,8 +296,7 @@ class Enotify {
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
$dest_str = sprintf(t('%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]'),
$recip['channel_name'],
$dest_str = sprintf(t('%1$s liked [zrl=%2$s]your %3$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$item_post_type);
@@ -295,7 +311,7 @@ class Enotify {
// differents subjects for messages on the same thread.
$subject = sprintf( t('[$Projectname:Notify] Like received to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s liked an item/conversation you created.'), $recip['channel_name'], $sender['xchan_name']);
$preamble = sprintf( t('%1$s liked an item/conversation you created.'), $sender['xchan_name']);
$epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -308,10 +324,9 @@ class Enotify {
if($params['type'] == NOTIFY_WALL) {
$subject = sprintf( t('[$Projectname:Notify] %s posted to your profile wall') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s posted to your profile wall at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
$preamble = sprintf( t('%1$s posted to your profile wall at %2$s') , $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]') ,
$recip['channel_name'],
$epreamble = sprintf( t('%1$s posted to [zrl=%2$s]your wall[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -335,9 +350,8 @@ class Enotify {
}
$subject = sprintf( t('[$Projectname:Notify] %s tagged you') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s tagged you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, %2$s [zrl=%3$s]tagged you[/zrl].') ,
$recip['channel_name'],
$preamble = sprintf( t('%1$s tagged you at %2$s') , $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s [zrl=%2$s]tagged you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -349,9 +363,8 @@ class Enotify {
if ($params['type'] == NOTIFY_POKE) {
$subject = sprintf( t('[$Projectname:Notify] %1$s poked you') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s poked you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, %2$s [zrl=%2$s]poked you[/zrl].') ,
$recip['channel_name'],
$preamble = sprintf( t('%1$s poked you at %2$s') , $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s [zrl=%2$s]poked you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -367,9 +380,8 @@ class Enotify {
if ($params['type'] == NOTIFY_TAGSHARE) {
$subject = sprintf( t('[$Projectname:Notify] %s tagged your post') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s, %2$s tagged your post at %3$s') , $recip['channel_name'],$sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]') ,
$recip['channel_name'],
$preamble = sprintf( t('%1$s tagged your post at %2$s'),$sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s tagged [zrl=%2$s]your post[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink);
@@ -381,9 +393,8 @@ class Enotify {
if ($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('[$Projectname:Notify] Introduction received'));
$preamble = sprintf( t('%1$s, you\'ve received an new connection request from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a new connection request[/zrl] from %3$s.'),
$recip['channel_name'],
$preamble = sprintf( t('You\'ve received an new connection request from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('You\'ve received [zrl=%1$s]a new connection request[/zrl] from %2$s.'),
$siteurl . '/connections/ifpending',
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = sprintf( t('You may visit their profile at %s'),$sender['xchan_url']);
@@ -396,9 +407,8 @@ class Enotify {
if ($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('[$Projectname:Notify] Friend suggestion received'));
$preamble = sprintf( t('%1$s, you\'ve received a friend suggestion from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s.'),
$recip['channel_name'],
$preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('You\'ve received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s.'),
$itemlink,
'[zrl=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/zrl]',
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
@@ -496,8 +506,6 @@ class Enotify {
// Another option would be to not add them to the DB, and change how emails are handled
// (probably would be better that way)
$always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices');
if (!$always_show_in_notices) {
if (($params['type'] == NOTIFY_WALL) || ($params['type'] == NOTIFY_MAIL) || ($params['type'] == NOTIFY_INTRO)) {
$seen = 1;
@@ -600,6 +608,9 @@ class Enotify {
$datarray['titemlink'] = $itemlink;
$datarray['thanks'] = $thanks;
$datarray['site_admin'] = $site_admin;
$datarray['opt_out1'] = $opt_out1;
$datarray['opt_out2'] = $opt_out2;
$datarray['hopt_out2'] = $hopt_out2;
$datarray['title'] = stripslashes($title);
$datarray['htmlversion'] = $htmlversion;
$datarray['textversion'] = $textversion;
@@ -646,7 +657,7 @@ class Enotify {
'$banner' => $datarray['banner'],
'$notify_icon' => \Zotlabs\Lib\System::get_notify_icon(),
'$product' => $datarray['product'],
'$preamble' => $datarray['preamble'],
'$preamble' => $salutation . '<br><br>' . $datarray['preamble'],
'$sitename' => $datarray['sitename'],
'$siteurl' => $datarray['siteurl'],
'$source_name' => $datarray['source_name'],
@@ -657,6 +668,8 @@ class Enotify {
'$hitemlink' => $datarray['hitemlink'],
'$thanks' => $datarray['thanks'],
'$site_admin' => $datarray['site_admin'],
'$opt_out1' => $datarray['opt_out1'],
'$opt_out2' => $datarray['hopt_out2'],
'$title' => $datarray['title'],
'$htmlversion' => $datarray['htmlversion'],
));
@@ -666,7 +679,7 @@ class Enotify {
$email_text_body = replace_macros($tpl, array(
'$banner' => $datarray['banner'],
'$product' => $datarray['product'],
'$preamble' => $datarray['preamble'],
'$preamble' => $salutation . "\n\n" . $datarray['preamble'],
'$sitename' => $datarray['sitename'],
'$siteurl' => $datarray['siteurl'],
'$source_name' => $datarray['source_name'],
@@ -677,6 +690,8 @@ class Enotify {
'$titemlink' => $datarray['titemlink'],
'$thanks' => $datarray['thanks'],
'$site_admin' => $datarray['site_admin'],
'$opt_out1' => $datarray['opt_out1'],
'$opt_out2' => $datarray['opt_out2'],
'$title' => $datarray['title'],
'$textversion' => $datarray['textversion'],
));
@@ -732,16 +747,16 @@ class Enotify {
// generate a mime boundary
$mimeBoundary = rand(0, 9) . "-"
.rand(10000000000, 9999999999) . "-"
.rand(10000000000, 9999999999) . "=:"
.rand(100000000, 999999999) . "-"
.rand(100000000, 999999999) . "=:"
.rand(10000, 99999);
// generate a multipart/alternative message header
$messageHeader =
$params['additionalMailHeader'] .
"From: $fromName <{$params['fromEmail']}>\n" .
"Reply-To: $fromName <{$params['replyTo']}>\n" .
"MIME-Version: 1.0\n" .
"From: $fromName <{$params['fromEmail']}>" . PHP_EOL .
"Reply-To: $fromName <{$params['replyTo']}>" . PHP_EOL .
"MIME-Version: 1.0" . PHP_EOL .
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
// assemble the final multipart message body with the text and html types included
@@ -749,15 +764,15 @@ class Enotify {
$htmlBody = chunk_split(base64_encode($params['htmlVersion']));
$multipartMessageBody =
"--" . $mimeBoundary . "\n" . // plain text section
"Content-Type: text/plain; charset=UTF-8\n" .
"Content-Transfer-Encoding: base64\n\n" .
$textBody . "\n" .
"--" . $mimeBoundary . "\n" . // text/html section
"Content-Type: text/html; charset=UTF-8\n" .
"Content-Transfer-Encoding: base64\n\n" .
$htmlBody . "\n" .
"--" . $mimeBoundary . "--\n"; // message ending
"--" . $mimeBoundary . PHP_EOL . // plain text section
"Content-Type: text/plain; charset=UTF-8" . PHP_EOL .
"Content-Transfer-Encoding: base64" . PHP_EOL . PHP_EOL .
$textBody . PHP_EOL .
"--" . $mimeBoundary . PHP_EOL . // text/html section
"Content-Type: text/html; charset=UTF-8" . PHP_EOL .
"Content-Transfer-Encoding: base64" . PHP_EOL . PHP_EOL .
$htmlBody . PHP_EOL .
"--" . $mimeBoundary . "--" . PHP_EOL; // message ending
// send the message
$res = mail(
@@ -794,21 +809,46 @@ class Enotify {
: sprintf( t('commented on %s\'s post'), $item['owner']['xchan_name']));
}
$edit = false;
if($item['edited'] > $item['created']) {
if($item['item_thread_top']) {
$itemem_text = sprintf( t('edited a post dated %s'), relative_date($item['created']));
$edit = true;
}
else {
$itemem_text = sprintf( t('edited a comment dated %s'), relative_date($item['created']));
$edit = true;
}
}
// convert this logic into a json array just like the system notifications
return array(
$x = array(
'notify_link' => $item['llink'],
'name' => $item['author']['xchan_name'],
'addr' => (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url']),
'url' => $item['author']['xchan_url'],
'photo' => $item['author']['xchan_photo_s'],
'when' => relative_date($item['created']),
'when' => relative_date(($edit)? $item['edited'] : $item['created']),
'class' => (intval($item['item_unseen']) ? 'notify-unseen' : 'notify-seen'),
'b64mid' => ((in_array($item['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) ? 'b64.' . base64url_encode($item['thr_parent']) : 'b64.' . base64url_encode($item['mid'])),
'notify_id' => 'undefined',
'thread_top' => (($item['item_thread_top']) ? true : false),
'message' => strip_tags(bbcode($itemem_text))
'message' => strip_tags(bbcode($itemem_text)),
// these are for the superblock addon
'hash' => $item['author']['xchan_hash'],
'uid' => local_channel(),
'display' => true
);
call_hooks('enotify_format',$x);
if(! $x['display']) {
return [];
}
return $x;
}
}

405
Zotlabs/Lib/Group.php Normal file
View File

@@ -0,0 +1,405 @@
<?php
namespace Zotlabs\Lib;
use Zotlabs\Lib\Libsync;
class Group {
static function add($uid,$name,$public = 0) {
$ret = false;
if(x($uid) && x($name)) {
$r = self::byname($uid,$name); // check for dups
if($r !== false) {
// This could be a problem.
// Let's assume we've just created a group which we once deleted
// all the old members are gone, but the group remains so we don't break any security
// access lists. What we're doing here is reviving the dead group, but old content which
// was restricted to this group may now be seen by the new group members.
$z = q("SELECT * FROM pgrp WHERE id = %d LIMIT 1",
intval($r)
);
if(($z) && $z[0]['deleted']) {
q('UPDATE pgrp SET deleted = 0 WHERE id = %d', intval($z[0]['id']));
notice( t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
}
return true;
}
do {
$dups = false;
$hash = random_string(32) . str_replace(['<','>'],['.','.'], $name);
$r = q("SELECT id FROM pgrp WHERE hash = '%s' LIMIT 1", dbesc($hash));
if($r)
$dups = true;
} while($dups == true);
$r = q("INSERT INTO pgrp ( hash, uid, visible, gname )
VALUES( '%s', %d, %d, '%s' ) ",
dbesc($hash),
intval($uid),
intval($public),
dbesc($name)
);
$ret = $r;
}
Libsync::build_sync_packet($uid,null,true);
return $ret;
}
static function remove($uid,$name) {
$ret = false;
if(x($uid) && x($name)) {
$r = q("SELECT id, hash FROM pgrp WHERE uid = %d AND gname = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
if($r) {
$group_id = $r[0]['id'];
$group_hash = $r[0]['hash'];
}
if(! $group_id)
return false;
// remove group from default posting lists
$r = q("SELECT channel_default_group, channel_allow_gid, channel_deny_gid FROM channel WHERE channel_id = %d LIMIT 1",
intval($uid)
);
if($r) {
$user_info = $r[0];
$change = false;
if($user_info['channel_default_group'] == $group_hash) {
$user_info['channel_default_group'] = '';
$change = true;
}
if(strpos($user_info['channel_allow_gid'], '<' . $group_hash . '>') !== false) {
$user_info['channel_allow_gid'] = str_replace('<' . $group_hash . '>', '', $user_info['channel_allow_gid']);
$change = true;
}
if(strpos($user_info['channel_deny_gid'], '<' . $group_hash . '>') !== false) {
$user_info['channel_deny_gid'] = str_replace('<' . $group_hash . '>', '', $user_info['channel_deny_gid']);
$change = true;
}
if($change) {
q("UPDATE channel SET channel_default_group = '%s', channel_allow_gid = '%s', channel_deny_gid = '%s'
WHERE channel_id = %d",
intval($user_info['channel_default_group']),
dbesc($user_info['channel_allow_gid']),
dbesc($user_info['channel_deny_gid']),
intval($uid)
);
}
}
// remove all members
$r = q("DELETE FROM pgrp_member WHERE uid = %d AND gid = %d ",
intval($uid),
intval($group_id)
);
// remove group
$r = q("UPDATE pgrp SET deleted = 1 WHERE uid = %d AND gname = '%s'",
intval($uid),
dbesc($name)
);
$ret = $r;
}
Libsync::build_sync_packet($uid,null,true);
return $ret;
}
static function byname($uid,$name) {
if((! $uid) || (! strlen($name)))
return false;
$r = q("SELECT * FROM pgrp WHERE uid = %d AND gname = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
if($r)
return $r[0]['id'];
return false;
}
static function rec_byhash($uid,$hash) {
if((! $uid) || (! strlen($hash)))
return false;
$r = q("SELECT * FROM pgrp WHERE uid = %d AND hash = '%s' LIMIT 1",
intval($uid),
dbesc($hash)
);
if($r)
return $r[0];
return false;
}
static function member_remove($uid,$name,$member) {
$gid = self::byname($uid,$name);
if(! $gid)
return false;
if(! ( $uid && $gid && $member))
return false;
$r = q("DELETE FROM pgrp_member WHERE uid = %d AND gid = %d AND xchan = '%s' ",
intval($uid),
intval($gid),
dbesc($member)
);
Libsync::build_sync_packet($uid,null,true);
return $r;
}
static function member_add($uid,$name,$member,$gid = 0) {
if(! $gid)
$gid = self::byname($uid,$name);
if((! $gid) || (! $uid) || (! $member))
return false;
$r = q("SELECT * FROM pgrp_member WHERE uid = %d AND gid = %d AND xchan = '%s' LIMIT 1",
intval($uid),
intval($gid),
dbesc($member)
);
if($r)
return true; // You might question this, but
// we indicate success because the group member was in fact created
// -- It was just created at another time
if(! $r)
$r = q("INSERT INTO pgrp_member (uid, gid, xchan)
VALUES( %d, %d, '%s' ) ",
intval($uid),
intval($gid),
dbesc($member)
);
Libsync::build_sync_packet($uid,null,true);
return $r;
}
static function members($gid) {
$ret = array();
if(intval($gid)) {
$r = q("SELECT * FROM pgrp_member
LEFT JOIN abook ON abook_xchan = pgrp_member.xchan left join xchan on xchan_hash = abook_xchan
WHERE gid = %d AND abook_channel = %d and pgrp_member.uid = %d and xchan_deleted = 0 and abook_self = 0 and abook_blocked = 0 and abook_pending = 0 ORDER BY xchan_name ASC ",
intval($gid),
intval(local_channel()),
intval(local_channel())
);
if($r)
$ret = $r;
}
return $ret;
}
static function members_xchan($gid) {
$ret = [];
if(intval($gid)) {
$r = q("SELECT xchan FROM pgrp_member WHERE gid = %d AND uid = %d",
intval($gid),
intval(local_channel())
);
if($r) {
foreach($r as $rr) {
$ret[] = $rr['xchan'];
}
}
}
return $ret;
}
static function members_profile_xchan($uid,$gid) {
$ret = [];
if(intval($gid)) {
$r = q("SELECT abook_xchan as xchan from abook left join profile on abook_profile = profile_guid where profile.id = %d and profile.uid = %d",
intval($gid),
intval($uid)
);
if($r) {
foreach($r as $rr) {
$ret[] = $rr['xchan'];
}
}
}
return $ret;
}
static function select($uid,$group = '') {
$grps = [];
$o = '';
$r = q("SELECT * FROM pgrp WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
intval($uid)
);
$grps[] = array('name' => '', 'hash' => '0', 'selected' => '');
if($r) {
foreach($r as $rr) {
$grps[] = array('name' => $rr['gname'], 'id' => $rr['hash'], 'selected' => (($group == $rr['hash']) ? 'true' : ''));
}
}
logger('select: ' . print_r($grps,true), LOGGER_DATA);
$o = replace_macros(get_markup_template('group_selection.tpl'), array(
'$label' => t('Add new connections to this privacy group'),
'$groups' => $grps
));
return $o;
}
static function widget($every="connections",$each="group",$edit = false, $group_id = 0, $cid = '',$mode = 1) {
$o = '';
if(! (local_channel() && feature_enabled(local_channel(),'groups'))) {
return '';
}
$groups = array();
$r = q("SELECT * FROM pgrp WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
intval($_SESSION['uid'])
);
$member_of = array();
if($cid) {
$member_of = self::containing(local_channel(),$cid);
}
if($r) {
foreach($r as $rr) {
$selected = (($group_id == $rr['id']) ? ' group-selected' : '');
if ($edit) {
$groupedit = [ 'href' => "group/".$rr['id'], 'title' => t('edit') ];
}
else {
$groupedit = null;
}
$groups[] = [
'id' => $rr['id'],
'enc_cid' => base64url_encode($cid),
'cid' => $cid,
'text' => $rr['gname'],
'selected' => $selected,
'href' => (($mode == 0) ? $each.'?f=&gid='.$rr['id'] : $each."/".$rr['id']) . ((x($_GET,'new')) ? '&new=' . $_GET['new'] : '') . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : ''),
'edit' => $groupedit,
'ismember' => in_array($rr['id'],$member_of),
];
}
}
$tpl = get_markup_template("group_side.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Privacy Groups'),
'$edittext' => t('Edit group'),
'$createtext' => t('Add privacy group'),
'$ungrouped' => (($every === 'contacts') ? t('Channels not in any privacy group') : ''),
'$groups' => $groups,
'$add' => t('add'),
));
return $o;
}
static function expand($g) {
if(! (is_array($g) && count($g)))
return array();
$ret = [];
$x = [];
// private profile linked virtual groups
foreach($g as $gv) {
if(substr($gv,0,3) === 'vp.') {
$profile_hash = substr($gv,3);
if($profile_hash) {
$r = q("select abook_xchan from abook where abook_profile = '%s'",
dbesc($profile_hash)
);
if($r) {
foreach($r as $rv) {
$ret[] = $rv['abook_xchan'];
}
}
}
}
else {
$x[] = $gv;
}
}
if($x) {
stringify_array_elms($x,true);
$groups = implode(',', $x);
if($groups) {
$r = q("SELECT xchan FROM pgrp_member WHERE gid IN ( select id from pgrp where hash in ( $groups ))");
if($r) {
foreach($r as $rr) {
$ret[] = $rr['xchan'];
}
}
}
}
return $ret;
}
static function member_of($c) {
$r = q("SELECT pgrp.gname, pgrp.id FROM pgrp LEFT JOIN pgrp_member ON pgrp_member.gid = pgrp.id WHERE pgrp_member.xchan = '%s' AND pgrp.deleted = 0 ORDER BY pgrp.gname ASC ",
dbesc($c)
);
return $r;
}
static function containing($uid,$c) {
$r = q("SELECT gid FROM pgrp_member WHERE uid = %d AND pgrp_member.xchan = '%s' ",
intval($uid),
dbesc($c)
);
$ret = array();
if($r) {
foreach($r as $rr)
$ret[] = $rr['gid'];
}
return $ret;
}
}

View File

@@ -0,0 +1,122 @@
<?php
namespace Zotlabs\Lib;
class Img_filesize {
private $url;
function __construct($url) {
$this->url = $url;
}
function getSize() {
$size = null;
if(stripos($this->url,z_root() . '/photo') !== false) {
$size = self::getLocalFileSize($this->url);
}
if(! $size) {
$size = getRemoteFileSize($this->url);
}
return $size;
}
static function getLocalFileSize($url) {
$fname = basename($url);
$resolution = 0;
if(strpos($fname,'.') !== false)
$fname = substr($fname,0,strpos($fname,'.'));
if(substr($fname,-2,1) == '-') {
$resolution = intval(substr($fname,-1,1));
$fname = substr($fname,0,-2);
}
$r = q("SELECT filesize FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
dbesc($fname),
intval($resolution)
);
if($r) {
return $r[0]['filesize'];
}
return null;
}
}
/**
* Try to determine the size of a remote file by making an HTTP request for
* a byte range, or look for the content-length header in the response.
* The function aborts the transfer as soon as the size is found, or if no
* length headers are returned, it aborts the transfer.
*
* @return int|null null if size could not be determined, or length of content
*/
function getRemoteFileSize($url)
{
$ch = curl_init($url);
$headers = array(
'Range: bytes=0-1',
'Connection: close',
);
$in_headers = true;
$size = null;
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2450.0 Iron/46.0.2450.0');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0); // set to 1 to debug
curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'r'));
curl_setopt($ch, CURLOPT_HEADERFUNCTION, function($curl, $line) use (&$in_headers, &$size) {
$length = strlen($line);
if (trim($line) == '') {
$in_headers = false;
}
list($header, $content) = explode(':', $line, 2);
$header = strtolower(trim($header));
if ($header == 'content-range') {
// found a content-range header
list($rng, $s) = explode('/', $content, 2);
$size = (int)$s;
return 0; // aborts transfer
} else if ($header == 'content-length' && 206 != curl_getinfo($curl, CURLINFO_HTTP_CODE)) {
// found content-length header and this is not a 206 Partial Content response (range response)
$size = (int)$content;
return 0;
} else {
// continue
return $length;
}
});
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function($curl, $data) use ($in_headers) {
if (!$in_headers) {
// shouldn't be here unless we couldn't determine file size
// abort transfer
return 0;
}
// write function is also called when reading headers
return strlen($data);
});
curl_exec($ch);
curl_getinfo($ch);
curl_close($ch);
return $size;
}

View File

@@ -2,15 +2,13 @@
namespace Zotlabs\Lib;
use Zotlabs\Zot6\HTTPSig;
class JSalmon {
static function sign($data,$key_id,$key) {
static function sign($data,$key_id,$key,$data_type = 'application/x-zot+json') {
$arr = $data;
$data = json_encode($data,JSON_UNESCAPED_SLASHES);
$data = base64url_encode($data, false); // do not strip padding
$data_type = 'application/x-zot+json';
$data = base64url_encode(json_encode($data,true),true); // strip padding
$encoding = 'base64url';
$algorithm = 'RSA-SHA256';
@@ -18,9 +16,9 @@ class JSalmon {
// precomputed base64url encoding of data_type, encoding, algorithm concatenated with periods
$precomputed = '.' . base64url_encode($data_type,false) . '.YmFzZTY0dXJs.UlNBLVNIQTI1Ng==';
$precomputed = '.' . base64url_encode($data_type,true) . '.YmFzZTY0dXJs.UlNBLVNIQTI1Ng';
$signature = base64url_encode(rsa_sign($data . $precomputed, $key), false);
$signature = base64url_encode(rsa_sign($data . $precomputed, $key), true);
return ([
'signed' => true,
@@ -30,9 +28,45 @@ class JSalmon {
'alg' => $algorithm,
'sigs' => [
'value' => $signature,
'key_id' => base64url_encode($key_id)
'key_id' => base64url_encode($key_id, true)
]
]);
}
static function verify($x) {
logger('verify');
$ret = [ 'results' => [] ];
if(! is_array($x)) {
return $false;
}
if(! ( array_key_exists('signed',$x) && $x['signed'])) {
return $false;
}
$signed_data = preg_replace('/\s+/','',$x['data']) . '.'
. base64url_encode($x['data_type'],true) . '.'
. base64url_encode($x['encoding'],true) . '.'
. base64url_encode($x['alg'],true);
$key = HTTPSig::get_key(EMPTY_STR,base64url_decode($x['sigs']['key_id']));
logger('key: ' . print_r($key,true));
if($key['portable_id'] && $key['public_key']) {
if(rsa_verify($signed_data,base64url_decode($x['sigs']['value']),$key['public_key'])) {
logger('verified');
$ret = [ 'success' => true, 'signer' => $key['portable_id'], 'hubloc' => $key['hubloc'] ];
}
}
return $ret;
}
static function unpack($data) {
return json_decode(base64url_decode($data),true);
}
}

1019
Zotlabs/Lib/Libsync.php Normal file

File diff suppressed because it is too large Load Diff

3123
Zotlabs/Lib/Libzot.php Normal file

File diff suppressed because it is too large Load Diff

654
Zotlabs/Lib/Libzotdir.php Normal file
View File

@@ -0,0 +1,654 @@
<?php
namespace Zotlabs\Lib;
use Zotlabs\Lib\Libzot;
require_once('include/permissions.php');
class Libzotdir {
/**
* @brief
*
* @param int $dirmode
* @return array
*/
static function find_upstream_directory($dirmode) {
global $DIRECTORY_FALLBACK_SERVERS;
$preferred = get_config('system','directory_server');
// Thwart attempts to use a private directory
if(($preferred) && ($preferred != z_root())) {
$r = q("select * from site where site_url = '%s' limit 1",
dbesc($preferred)
);
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STANDALONE)) {
$preferred = '';
}
}
if (! $preferred) {
/*
* No directory has yet been set. For most sites, pick one at random
* from our list of directory servers. However, if we're a directory
* server ourself, point at the local instance
* We will then set this value so this should only ever happen once.
* Ideally there will be an admin setting to change to a different
* directory server if you don't like our choice or if circumstances change.
*/
$dirmode = intval(get_config('system','directory_mode'));
if ($dirmode == DIRECTORY_MODE_NORMAL) {
$toss = mt_rand(0,count($DIRECTORY_FALLBACK_SERVERS));
$preferred = $DIRECTORY_FALLBACK_SERVERS[$toss];
if(! $preferred) {
$preferred = DIRECTORY_FALLBACK_MASTER;
}
set_config('system','directory_server',$preferred);
}
else {
set_config('system','directory_server',z_root());
}
}
if($preferred) {
return [ 'url' => $preferred ];
}
else {
return [];
}
}
/**
* Directories may come and go over time. We will need to check that our
* directory server is still valid occasionally, and reset to something that
* is if our directory has gone offline for any reason
*/
static function check_upstream_directory() {
$directory = get_config('system', 'directory_server');
// it's possible there is no directory server configured and the local hub is being used.
// If so, default to preserving the absence of a specific server setting.
$isadir = true;
if ($directory) {
$j = Zotfinger::exec($directory);
if(array_path_exists('data/directory_mode',$j)) {
if ($j['data']['directory_mode'] === 'normal') {
$isadir = false;
}
}
}
if (! $isadir)
set_config('system', 'directory_server', '');
}
static function get_directory_setting($observer, $setting) {
if ($observer)
$ret = get_xconfig($observer, 'directory', $setting);
else
$ret = ((array_key_exists($setting,$_SESSION)) ? intval($_SESSION[$setting]) : false);
if($ret === false)
$ret = get_config('directory', $setting);
// 'safemode' is the default if there is no observer or no established preference.
if($setting === 'safemode' && $ret === false)
$ret = 1;
if($setting === 'globaldir' && intval(get_config('system','localdir_hide')))
$ret = 1;
return $ret;
}
/**
* @brief Called by the directory_sort widget.
*/
static function dir_sort_links() {
$safe_mode = 1;
$observer = get_observer_hash();
$safe_mode = self::get_directory_setting($observer, 'safemode');
$globaldir = self::get_directory_setting($observer, 'globaldir');
$pubforums = self::get_directory_setting($observer, 'pubforums');
$hide_local = intval(get_config('system','localdir_hide'));
if($hide_local)
$globaldir = 1;
// Build urls without order and pubforums so it's easy to tack on the changed value
// Probably there's an easier way to do this
$directory_sort_order = get_config('system','directory_sort_order');
if(! $directory_sort_order)
$directory_sort_order = 'date';
$current_order = (($_REQUEST['order']) ? $_REQUEST['order'] : $directory_sort_order);
$suggest = (($_REQUEST['suggest']) ? '&suggest=' . $_REQUEST['suggest'] : '');
$url = 'directory?f=';
$tmp = array_merge($_GET,$_POST);
unset($tmp['suggest']);
unset($tmp['pubforums']);
unset($tmp['global']);
unset($tmp['safe']);
unset($tmp['q']);
unset($tmp['f']);
$forumsurl = $url . http_build_query($tmp) . $suggest;
$o = replace_macros(get_markup_template('dir_sort_links.tpl'), [
'$header' => t('Directory Options'),
'$forumsurl' => $forumsurl,
'$safemode' => array('safemode', t('Safe Mode'),$safe_mode,'',array(t('No'), t('Yes')),' onchange=\'window.location.href="' . $forumsurl . '&safe="+(this.checked ? 1 : 0)\''),
'$pubforums' => array('pubforums', t('Public Forums Only'),$pubforums,'',array(t('No'), t('Yes')),' onchange=\'window.location.href="' . $forumsurl . '&pubforums="+(this.checked ? 1 : 0)\''),
'$hide_local' => $hide_local,
'$globaldir' => array('globaldir', t('This Website Only'), 1-intval($globaldir),'',array(t('No'), t('Yes')),' onchange=\'window.location.href="' . $forumsurl . '&global="+(this.checked ? 0 : 1)\''),
]);
return $o;
}
/**
* @brief Checks the directory mode of this hub.
*
* Checks the directory mode of this hub to see if it is some form of directory server. If it is,
* get the directory realm of this hub. Fetch a list of all other directory servers in this realm and request
* a directory sync packet. This will contain both directory updates and new ratings. Store these all in the DB.
* In the case of updates, we will query each of them asynchronously from a poller task. Ratings are stored
* directly if the rater's signature matches.
*
* @param int $dirmode;
*/
static function sync_directories($dirmode) {
if ($dirmode == DIRECTORY_MODE_STANDALONE || $dirmode == DIRECTORY_MODE_NORMAL)
return;
$realm = get_directory_realm();
if ($realm == DIRECTORY_REALM) {
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d and ( site_realm = '%s' or site_realm = '') ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
intval(SITE_TYPE_ZOT),
dbesc($realm)
);
}
else {
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' and site_type = %d ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc(protect_sprintf('%' . $realm . '%')),
intval(SITE_TYPE_ZOT)
);
}
// If there are no directory servers, setup the fallback master
/** @FIXME What to do if we're in a different realm? */
if ((! $r) && (z_root() != DIRECTORY_FALLBACK_MASTER)) {
$x = site_store_lowlevel(
[
'site_url' => DIRECTORY_FALLBACK_MASTER,
'site_flags' => DIRECTORY_MODE_PRIMARY,
'site_update' => NULL_DATE,
'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch',
'site_realm' => DIRECTORY_REALM,
'site_valid' => 1,
]
);
$r = q("select * from site where site_flags in (%d, %d) and site_url != '%s' and site_type = %d ",
intval(DIRECTORY_MODE_PRIMARY),
intval(DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
intval(SITE_TYPE_ZOT)
);
}
if (! $r)
return;
foreach ($r as $rr) {
if (! $rr['site_directory'])
continue;
logger('sync directories: ' . $rr['site_directory']);
// for brand new directory servers, only load the last couple of days.
// It will take about a month for a new directory to obtain the full current repertoire of channels.
/** @FIXME Go back and pick up earlier ratings if this is a new directory server. These do not get refreshed. */
$token = get_config('system','realm_token');
$syncdate = (($rr['site_sync'] <= NULL_DATE) ? datetime_convert('UTC','UTC','now - 2 days') : $rr['site_sync']);
$x = z_fetch_url($rr['site_directory'] . '?f=&sync=' . urlencode($syncdate) . (($token) ? '&t=' . $token : ''));
if (! $x['success'])
continue;
$j = json_decode($x['body'],true);
if (!($j['transactions']) || ($j['ratings']))
continue;
q("update site set site_sync = '%s' where site_url = '%s'",
dbesc(datetime_convert()),
dbesc($rr['site_url'])
);
logger('sync_directories: ' . $rr['site_url'] . ': ' . print_r($j,true), LOGGER_DATA);
if (is_array($j['transactions']) && count($j['transactions'])) {
foreach ($j['transactions'] as $t) {
$r = q("select * from updates where ud_guid = '%s' limit 1",
dbesc($t['transaction_id'])
);
if($r)
continue;
$ud_flags = 0;
if (is_array($t['flags']) && in_array('deleted',$t['flags']))
$ud_flags |= UPDATE_FLAGS_DELETED;
if (is_array($t['flags']) && in_array('forced',$t['flags']))
$ud_flags |= UPDATE_FLAGS_FORCED;
$z = q("insert into updates ( ud_hash, ud_guid, ud_date, ud_flags, ud_addr )
values ( '%s', '%s', '%s', %d, '%s' ) ",
dbesc($t['hash']),
dbesc($t['transaction_id']),
dbesc($t['timestamp']),
intval($ud_flags),
dbesc($t['address'])
);
}
}
}
}
/**
* @brief
*
* Given an update record, probe the channel, grab a zot-info packet and refresh/sync the data.
*
* Ignore updating records marked as deleted.
*
* If successful, sets ud_last in the DB to the current datetime for this
* reddress/webbie.
*
* @param array $ud Entry from update table
*/
static function update_directory_entry($ud) {
logger('update_directory_entry: ' . print_r($ud,true), LOGGER_DATA);
if ($ud['ud_addr'] && (! ($ud['ud_flags'] & UPDATE_FLAGS_DELETED))) {
$success = false;
$href = \Zotlabs\Lib\Webfinger::zot_url(punify($ud['ud_addr']));
if($href) {
$zf = \Zotlabs\Lib\Zotfinger::exec($href);
}
if(is_array($zf) && array_path_exists('signature/signer',$zf) && $zf['signature']['signer'] === $href && intval($zf['signature']['header_valid'])) {
$xc = Libzot::import_xchan($zf['data'], 0, $ud);
}
else {
q("update updates set ud_last = '%s' where ud_addr = '%s'",
dbesc(datetime_convert()),
dbesc($ud['ud_addr'])
);
}
}
}
/**
* @brief Push local channel updates to a local directory server.
*
* This is called from include/directory.php if a profile is to be pushed to the
* directory and the local hub in this case is any kind of directory server.
*
* @param int $uid
* @param boolean $force
*/
static function local_dir_update($uid, $force) {
logger('local_dir_update: uid: ' . $uid, LOGGER_DEBUG);
$p = q("select channel.channel_hash, channel_address, channel_timezone, profile.* from profile left join channel on channel_id = uid where uid = %d and is_default = 1",
intval($uid)
);
$profile = array();
$profile['encoding'] = 'zot';
if ($p) {
$hash = $p[0]['channel_hash'];
$profile['description'] = $p[0]['pdesc'];
$profile['birthday'] = $p[0]['dob'];
if ($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
$profile['age'] = $age;
$profile['gender'] = $p[0]['gender'];
$profile['marital'] = $p[0]['marital'];
$profile['sexual'] = $p[0]['sexual'];
$profile['locale'] = $p[0]['locality'];
$profile['region'] = $p[0]['region'];
$profile['postcode'] = $p[0]['postal_code'];
$profile['country'] = $p[0]['country_name'];
$profile['about'] = $p[0]['about'];
$profile['homepage'] = $p[0]['homepage'];
$profile['hometown'] = $p[0]['hometown'];
if ($p[0]['keywords']) {
$tags = array();
$k = explode(' ', $p[0]['keywords']);
if ($k)
foreach ($k as $kk)
if (trim($kk))
$tags[] = trim($kk);
if ($tags)
$profile['keywords'] = $tags;
}
$hidden = (1 - intval($p[0]['publish']));
logger('hidden: ' . $hidden);
$r = q("select xchan_hidden from xchan where xchan_hash = '%s' limit 1",
dbesc($p[0]['channel_hash'])
);
if(intval($r[0]['xchan_hidden']) != $hidden) {
$r = q("update xchan set xchan_hidden = %d where xchan_hash = '%s'",
intval($hidden),
dbesc($p[0]['channel_hash'])
);
}
$arr = [ 'channel_id' => $uid, 'hash' => $hash, 'profile' => $profile ];
call_hooks('local_dir_update', $arr);
$address = channel_reddress($p[0]);
if (perm_is_allowed($uid, '', 'view_profile')) {
self::import_directory_profile($hash, $arr['profile'], $address, 0);
}
else {
// they may have made it private
$r = q("delete from xprof where xprof_hash = '%s'",
dbesc($hash)
);
$r = q("delete from xtag where xtag_hash = '%s'",
dbesc($hash)
);
}
}
$ud_hash = random_string() . '@' . \App::get_hostname();
self::update_modtime($hash, $ud_hash, channel_reddress($p[0]),(($force) ? UPDATE_FLAGS_FORCED : UPDATE_FLAGS_UPDATED));
}
/**
* @brief Imports a directory profile.
*
* @param string $hash
* @param array $profile
* @param string $addr
* @param number $ud_flags (optional) UPDATE_FLAGS_UPDATED
* @param number $suppress_update (optional) default 0
* @return boolean $updated if something changed
*/
static function import_directory_profile($hash, $profile, $addr, $ud_flags = UPDATE_FLAGS_UPDATED, $suppress_update = 0) {
logger('import_directory_profile', LOGGER_DEBUG);
if (! $hash)
return false;
$arr = array();
$arr['xprof_hash'] = $hash;
$arr['xprof_dob'] = (($profile['birthday'] === '0000-00-00') ? $profile['birthday'] : datetime_convert('','',$profile['birthday'],'Y-m-d')); // !!!! check this for 0000 year
$arr['xprof_age'] = (($profile['age']) ? intval($profile['age']) : 0);
$arr['xprof_desc'] = (($profile['description']) ? htmlspecialchars($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_gender'] = (($profile['gender']) ? htmlspecialchars($profile['gender'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_marital'] = (($profile['marital']) ? htmlspecialchars($profile['marital'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_sexual'] = (($profile['sexual']) ? htmlspecialchars($profile['sexual'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_locale'] = (($profile['locale']) ? htmlspecialchars($profile['locale'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_region'] = (($profile['region']) ? htmlspecialchars($profile['region'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_postcode'] = (($profile['postcode']) ? htmlspecialchars($profile['postcode'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_country'] = (($profile['country']) ? htmlspecialchars($profile['country'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_about'] = (($profile['about']) ? htmlspecialchars($profile['about'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_homepage'] = (($profile['homepage']) ? htmlspecialchars($profile['homepage'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_hometown'] = (($profile['hometown']) ? htmlspecialchars($profile['hometown'], ENT_COMPAT,'UTF-8',false) : '');
$clean = array();
if (array_key_exists('keywords', $profile) and is_array($profile['keywords'])) {
self::import_directory_keywords($hash,$profile['keywords']);
foreach ($profile['keywords'] as $kw) {
$kw = trim(htmlspecialchars($kw,ENT_COMPAT, 'UTF-8', false));
$kw = trim($kw, ',');
$clean[] = $kw;
}
}
$arr['xprof_keywords'] = implode(' ',$clean);
// Self censored, make it so
// These are not translated, so the German "erwachsenen" keyword will not censor the directory profile. Only the English form - "adult".
if(in_arrayi('nsfw',$clean) || in_arrayi('adult',$clean)) {
q("update xchan set xchan_selfcensored = 1 where xchan_hash = '%s'",
dbesc($hash)
);
}
$r = q("select * from xprof where xprof_hash = '%s' limit 1",
dbesc($hash)
);
if ($arr['xprof_age'] > 150)
$arr['xprof_age'] = 150;
if ($arr['xprof_age'] < 0)
$arr['xprof_age'] = 0;
if ($r) {
$update = false;
foreach ($r[0] as $k => $v) {
if ((array_key_exists($k,$arr)) && ($arr[$k] != $v)) {
logger('import_directory_profile: update ' . $k . ' => ' . $arr[$k]);
$update = true;
break;
}
}
if ($update) {
q("update xprof set
xprof_desc = '%s',
xprof_dob = '%s',
xprof_age = %d,
xprof_gender = '%s',
xprof_marital = '%s',
xprof_sexual = '%s',
xprof_locale = '%s',
xprof_region = '%s',
xprof_postcode = '%s',
xprof_country = '%s',
xprof_about = '%s',
xprof_homepage = '%s',
xprof_hometown = '%s',
xprof_keywords = '%s'
where xprof_hash = '%s'",
dbesc($arr['xprof_desc']),
dbesc($arr['xprof_dob']),
intval($arr['xprof_age']),
dbesc($arr['xprof_gender']),
dbesc($arr['xprof_marital']),
dbesc($arr['xprof_sexual']),
dbesc($arr['xprof_locale']),
dbesc($arr['xprof_region']),
dbesc($arr['xprof_postcode']),
dbesc($arr['xprof_country']),
dbesc($arr['xprof_about']),
dbesc($arr['xprof_homepage']),
dbesc($arr['xprof_hometown']),
dbesc($arr['xprof_keywords']),
dbesc($arr['xprof_hash'])
);
}
} else {
$update = true;
logger('New profile');
q("insert into xprof (xprof_hash, xprof_desc, xprof_dob, xprof_age, xprof_gender, xprof_marital, xprof_sexual, xprof_locale, xprof_region, xprof_postcode, xprof_country, xprof_about, xprof_homepage, xprof_hometown, xprof_keywords) values ('%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ",
dbesc($arr['xprof_hash']),
dbesc($arr['xprof_desc']),
dbesc($arr['xprof_dob']),
intval($arr['xprof_age']),
dbesc($arr['xprof_gender']),
dbesc($arr['xprof_marital']),
dbesc($arr['xprof_sexual']),
dbesc($arr['xprof_locale']),
dbesc($arr['xprof_region']),
dbesc($arr['xprof_postcode']),
dbesc($arr['xprof_country']),
dbesc($arr['xprof_about']),
dbesc($arr['xprof_homepage']),
dbesc($arr['xprof_hometown']),
dbesc($arr['xprof_keywords'])
);
}
$d = [
'xprof' => $arr,
'profile' => $profile,
'update' => $update
];
/**
* @hooks import_directory_profile
* Called when processing delivery of a profile structure from an external source (usually for directory storage).
* * \e array \b xprof
* * \e array \b profile
* * \e boolean \b update
*/
call_hooks('import_directory_profile', $d);
if (($d['update']) && (! $suppress_update))
self::update_modtime($arr['xprof_hash'],random_string() . '@' . \App::get_hostname(), $addr, $ud_flags);
return $d['update'];
}
/**
* @brief
*
* @param string $hash An xtag_hash
* @param array $keywords
*/
static function import_directory_keywords($hash, $keywords) {
$existing = array();
$r = q("select * from xtag where xtag_hash = '%s' and xtag_flags = 0",
dbesc($hash)
);
if($r) {
foreach($r as $rr)
$existing[] = $rr['xtag_term'];
}
$clean = array();
foreach($keywords as $kw) {
$kw = trim(htmlspecialchars($kw,ENT_COMPAT, 'UTF-8', false));
$kw = trim($kw, ',');
$clean[] = $kw;
}
foreach($existing as $x) {
if(! in_array($x, $clean))
$r = q("delete from xtag where xtag_hash = '%s' and xtag_term = '%s' and xtag_flags = 0",
dbesc($hash),
dbesc($x)
);
}
foreach($clean as $x) {
if(! in_array($x, $existing)) {
$r = q("insert into xtag ( xtag_hash, xtag_term, xtag_flags) values ( '%s' ,'%s', 0 )",
dbesc($hash),
dbesc($x)
);
}
}
}
/**
* @brief
*
* @param string $hash
* @param string $guid
* @param string $addr
* @param int $flags (optional) default 0
*/
static function update_modtime($hash, $guid, $addr, $flags = 0) {
$dirmode = intval(get_config('system', 'directory_mode'));
if($dirmode == DIRECTORY_MODE_NORMAL)
return;
if($flags) {
q("insert into updates (ud_hash, ud_guid, ud_date, ud_flags, ud_addr ) values ( '%s', '%s', '%s', %d, '%s' )",
dbesc($hash),
dbesc($guid),
dbesc(datetime_convert()),
intval($flags),
dbesc($addr)
);
}
else {
q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d)>0 ",
intval(UPDATE_FLAGS_UPDATED),
dbesc($addr),
intval(UPDATE_FLAGS_UPDATED)
);
}
}
}

View File

@@ -3,51 +3,66 @@
namespace Zotlabs\Lib;
/**
* MarkdownSoap
* @brief MarkdownSoap class.
*
* Purify Markdown for storage
* @code{.php}
* $x = new MarkdownSoap($string_to_be_cleansed);
* $text = $x->clean();
*
* @endcode
* What this does:
* 1. extracts code blocks and privately escapes them from processing
* 2. Run html purifier on the content
* 3. put back the code blocks
* 4. run htmlspecialchars on the entire content for safe storage
*
* At render time:
* At render time:
* @code{.php}
* $markdown = \Zotlabs\Lib\MarkdownSoap::unescape($text);
* $html = \Michelf\MarkdownExtra::DefaultTransform($markdown);
* @endcode
*/
class MarkdownSoap {
/**
* @var string
*/
private $str;
/**
* @var string
*/
private $token;
private $str;
function __construct($s) {
$this->str = $s;
$this->str = $s;
$this->token = random_string(20);
}
function clean() {
$x = $this->extract_code($this->str);
$x = $this->purify($x);
$x = $this->putback_code($x);
$x = $this->putback_code($x);
$x = $this->escape($x);
return $x;
}
/**
* @brief Extracts code blocks and privately escapes them from processing.
*
* @see encode_code()
* @see putback_code()
*
* @param string $s
* @return string
*/
function extract_code($s) {
$text = preg_replace_callback('{
(?:\n\n|\A\n?)
( # $1 = the code block -- one or more lines, starting with a space/tab
@@ -62,7 +77,7 @@ class MarkdownSoap {
return $text;
}
function encode_code($matches) {
return $this->token . ';' . base64_encode($matches[0]) . ';' ;
}
@@ -71,8 +86,17 @@ class MarkdownSoap {
return base64_decode($matches[1]);
}
/**
* @brief Put back the code blocks.
*
* @see extract_code()
* @see decode_code()
*
* @param string $s
* @return string
*/
function putback_code($s) {
$text = preg_replace_callback('{' . $this->token . '\;(.*?)\;}xm',[ $this, 'decode_code' ], $s);
$text = preg_replace_callback('{' . $this->token . '\;(.*?)\;}xm', [ $this, 'decode_code' ], $s);
return $text;
}
@@ -84,20 +108,25 @@ class MarkdownSoap {
}
function protect_autolinks($s) {
$s = preg_replace('/\<(https?\:\/\/)(.*?)\>/','[$1$2]($1$2)',$s);
$s = preg_replace('/\<(https?\:\/\/)(.*?)\>/', '[$1$2]($1$2)', $s);
return $s;
}
function unprotect_autolinks($s) {
return $s;
}
function escape($s) {
return htmlspecialchars($s,ENT_QUOTES,'UTF-8',false);
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8', false);
}
/**
* @brief Converts special HTML entities back to characters.
*
* @param string $s
* @return string
*/
static public function unescape($s) {
return htmlspecialchars_decode($s,ENT_QUOTES);
return htmlspecialchars_decode($s, ENT_QUOTES);
}
}

View File

@@ -0,0 +1,93 @@
<?php
namespace Zotlabs\Lib;
class MessageFilter {
static public function evaluate($item,$incl,$excl) {
require_once('include/html2plain.php');
unobscure($item);
$text = prepare_text($item['body'],$item['mimetype']);
$text = html2plain(($item['title']) ? $item['title'] . ' ' . $text : $text);
$lang = null;
if((strpos($incl,'lang=') !== false) || (strpos($excl,'lang=') !== false) || (strpos($incl,'lang!=') !== false) || (strpos($excl,'lang!=') !== false)) {
$lang = detect_language($text);
}
$tags = ((is_array($item['term']) && count($item['term'])) ? $item['term'] : false);
// exclude always has priority
$exclude = (($excl) ? explode("\n",$excl) : null);
if($exclude) {
foreach($exclude as $word) {
$word = trim($word);
if(! $word)
continue;
if(substr($word,0,1) === '#' && $tags) {
foreach($tags as $t)
if((($t['ttype'] == TERM_HASHTAG) || ($t['ttype'] == TERM_COMMUNITYTAG)) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*')))
return false;
}
elseif(substr($word,0,1) === '$' && $tags) {
foreach($tags as $t)
if(($t['ttype'] == TERM_CATEGORY) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*')))
return false;
}
elseif((strpos($word,'/') === 0) && preg_match($word,$text))
return false;
elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0))
return false;
elseif((strpos($word,'lang!=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,6))) != 0))
return false;
elseif(stristr($text,$word) !== false)
return false;
}
}
$include = (($incl) ? explode("\n",$incl) : null);
if($include) {
foreach($include as $word) {
$word = trim($word);
if(! $word)
continue;
if(substr($word,0,1) === '#' && $tags) {
foreach($tags as $t)
if((($t['ttype'] == TERM_HASHTAG) || ($t['ttype'] == TERM_COMMUNITYTAG)) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*')))
return true;
}
elseif(substr($word,0,1) === '$' && $tags) {
foreach($tags as $t)
if(($t['ttype'] == TERM_CATEGORY) && (($t['term'] === substr($word,1)) || (substr($word,1) === '*')))
return true;
}
elseif((strpos($word,'/') === 0) && preg_match($word,$text))
return true;
elseif((strpos($word,'lang=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,5))) == 0))
return true;
elseif((strpos($word,'lang!=') === 0) && ($lang) && (strcasecmp($lang,trim(substr($word,6))) != 0))
return true;
elseif(stristr($text,$word) !== false)
return true;
}
}
else {
return true;
}
return false;
}
}

View File

@@ -26,7 +26,8 @@ class NativeWiki {
$w['rawName'] = get_iconfig($w, 'wiki', 'rawName');
$w['htmlName'] = escape_tags($w['rawName']);
$w['urlName'] = urlencode(urlencode($w['rawName']));
//$w['urlName'] = urlencode(urlencode($w['rawName']));
$w['urlName'] = self::name_encode($w['rawName']);
$w['mimeType'] = get_iconfig($w, 'wiki', 'mimeType');
$w['typelock'] = get_iconfig($w, 'wiki', 'typelock');
$w['lockstate'] = (($w['allow_cid'] || $w['allow_gid'] || $w['deny_cid'] || $w['deny_gid']) ? 'lock' : 'unlock');
@@ -39,26 +40,17 @@ class NativeWiki {
function create_wiki($channel, $observer_hash, $wiki, $acl) {
// Generate unique resource_id using the same method as item_message_id()
do {
$dups = false;
$resource_id = random_string();
$r = q("SELECT mid FROM item WHERE resource_id = '%s' AND resource_type = '%s' AND uid = %d LIMIT 1",
dbesc($resource_id),
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
intval($channel['channel_id'])
);
if($r)
$dups = true;
} while($dups == true);
$resource_id = new_uuid();
$uuid = new_uuid();
$ac = $acl->get();
$mid = item_message_id();
$mid = z_root() . '/item/' . $uuid;
$arr = array(); // Initialize the array of parameters for the post
$item_hidden = ((intval($wiki['postVisible']) === 0) ? 1 : 0);
$wiki_url = z_root() . '/wiki/' . $channel['channel_address'] . '/' . $wiki['urlName'];
$arr['aid'] = $channel['channel_account_id'];
$arr['uuid'] = $uuid;
$arr['uid'] = $channel['channel_id'];
$arr['mid'] = $mid;
$arr['parent_mid'] = $mid;
@@ -171,16 +163,23 @@ class NativeWiki {
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
dbesc($resource_id)
);
if($r) {
$q = q("select * from item where resource_type = 'nwikipage' and resource_id = '%s'",
dbesc($r[0]['resource_type'])
dbesc($r[0]['resource_id'])
);
if($q) {
$r = array_merge($r,$q);
}
xchan_query($r);
$sync_item = fetch_post_tags($r);
build_sync_packet($uid,array('wiki' => array(encode_item($sync_item[0],true))));
if($sync_item) {
$pkt = [];
foreach($sync_item as $w) {
$pkt[] = encode_item($w,true);
}
build_sync_packet($uid,array('wiki' => $pkt));
}
}
}
@@ -226,7 +225,8 @@ class NativeWiki {
'wiki' => $w,
'rawName' => $rawName,
'htmlName' => escape_tags($rawName),
'urlName' => urlencode(urlencode($rawName)),
//'urlName' => urlencode(urlencode($rawName)),
'urlName' => self::name_encode($rawName),
'mimeType' => $mimeType,
'typelock' => $typelock
);
@@ -242,7 +242,8 @@ class NativeWiki {
WHERE resource_type = '%s' AND iconfig.v = '%s' AND uid = %d
AND item_deleted = 0 $sql_extra limit 1",
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
dbesc(urldecode($urlName)),
//dbesc(urldecode($urlName)),
dbesc(self::name_decode($urlName)),
intval($uid)
);
@@ -279,4 +280,32 @@ class NativeWiki {
return array('read' => true, 'write' => $write, 'success' => true);
}
}
public static function name_encode ($string) {
$string = html_entity_decode($string);
$encoding = mb_internal_encoding();
mb_internal_encoding("UTF-8");
$ret = mb_ereg_replace_callback ('[^A-Za-z0-9\-\_\.\~]',function ($char) {
$charhex = unpack('H*',$char[0]);
$ret = '('.$charhex[1].')';
return $ret;
}
,$string);
mb_internal_encoding($encoding);
return $ret;
}
public static function name_decode ($string) {
$encoding = mb_internal_encoding();
mb_internal_encoding("UTF-8");
$ret = mb_ereg_replace_callback ('(\(([0-9a-f]+)\))',function ($chars) {
return pack('H*',$chars[2]);
}
,$string);
mb_internal_encoding($encoding);
return $ret;
}
}

View File

@@ -44,7 +44,8 @@ class NativeWikiPage {
$pages[] = [
'resource_id' => $resource_id,
'title' => escape_tags($title),
'url' => str_replace('%2F','/',urlencode(str_replace('%2F','/',urlencode($title)))),
//'url' => str_replace('%2F','/',urlencode(str_replace('%2F','/',urlencode($title)))),
'url' => Zlib\NativeWiki::name_encode($title),
'link_id' => 'id_' . substr($resource_id, 0, 10) . '_' . $page_item['id']
];
}
@@ -98,7 +99,8 @@ class NativeWikiPage {
$page = [
'rawName' => $name,
'htmlName' => escape_tags($name),
'urlName' => urlencode($name),
//'urlName' => urlencode($name),
'urlName' => Zlib\NativeWiki::name_encode($name)
];
@@ -154,7 +156,8 @@ class NativeWikiPage {
$page = [
'rawName' => $pageNewName,
'htmlName' => escape_tags($pageNewName),
'urlName' => urlencode(escape_tags($pageNewName))
//'urlName' => urlencode(escape_tags($pageNewName))
'urlName' => Zlib\NativeWiki::name_encode($pageNewName)
];
return [ 'success' => true, 'page' => $page ];
@@ -365,7 +368,6 @@ class NativeWikiPage {
unset($item['id']);
unset($item['author']);
$item['parent'] = 0;
$item['body'] = $content;
$item['author_xchan'] = $observer_hash;
@@ -527,7 +529,8 @@ class NativeWikiPage {
$pages = $pageURLs = array();
foreach ($match[1] as $m) {
// TODO: Why do we need to double urlencode for this to work?
$pageURLs[] = urlencode(urlencode(escape_tags($m)));
//$pageURLs[] = urlencode(urlencode(escape_tags($m)));
$pageURLs[] = Zlib\NativeWiki::name_encode(escape_tags($m));
$pages[] = $m;
}
$idx = 0;
@@ -556,7 +559,10 @@ class NativeWikiPage {
'$pageHistory' => $pageHistory['history'],
'$permsWrite' => $arr['permsWrite'],
'$name_lbl' => t('Name'),
'$msg_label' => t('Message','wiki_history')
'$msg_label' => t('Message','wiki_history'),
'$date_lbl' => t('Date'),
'$revert_btn' => t('Revert'),
'$compare_btn' => t('Compare')
));
}
@@ -613,7 +619,7 @@ class NativeWikiPage {
$s = str_replace('[observer.webname]', '', $s);
$s = str_replace('[observer.photo]', '', $s);
}
return $s;
}

View File

@@ -57,6 +57,7 @@ class PConfig {
\App::$config[$uid][$c]['config_loaded'] = true;
}
\App::$config[$uid][$c][$k] = $rr['v'];
\App::$config[$uid][$c]['pcfgud:'.$k] = $rr['updated'];
}
}
}
@@ -111,9 +112,11 @@ class PConfig {
* The configuration key to set
* @param string $value
* The value to store
* @param string $updated (optional)
* The datetime to store
* @return mixed Stored $value or false
*/
static public function Set($uid, $family, $key, $value) {
static public function Set($uid, $family, $key, $value, $updated = NULL) {
// this catches subtle errors where this function has been called
// with local_channel() when not logged in (which returns false)
@@ -130,29 +133,79 @@ class PConfig {
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
$now = datetime_convert();
if (! $updated) {
//Sometimes things happen fast... very fast.
//To make sure legitimate updates aren't rejected
//because not enough time has passed. We say our updates
//happened just a short time in the past rather than right now.
$updated = datetime_convert('UTC','UTC','-2 seconds');
}
$hash = hash('sha256',$family.':'.$key);
if (self::Get($uid, 'hz_delpconfig', $hash) !== false) {
if (self::Get($uid, 'hz_delpconfig', $hash) > $now) {
logger('Refusing to update pconfig with outdated info (Item deleted more recently).', LOGGER_NORMAL, LOG_ERR);
return self::Get($uid,$family,$key);
} else {
self::Delete($uid,'hz_delpconfig',$hash);
}
}
if(self::Get($uid, $family, $key) === false) {
if(! array_key_exists($uid, \App::$config))
\App::$config[$uid] = array();
if(! array_key_exists($family, \App::$config[$uid]))
\App::$config[$uid][$family] = array();
$ret = q("INSERT INTO pconfig ( uid, cat, k, v ) VALUES ( %d, '%s', '%s', '%s' ) ",
$ret = q("INSERT INTO pconfig ( uid, cat, k, v, updated ) VALUES ( %d, '%s', '%s', '%s', '%s' ) ",
intval($uid),
dbesc($family),
dbesc($key),
dbesc($dbvalue)
dbesc($dbvalue),
dbesc($updated)
);
// There is a possible race condition if another process happens
// to insert something after this thread has Loaded and now. We should
// at least make a note of it if it happens.
if (!$ret) {
logger("Error: Insert to pconfig failed.",LOGGER_NORMAL, LOG_ERR);
}
\App::$config[$uid][$family]['pcfgud:'.$key] = $updated;
}
else {
$new = (\App::$config[$uid][$family]['pcfgud:'.$key] < $now);
$ret = q("UPDATE pconfig SET v = '%s' WHERE uid = %d and cat = '%s' AND k = '%s'",
dbesc($dbvalue),
intval($uid),
dbesc($family),
dbesc($key)
);
if ($new) {
// @NOTE There is still a possible race condition under limited circumstances
// where a value will be updated by another thread with more current data than
// we have. At this point there is no easy way to test for it, so we update
// and hope for the best.
$ret = q("UPDATE pconfig SET v = '%s', updated = '%s' WHERE uid = %d and cat = '%s' AND k = '%s' ",
dbesc($dbvalue),
dbesc($updated),
intval($uid),
dbesc($family),
dbesc($key)
);
\App::$config[$uid][$family]['pcfgud:'.$key] = $updated;
} else {
logger('Refusing to update pconfig with outdated info.', LOGGER_NORMAL, LOG_ERR);
return self::Get($uid, $family, $key);
}
}
// keep a separate copy for all variables which were
// set in the life of this page. We need this to
// synchronise channel clones.
@@ -163,7 +216,11 @@ class PConfig {
\App::$config[$uid]['transient'][$family] = array();
\App::$config[$uid][$family][$key] = $value;
\App::$config[$uid]['transient'][$family][$key] = $value;
if ($new) {
\App::$config[$uid]['transient'][$family][$key] = $value;
\App::$config[$uid]['transient'][$family]['pcfgud:'.$key] = $updated;
}
if($ret)
return $value;
@@ -184,20 +241,33 @@ class PConfig {
* The category of the configuration value
* @param string $key
* The configuration key to delete
* @return mixed
* @param string $updated (optional)
* The datetime to store
* @return boolean
*/
static public function Delete($uid, $family, $key) {
static public function Delete($uid, $family, $key, $updated = NULL) {
if(is_null($uid) || $uid === false)
return false;
$updated = ($updated) ? $updated : datetime_convert('UTC','UTC','-2 seconds');
$now = datetime_convert();
$newer = (\App::$config[$uid][$family]['pcfgud:'.$key] < $now);
if (! $newer) {
logger('Refusing to delete pconfig with outdated delete request.', LOGGER_NORMAL, LOG_ERR);
return false;
}
$ret = false;
if(array_key_exists($uid,\App::$config)
&& is_array(\App::$config['uid'])
&& array_key_exists($family,\App::$config['uid'])
&& array_key_exists($key, \App::$config[$uid][$family]))
if (isset(\App::$config[$uid][$family][$key])) {
unset(\App::$config[$uid][$family][$key]);
}
if (isset(\App::$config[$uid][$family]['pcfgud:'.$key])) {
unset(\App::$config[$uid][$family]['pcfgud:'.$key]);
}
$ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s'",
intval($uid),
@@ -205,6 +275,13 @@ class PConfig {
dbesc($key)
);
// Synchronize delete with clones.
if ($family != 'hz_delpconfig') {
$hash = hash('sha256',$family.':'.$key);
set_pconfig($uid,'hz_delpconfig',$hash,$updated);
}
return $ret;
}

View File

@@ -2,12 +2,36 @@
namespace Zotlabs\Lib;
use \Zotlabs\Access as Zaccess;
use Zotlabs\Access\PermissionRoles;
use Zotlabs\Access\Permissions;
/**
* @brief Permission Categories. Permission rules for various classes of connections.
*
* Connection permissions answer the question "Can Joe view my photos?"
*
* Some permissions may be inherited from the channel's "privacy settings"
* (@ref ::Zotlabs::Access::PermissionLimits "PermissionLimits") "Who can view my
* photos (at all)?" which have higher priority than individual connection settings.
* We evaluate permission limits first, and then fall through to connection
* permissions if the permission limits didn't already make a definitive decision.
*
* After PermissionLimits and connection permissions are evaluated, individual
* content ACLs are evaluated (@ref ::Zotlabs::Access::AccessList "AccessList").
* These answer the question "Can Joe view *this* album/photo?".
*/
class Permcat {
/**
* @var array
*/
private $permcats = [];
/**
* @brief Permcat constructor.
*
* @param int $channel_id
*/
public function __construct($channel_id) {
$perms = [];
@@ -16,16 +40,16 @@ class Permcat {
$role = get_pconfig($channel_id,'system','permissions_role');
if($role) {
$x = Zaccess\PermissionRoles::role_perms($role);
$x = PermissionRoles::role_perms($role);
if($x['perms_connect']) {
$perms = Zaccess\Permissions::FilledPerms($x['perms_connect']);
$perms = Permissions::FilledPerms($x['perms_connect']);
}
}
// if no role perms it may be a custom role, see if there any autoperms
if(! $perms) {
$perms = Zaccess\Permissions::FilledAutoPerms($channel_id);
$perms = Permissions::FilledAutoPerms($channel_id);
}
// if no autoperms it may be a custom role with manual perms
@@ -50,13 +74,13 @@ class Permcat {
// nothing was found - create a filled permission array where all permissions are 0
if(! $perms) {
$perms = Zaccess\Permissions::FilledPerms([]);
$perms = Permissions::FilledPerms([]);
}
$this->permcats[] = [
'name' => 'default',
'localname' => t('default','permcat'),
'perms' => Zaccess\Permissions::Operms($perms),
'perms' => Permissions::Operms($perms),
'system' => 1
];
@@ -67,26 +91,39 @@ class Permcat {
$this->permcats[] = [
'name' => $p[$x][0],
'localname' => $p[$x][1],
'perms' => Zaccess\Permissions::Operms(Zaccess\Permissions::FilledPerms($p[$x][2])),
'perms' => Permissions::Operms(Permissions::FilledPerms($p[$x][2])),
'system' => intval($p[$x][3])
];
}
}
}
/**
* @brief Return array with permcats.
*
* @return array
*/
public function listing() {
return $this->permcats;
}
/**
* @brief
*
* @param string $name
* @return array
* * \e array with permcats
* * \e bool \b error if $name not found in permcats true
*/
public function fetch($name) {
if($name && $this->permcats) {
foreach($this->permcats as $permcat) {
if(strcasecmp($permcat['name'],$name) === 0) {
if(strcasecmp($permcat['name'], $name) === 0) {
return $permcat;
}
}
}
return ['error' => true];
}
@@ -118,29 +155,32 @@ class Permcat {
$permcats[] = [ $xv['k'], $xv['k'], $value, 0 ];
}
}
}
}
call_hooks('permcats',$permcats);
/**
* @hooks permcats
* * \e array
*/
call_hooks('permcats', $permcats);
return $permcats;
}
static public function find_permcat($arr,$name) {
static public function find_permcat($arr, $name) {
if((! $arr) || (! $name))
return false;
foreach($arr as $p)
if($p['name'] == $name)
return $p['value'];
}
static public function update($channel_id, $name,$permarr) {
PConfig::Set($channel_id,'permcat',$name,$permarr);
static public function update($channel_id, $name, $permarr) {
PConfig::Set($channel_id, 'permcat', $name, $permarr);
}
static public function delete($channel_id,$name) {
PConfig::Delete($channel_id,'permcat',$name);
static public function delete($channel_id, $name) {
PConfig::Delete($channel_id, 'permcat', $name);
}
}

View File

@@ -1,19 +0,0 @@
<?php /** @file */
namespace Zotlabs\Lib;
/*
* Abstraction class for dealing with alternate networks (which of course do not exist, hence the abstraction)
*/
abstract class ProtoDriver {
abstract protected function discover($channel,$location);
abstract protected function deliver($item,$channel,$recipients);
abstract protected function collect($channel,$connection);
abstract protected function change_permissions($permissions,$channel,$recipient);
abstract protected function acknowledge_permissions($permissions,$channel,$recipient);
abstract protected function deliver_private($item,$channel,$recipients);
abstract protected function collect_private($channel,$connection);
}

278
Zotlabs/Lib/Queue.php Normal file
View File

@@ -0,0 +1,278 @@
<?php /** @file */
namespace Zotlabs\Lib;
use Zotlabs\Lib\Libzot;
class Queue {
static function update($id, $add_priority = 0) {
logger('queue: requeue item ' . $id,LOGGER_DEBUG);
$x = q("select outq_created, outq_posturl from outq where outq_hash = '%s' limit 1",
dbesc($id)
);
if(! $x)
return;
$y = q("select min(outq_created) as earliest from outq where outq_posturl = '%s'",
dbesc($x[0]['outq_posturl'])
);
// look for the oldest queue entry with this destination URL. If it's older than a couple of days,
// the destination is considered to be down and only scheduled once an hour, regardless of the
// age of the current queue item.
$might_be_down = false;
if($y)
$might_be_down = ((datetime_convert('UTC','UTC',$y[0]['earliest']) < datetime_convert('UTC','UTC','now - 2 days')) ? true : false);
// Set all other records for this destination way into the future.
// The queue delivers by destination. We'll keep one queue item for
// this destination (this one) with a shorter delivery. If we succeed
// once, we'll try to deliver everything for that destination.
// The delivery will be set to at most once per hour, and if the
// queue item is less than 12 hours old, we'll schedule for fifteen
// minutes.
$r = q("UPDATE outq SET outq_scheduled = '%s' WHERE outq_posturl = '%s'",
dbesc(datetime_convert('UTC','UTC','now + 5 days')),
dbesc($x[0]['outq_posturl'])
);
$since = datetime_convert('UTC','UTC',$x[0]['outq_created']);
if(($might_be_down) || ($since < datetime_convert('UTC','UTC','now - 12 hour'))) {
$next = datetime_convert('UTC','UTC','now + 1 hour');
}
else {
$next = datetime_convert('UTC','UTC','now + ' . intval($add_priority) . ' minutes');
}
q("UPDATE outq SET outq_updated = '%s',
outq_priority = outq_priority + %d,
outq_scheduled = '%s'
WHERE outq_hash = '%s'",
dbesc(datetime_convert()),
intval($add_priority),
dbesc($next),
dbesc($id)
);
}
static function remove($id,$channel_id = 0) {
logger('queue: remove queue item ' . $id,LOGGER_DEBUG);
$sql_extra = (($channel_id) ? " and outq_channel = " . intval($channel_id) . " " : '');
q("DELETE FROM outq WHERE outq_hash = '%s' $sql_extra",
dbesc($id)
);
}
static function remove_by_posturl($posturl) {
logger('queue: remove queue posturl ' . $posturl,LOGGER_DEBUG);
q("DELETE FROM outq WHERE outq_posturl = '%s' ",
dbesc($posturl)
);
}
static function set_delivered($id,$channel = 0) {
logger('queue: set delivered ' . $id,LOGGER_DEBUG);
$sql_extra = (($channel_id) ? " and outq_channel = " . intval($channel_id) . " " : '');
// Set the next scheduled run date so far in the future that it will be expired
// long before it ever makes it back into the delivery chain.
q("update outq set outq_delivered = 1, outq_updated = '%s', outq_scheduled = '%s' where outq_hash = '%s' $sql_extra ",
dbesc(datetime_convert()),
dbesc(datetime_convert('UTC','UTC','now + 5 days')),
dbesc($id)
);
}
static function insert($arr) {
// do not queue anything with no destination
if(! (array_key_exists('posturl',$arr) && trim($arr['posturl']))) {
return false;
}
$x = q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_priority,
outq_created, outq_updated, outq_scheduled, outq_notify, outq_msg )
values ( '%s', %d, %d, '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s' )",
dbesc($arr['hash']),
intval($arr['account_id']),
intval($arr['channel_id']),
dbesc(($arr['driver']) ? $arr['driver'] : 'zot'),
dbesc($arr['posturl']),
intval(1),
intval(($arr['priority']) ? $arr['priority'] : 0),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($arr['notify']),
dbesc(($arr['msg']) ? $arr['msg'] : '')
);
return $x;
}
static function deliver($outq, $immediate = false) {
$base = null;
$h = parse_url($outq['outq_posturl']);
if($h !== false)
$base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
if(($base) && ($base !== z_root()) && ($immediate)) {
$y = q("select site_update, site_dead from site where site_url = '%s' ",
dbesc($base)
);
if($y) {
if(intval($y[0]['site_dead'])) {
self::remove_by_posturl($outq['outq_posturl']);
logger('dead site ignored ' . $base);
return;
}
if($y[0]['site_update'] < datetime_convert('UTC','UTC','now - 1 month')) {
self::update($outq['outq_hash'],10);
logger('immediate delivery deferred for site ' . $base);
return;
}
}
else {
// zot sites should all have a site record, unless they've been dead for as long as
// your site has existed. Since we don't know for sure what these sites are,
// call them unknown
site_store_lowlevel(
[
'site_url' => $base,
'site_update' => datetime_convert(),
'site_dead' => 0,
'site_type' => intval(($outq['outq_driver'] === 'post') ? SITE_TYPE_NOTZOT : SITE_TYPE_UNKNOWN),
'site_crypto' => ''
]
);
}
}
$arr = array('outq' => $outq, 'base' => $base, 'handled' => false, 'immediate' => $immediate);
call_hooks('queue_deliver',$arr);
if($arr['handled'])
return;
// "post" queue driver - used for diaspora and friendica-over-diaspora communications.
if($outq['outq_driver'] === 'post') {
$result = z_post_url($outq['outq_posturl'],$outq['outq_msg']);
if($result['success'] && $result['return_code'] < 300) {
logger('deliver: queue post success to ' . $outq['outq_posturl'], LOGGER_DEBUG);
if($base) {
q("update site set site_update = '%s', site_dead = 0 where site_url = '%s' ",
dbesc(datetime_convert()),
dbesc($base)
);
}
q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s'",
dbesc('accepted for delivery'),
dbesc(datetime_convert()),
dbesc($outq['outq_hash'])
);
self::remove($outq['outq_hash']);
// server is responding - see if anything else is going to this destination and is piled up
// and try to send some more. We're relying on the fact that do_delivery() results in an
// immediate delivery otherwise we could get into a queue loop.
if(! $immediate) {
$x = q("select outq_hash from outq where outq_posturl = '%s' and outq_delivered = 0",
dbesc($outq['outq_posturl'])
);
$piled_up = array();
if($x) {
foreach($x as $xx) {
$piled_up[] = $xx['outq_hash'];
}
}
if($piled_up) {
// call do_delivery() with the force flag
do_delivery($piled_up, true);
}
}
}
else {
logger('deliver: queue post returned ' . $result['return_code']
. ' from ' . $outq['outq_posturl'],LOGGER_DEBUG);
self::update($outq['outq_hash'],10);
}
return;
}
// normal zot delivery
logger('deliver: dest: ' . $outq['outq_posturl'], LOGGER_DEBUG);
if($outq['outq_posturl'] === z_root() . '/zot') {
// local delivery
$zot = new \Zotlabs\Zot6\Receiver(new \Zotlabs\Zot6\Zot6Handler(),$outq['outq_notify']);
$result = $zot->run(true);
logger('returned_json: ' . json_encode($result,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES), LOGGER_DATA);
logger('deliver: local zot delivery succeeded to ' . $outq['outq_posturl']);
Libzot::process_response($outq['outq_posturl'],[ 'success' => true, 'body' => json_encode($result) ], $outq);
}
else {
logger('remote');
$channel = null;
if($outq['outq_channel']) {
$channel = channelx_by_n($outq['outq_channel']);
}
$host_crypto = null;
if($channel && $base) {
$h = q("select hubloc_sitekey, site_crypto from hubloc left join site on hubloc_url = site_url where site_url = '%s' order by hubloc_id desc limit 1",
dbesc($base)
);
if($h) {
$host_crypto = $h[0];
}
}
$msg = $outq['outq_notify'];
$result = Libzot::zot($outq['outq_posturl'],$msg,$channel,$host_crypto);
if($result['success']) {
logger('deliver: remote zot delivery succeeded to ' . $outq['outq_posturl']);
Libzot::process_response($outq['outq_posturl'],$result, $outq);
}
else {
logger('deliver: remote zot delivery failed to ' . $outq['outq_posturl']);
logger('deliver: remote zot delivery fail data: ' . print_r($result,true), LOGGER_DATA);
self::update($outq['outq_hash'],10);
}
}
return;
}
}

144
Zotlabs/Lib/Share.php Normal file
View File

@@ -0,0 +1,144 @@
<?php
namespace Zotlabs\Lib;
class Share {
private $item = null;
public function __construct($post_id) {
if(! $post_id)
return;
if(! (local_channel() || remote_channel()))
return;
$r = q("SELECT * from item left join xchan on author_xchan = xchan_hash WHERE id = %d LIMIT 1",
intval($post_id)
);
if(! $r)
return;
if(($r[0]['item_private']) && ($r[0]['xchan_network'] !== 'rss'))
return;
$sql_extra = item_permissions_sql($r[0]['uid']);
$r = q("select * from item where id = %d $sql_extra",
intval($post_id)
);
if(! $r)
return;
if($r[0]['mimetype'] !== 'text/bbcode')
return;
/** @FIXME eventually we want to post remotely via rpost on your home site */
// When that works remove this next bit:
if(! local_channel())
return;
xchan_query($r);
$this->item = $r[0];
return;
}
public function obj() {
$obj = [];
if(! $this->item)
return $obj;
$obj['asld'] = $this->item['mid'];
$obj['type'] = $this->item['obj_type'];
$obj['id'] = $this->item['mid'];
$obj['content'] = $this->item['body'];
$obj['content_type'] = $this->item['mimetype'];
$obj['title'] = $this->item['title'];
$obj['created'] = $this->item['created'];
$obj['edited'] = $this->item['edited'];
$obj['author'] = [
'name' => $this->item['author']['xchan_name'],
'address' => $this->item['author']['xchan_addr'],
'network' => $this->item['author']['xchan_network'],
'link' => [
[
'rel' => 'alternate',
'type' => 'text/html',
'href' => $this->item['author']['xchan_url']
],
[
'rel' => 'photo',
'type' => $this->item['author']['xchan_photo_mimetype'],
'href' => $this->item['author']['xchan_photo_m']
]
]
];
$obj['owner'] = [
'name' => $this->item['owner']['xchan_name'],
'address' => $this->item['owner']['xchan_addr'],
'network' => $this->item['owner']['xchan_network'],
'link' => [
[
'rel' => 'alternate',
'type' => 'text/html',
'href' => $this->item['owner']['xchan_url']
],
[
'rel' => 'photo',
'type' => $this->item['owner']['xchan_photo_mimetype'],
'href' => $this->item['owner']['xchan_photo_m']
]
]
];
$obj['link'] = [
'rel' => 'alternate',
'type' => 'text/html',
'href' => $this->item['plink']
];
return $obj;
}
public function bbcode() {
$bb = EMPTY_STR;
if(! $this->item)
return $bb;
$is_photo = (($this->item['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false);
if($is_photo) {
$object = json_decode($this->item['obj'],true);
$photo_bb = $object['body'];
}
if (strpos($this->item['body'], "[/share]") !== false) {
$pos = strpos($this->item['body'], "[share");
$bb = substr($this->item['body'], $pos);
} else {
$bb = "[share author='".urlencode($this->item['author']['xchan_name']).
"' profile='" . $this->item['author']['xchan_url'] .
"' avatar='" . $this->item['author']['xchan_photo_s'] .
"' link='" . $this->item['plink'] .
"' auth='" . (($this->item['author']['network'] === 'zot') ? 'true' : 'false') .
"' posted='" . $this->item['created'] .
"' message_id='" . $this->item['mid'] .
"']";
if($this->item['title'])
$bb .= '[b]'.$this->item['title'].'[/b]'."\r\n";
$bb .= (($is_photo) ? $photo_bb . "\r\n" . $this->item['body'] : $this->item['body']);
$bb .= "[/share]";
}
return $bb;
}
}

View File

@@ -54,7 +54,7 @@ class System {
static public function get_project_srclink() {
if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['project_srclink'])
return \App::$config['system']['project_srclink'];
return 'https://github.com/redmatrix/hubzilla';
return 'https://framagit.org/hubzilla/core.git';
}
static public function get_server_role() {

View File

@@ -2,6 +2,8 @@
namespace Zotlabs\Lib;
use Zotlabs\Lib\Apps;
require_once('include/text.php');
/**
@@ -36,6 +38,9 @@ class ThreadItem {
$this->data = $data;
$this->toplevel = ($this->get_id() == $this->get_data_value('parent'));
$this->threaded = get_config('system','thread_allow');
$observer = \App::get_observer();
// Prepare the children
if($data['children']) {
@@ -49,6 +54,7 @@ class ThreadItem {
continue;
}
$child = new ThreadItem($item);
$this->add_child($child);
}
@@ -71,7 +77,7 @@ class ThreadItem {
* _ false on failure
*/
public function get_template_data($conv_responses, $thread_level=1) {
public function get_template_data($conv_responses, $thread_level=1, $conv_flags = []) {
$result = array();
@@ -96,12 +102,33 @@ class ThreadItem {
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
$shareable = ((($conv->get_profile_owner() == local_channel() && local_channel()) && ($item['item_private'] != 1)) ? true : false);
// allow an exemption for sharing stuff from your private feeds
if($item['author']['xchan_network'] === 'rss')
$shareable = true;
$privacy_warning = false;
if(($item['item_private'] == 1) && ($item['owner']['xchan_network'] === 'activitypub')) {
$recips = get_iconfig($item['parent'], 'activitypub', 'recips');
if(! in_array($observer['xchan_url'], $recips['to']))
$privacy_warning = true;
}
if ($lock) {
if (($item['mid'] == $item['parent_mid']) && count(get_terms_oftype($item['term'],TERM_FORUM))) {
$privacy_warning = true;
$conv_flags['parent_privacy_warning'] = true;
}
}
$privacy_warning = (isset($conv_flags['parent_privacy_warning'])) ? $conv_flags['parent_privacy_warning'] : $privacy_warning;
if ($lock && $privacy_warning) {
$lock = t('Privacy conflict. Discretion advised.');
}
$mode = $conv->get_mode();
@@ -141,6 +168,10 @@ class ThreadItem {
'delete' => t('Delete'),
);
}
elseif(is_site_admin()) {
$drop = [ 'dropping' => true, 'delete' => t('Admin Delete') ];
}
// FIXME
if($observer_is_pageowner) {
$multidrop = array(
@@ -232,16 +263,9 @@ class ThreadItem {
// FIXME check this permission
if(($conv->get_profile_owner() == local_channel()) && (! array_key_exists('real_uid',$item))) {
// FIXME we don't need all this stuff, some can be done in the template
$star = array(
'do' => t("Add Star"),
'undo' => t("Remove Star"),
'toggle' => t("Toggle Star Status"),
'classdo' => (intval($item['item_starred']) ? "hidden" : ""),
'classundo' => (intval($item['item_starred']) ? "" : "hidden"),
'isstarred' => (intval($item['item_starred']) ? "starred fa-star" : "unstarred fa-star-o"),
'starred' => t('starred'),
'isstarred' => ((intval($item['item_starred'])) ? true : false),
);
}
@@ -255,7 +279,7 @@ class ThreadItem {
$forged = ((($item['sig']) && (! intval($item['item_verified']))) ? t('Message signature incorrect') : '');
$unverified = '' ; // (($this->is_wall_to_wall() && (! intval($item['item_verified']))) ? t('Message cannot be verified') : '');
$settings = '';
// FIXME - check this permission
if($conv->get_profile_owner() == local_channel()) {
@@ -263,12 +287,14 @@ class ThreadItem {
'tagit' => t("Add Tag"),
'classtagger' => "",
);
$settings = t('Conversation Tools');
}
$has_bookmarks = false;
if(is_array($item['term'])) {
if(Apps::system_app_installed(local_channel(), 'Bookmarks') && is_array($item['term'])) {
foreach($item['term'] as $t) {
if((get_account_techlevel() > 0) && ($t['ttype'] == TERM_BOOKMARK))
if(($t['ttype'] == TERM_BOOKMARK))
$has_bookmarks = true;
}
}
@@ -280,10 +306,18 @@ class ThreadItem {
if($this->is_commentable() && $observer) {
$like = array( t("I like this \x28toggle\x29"), t("like"));
$dislike = array( t("I don't like this \x28toggle\x29"), t("dislike"));
$reply_to = array( t("Reply on this comment"), t("reply"), t("Reply to"));
}
if ($shareable)
$share = array( t('Share This'), t('share'));
if ($shareable) {
// This actually turns out not to be possible in some protocol stacks without opening up hundreds of new issues.
// Will allow it only for uri resolvable sources.
if(strpos($item['mid'],'http') === 0) {
$share = []; //Not yet ready for primetime
//$share = array( t('Repeat This'), t('repeat'));
}
$embed = array( t('Share This'), t('share'));
}
$dreport = '';
@@ -291,13 +325,14 @@ class ThreadItem {
if($keep_reports === 0)
$keep_reports = 10;
if((! get_config('system','disable_dreport')) && strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC',"now - $keep_reports days")) > 0)
if((! get_config('system','disable_dreport')) && strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC',"now - $keep_reports days")) > 0) {
$dreport = t('Delivery Report');
$dreport_link = gen_link_id($item['mid']);
}
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
$is_new = true;
localize_item($item);
$body = prepare_body($item,true);
@@ -308,19 +343,19 @@ class ThreadItem {
$owner_address = substr($item['owner']['xchan_addr'],0,strpos($item['owner']['xchan_addr'],'@'));
$viewthread = $item['llink'];
if($conv->get_mode() === 'channel')
$viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . urlencode($item['mid']);
$viewthread = z_root() . '/channel/' . $owner_address . '?f=&mid=' . urlencode(gen_link_id($item['mid']));
$comment_count_txt = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
$list_unseen_txt = (($unseen_comments) ? sprintf('%d unseen',$unseen_comments) : '');
$children = $this->get_children();
$has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false);
$dropdown_extras_arr = [ 'item' => $item , 'dropdown_extras' => '' ];
call_hooks('dropdown_extras',$dropdown_extras_arr);
$dropdown_extras = $dropdown_extras_arr['dropdown_extras'];
$tmp_item = array(
'template' => $this->get_template(),
'mode' => $mode,
@@ -335,13 +370,15 @@ class ThreadItem {
'text' => strip_tags($body['html']),
'id' => $this->get_id(),
'mid' => $item['mid'],
'parent' => $item['parent'],
'author_id' => (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url']),
'isevent' => $isevent,
'attend' => $attend,
'consensus' => $consensus,
'conlabels' => $conlabels,
'canvote' => $canvote,
'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']),
'olinktitle' => sprintf( t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']),
'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, (($item['author']['xchan_addr']) ? $item['author']['xchan_addr'] : $item['author']['xchan_url'])),
'olinktitle' => sprintf( t('View %s\'s profile - %s'), $this->get_owner_name(), (($item['owner']['xchan_addr']) ? $item['owner']['xchan_addr'] : $item['owner']['xchan_url'])),
'llink' => $item['llink'],
'viewthread' => $viewthread,
'to' => t('to'),
@@ -352,6 +389,7 @@ class ThreadItem {
'thread_action_menu' => thread_action_menu($item,$conv->get_mode()),
'thread_author_menu' => thread_author_menu($item,$conv->get_mode()),
'dreport' => $dreport,
'dreport_link' => $dreport_link,
'name' => $profile_name,
'thumb' => $profile_avatar,
'osparkle' => $osparkle,
@@ -366,6 +404,7 @@ class ThreadItem {
'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''),
'expiretime' => (($item['expires'] > NULL_DATE) ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'lock' => $lock,
'privacy_warning' => $privacy_warning,
'verified' => $verified,
'unverified' => $unverified,
'forged' => $forged,
@@ -385,22 +424,25 @@ class ThreadItem {
'has_tags' => $has_tags,
'reactions' => $this->reactions,
// Item toolbar buttons
'emojis' => (($this->is_toplevel() && $this->is_commentable() && $observer && feature_enabled($conv->get_profile_owner(),'emojis')) ? '1' : ''),
'emojis' => (($this->is_toplevel() && $this->is_commentable() && $observer && feature_enabled($conv->get_profile_owner(),'emojis')) ? '1' : ''),
'like' => $like,
'dislike' => ((feature_enabled($conv->get_profile_owner(),'dislike')) ? $dislike : ''),
'reply_to' => (((! $this->is_toplevel()) && feature_enabled($conv->get_profile_owner(),'reply_to')) ? $reply_to : ''),
'top_hint' => t("Go to previous comment"),
'share' => $share,
'embed' => $embed,
'rawmid' => $item['mid'],
'plink' => get_plink($item),
'edpost' => $edpost, // ((feature_enabled($conv->get_profile_owner(),'edit_posts')) ? $edpost : ''),
'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts')) ? $star : ''),
'star' => ((feature_enabled($conv->get_profile_owner(),'star_posts') && ($item['item_type'] == ITEM_TYPE_POST)) ? $star : ''),
'tagger' => ((feature_enabled($conv->get_profile_owner(),'commtag')) ? $tagger : ''),
'filer' => ((feature_enabled($conv->get_profile_owner(),'filing')) ? $filer : ''),
'filer' => ((feature_enabled($conv->get_profile_owner(),'filing') && ($item['item_type'] == ITEM_TYPE_POST)) ? $filer : ''),
'bookmark' => (($conv->get_profile_owner() == local_channel() && local_channel() && $has_bookmarks) ? t('Save Bookmarks') : ''),
'addtocal' => (($has_event) ? t('Add to Calendar') : ''),
'drop' => $drop,
'multidrop' => ((feature_enabled($conv->get_profile_owner(),'multi_delete')) ? $multidrop : ''),
'dropdown_extras' => $dropdown_extras,
// end toolbar buttons
'unseen_comments' => $unseen_comments,
'comment_count' => $total_children,
'comment_count_txt' => $comment_count_txt,
@@ -426,7 +468,9 @@ class ThreadItem {
'preview_lbl' => t('This is an unsaved preview'),
'wait' => t('Please wait'),
'submid' => str_replace(['+','='], ['',''], base64_encode($item['mid'])),
'thread_level' => $thread_level
'thread_level' => $thread_level,
'settings' => $settings,
'thr_parent' => (($item['parent_mid'] != $item['thr_parent']) ? $item['thr_parent'] : '')
);
$arr = array('item' => $item, 'output' => $tmp_item);
@@ -449,7 +493,7 @@ class ThreadItem {
if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) {
foreach($children as $child) {
$result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1);
$result['children'][] = $child->get_template_data($conv_responses, $thread_level + 1,$conv_flags);
}
// Collapse
if(($nb_children > $visible_comments) || ($thread_level > 1)) {
@@ -730,12 +774,11 @@ class ThreadItem {
$observer = $conv->get_observer();
$qc = ((local_channel()) ? get_pconfig(local_channel(),'system','qcomment') : null);
$qcomment = (($qc) ? explode("\n",$qc) : null);
$arr = array('comment_buttons' => '','id' => $this->get_id());
call_hooks('comment_buttons',$arr);
$comment_buttons = $arr['comment_buttons'];
$feature_auto_save_draft = ((feature_enabled($conv->get_profile_owner(), 'auto_save_draft')) ? "true" : "false");
$comment_box = replace_macros($template,array(
'$return_path' => '',
@@ -744,7 +787,6 @@ class ThreadItem {
'$type' => (($conv->get_mode() === 'channel') ? 'wall-comment' : 'net-comment'),
'$id' => $this->get_id(),
'$parent' => $this->get_id(),
'$qcomment' => $qcomment,
'$comment_buttons' => $comment_buttons,
'$profile_uid' => $conv->get_profile_owner(),
'$mylink' => $observer['xchan_url'],
@@ -758,7 +800,7 @@ class ThreadItem {
'$edquote' => t('Quote'),
'$edcode' => t('Code'),
'$edimg' => t('Image'),
'$edatt' => t('Attach File'),
'$edatt' => t('Attach/Upload file'),
'$edurl' => t('Insert Link'),
'$edvideo' => t('Video'),
'$preview' => t('Preview'), // ((feature_enabled($conv->get_profile_owner(),'preview')) ? t('Preview') : ''),
@@ -772,7 +814,8 @@ class ThreadItem {
'$anoncomments' => ((($conv->get_mode() === 'channel' || $conv->get_mode() === 'display') && perm_is_allowed($conv->get_profile_owner(),'','post_comments')) ? true : false),
'$anonname' => [ 'anonname', t('Your full name (required)') ],
'$anonmail' => [ 'anonmail', t('Your email address (required)') ],
'$anonurl' => [ 'anonurl', t('Your website URL (optional)') ]
'$anonurl' => [ 'anonurl', t('Your website URL (optional)') ],
'$auto_save_draft' => $feature_auto_save_draft
));
return $comment_box;
@@ -827,4 +870,3 @@ class ThreadItem {
}

View File

@@ -0,0 +1,53 @@
<?php
namespace Zotlabs\Lib;
class ThreadListener {
static public function store($target_id,$portable_id,$ltype = 0) {
$x = self::fetch($target_id,$portable_id,$ltype = 0);
if(! $x) {
$r = q("insert into listeners ( target_id, portable_id, ltype ) values ( '%s', '%s' , %d ) ",
dbesc($target_id),
dbesc($portable_id),
intval($ltype)
);
}
}
static public function fetch($target_id,$portable_id,$ltype = 0) {
$x = q("select * from listeners where target_id = '%s' and portable_id = '%s' and ltype = %d limit 1",
dbesc($target_id),
dbesc($portable_id),
intval($ltype)
);
if($x) {
return $x[0];
}
return false;
}
static public function fetch_by_target($target_id,$ltype = 0) {
$x = q("select * from listeners where target_id = '%s' and ltype = %d",
dbesc($target_id),
intval($ltype)
);
return $x;
}
static public function delete_by_target($target_id, $ltype = 0) {
return q("delete from listeners where target_id = '%s' and ltype = %d",
dbesc($target_id),
intval($ltype)
);
}
static public function delete_by_pid($portable_id, $ltype = 0) {
return q("delete from listeners where portable_id = '%s' and ltype = %d",
dbesc($portable_id),
intval($ltype)
);
}
}

View File

@@ -196,7 +196,6 @@ class ThreadStream {
$item->set_commentable(false);
}
require_once('include/channel.php');
$item->set_conversation($this);
$this->threads[] = $item;

View File

@@ -1,6 +1,6 @@
<?php
namespace Zotlabs\Zot;
namespace Zotlabs\Lib;
class Verify {

109
Zotlabs/Lib/Webfinger.php Normal file
View File

@@ -0,0 +1,109 @@
<?php
namespace Zotlabs\Lib;
/**
* @brief Fetch and return a webfinger for a resource
*
* @param string $resource - The resource
* @return boolean|string false or associative array from result JSON
*/
class Webfinger {
static private $server = EMPTY_STR;
static private $resource = EMPTY_STR;
static function exec($resource) {
if(! $resource) {
return false;
}
self::parse_resource($resource);
if(! ( self::$server && self::$resource)) {
return false;
}
if(! check_siteallowed(self::$server)) {
logger('blacklisted: ' . self::$server);
return false;
}
btlogger('fetching resource: ' . self::$resource . ' from ' . self::$server, LOGGER_DEBUG, LOG_INFO);
$url = 'https://' . self::$server . '/.well-known/webfinger?f=&resource=' . self::$resource ;
$counter = 0;
$s = z_fetch_url($url, false, $counter, [ 'headers' => [ 'Accept: application/jrd+json, */*' ] ]);
if($s['success']) {
$j = json_decode($s['body'], true);
return($j);
}
return false;
}
static function parse_resource($resource) {
self::$resource = urlencode($resource);
if(strpos($resource,'http') === 0) {
$m = parse_url($resource);
if($m) {
if($m['scheme'] !== 'https') {
return false;
}
self::$server = $m['host'] . (($m['port']) ? ':' . $m['port'] : '');
}
else {
return false;
}
}
elseif(strpos($resource,'tag:') === 0) {
$arr = explode(':',$resource); // split the tag
$h = explode(',',$arr[1]); // split the host,date
self::$server = $h[0];
}
else {
$x = explode('@',$resource);
$username = $x[0];
if(count($x) > 1) {
self::$server = $x[1];
}
else {
return false;
}
if(strpos($resource,'acct:') !== 0) {
self::$resource = urlencode('acct:' . $resource);
}
}
}
/**
* @brief fetch a webfinger resource and return a zot6 discovery url if present
*
*/
static function zot_url($resource) {
$arr = self::exec($resource);
if(is_array($arr) && array_key_exists('links',$arr)) {
foreach($arr['links'] as $link) {
if(array_key_exists('rel',$link) && $link['rel'] === PROTOCOL_ZOT6) {
if(array_key_exists('href',$link) && $link['href'] !== EMPTY_STR) {
return $link['href'];
}
}
}
}
return false;
}
}

View File

@@ -1,30 +0,0 @@
<?php /** @file */
namespace Zotlabs\Lib;
class ZotDriver extends ProtoDriver {
protected function discover($channel,$location) {
}
protected function deliver($item,$channel,$recipients) {
}
protected function collect($channel,$connection) {
}
protected function change_permissions($permissions,$channel,$recipient) {
}
protected function acknowledge_permissions($permissions,$channel,$recipient) {
}
protected function deliver_private($item,$channel,$recipients) {
}
protected function collect_private($channel,$connection) {
}
}

91
Zotlabs/Lib/ZotURL.php Normal file
View File

@@ -0,0 +1,91 @@
<?php
namespace Zotlabs\Lib;
use Zotlabs\Zot6\HTTPSig;
class ZotURL {
static public function fetch($url,$channel) {
$ret = [ 'success' => false ];
if(strpos($url,'x-zot:') !== 0) {
return $ret;
}
if(! $url) {
return $ret;
}
$portable_url = substr($url,6);
$u = explode('/',$portable_url);
$portable_id = $u[0];
$hosts = self::lookup($portable_id);
if(! $hosts) {
return $ret;
}
foreach($hosts as $h) {
$newurl = $h . '/id/' . $portable_url;
$m = parse_url($newurl);
$data = json_encode([ 'zot_token' => random_string() ]);
if($channel && $m) {
$headers = [
'Accept' => 'application/x-zot+json',
'Content-Type' => 'application/x-zot+json',
'X-Zot-Token' => random_string(),
'Digest' => HTTPSig::generate_digest_header($data),
'Host' => $m['host'],
'(request-target)' => 'post ' . get_request_string($newurl)
];
$h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
}
else {
$h = [ 'Accept: application/x-zot+json' ];
}
$result = [];
$redirects = 0;
$x = z_post_url($newurl,$data,$redirects, [ 'headers' => $h ] );
if($x['success']) {
return $x;
}
}
return $ret;
}
static public function is_zoturl($url) {
if(strpos($url,'x-zot:') === 0) {
return true;
}
return false;
}
static public function lookup($portable_id) {
$r = q("select * from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and site_dead = 0 order by hubloc_primary desc",
dbesc($portable_id)
);
if(! $r) {
// extend to network lookup
return false;
}
return ids_to_array($r,'hubloc_url');
}
}

63
Zotlabs/Lib/Zotfinger.php Normal file
View File

@@ -0,0 +1,63 @@
<?php
namespace Zotlabs\Lib;
use Zotlabs\Zot6\HTTPSig;
class Zotfinger {
static function exec($resource,$channel = null) {
if(! $resource) {
return false;
}
$m = parse_url($resource);
$data = json_encode([ 'zot_token' => random_string() ]);
if($channel && $m) {
$headers = [
'Accept' => 'application/x-zot+json',
'Content-Type' => 'application/x-zot+json',
'X-Zot-Token' => random_string(),
'Digest' => HTTPSig::generate_digest_header($data),
'Host' => $m['host'],
'(request-target)' => 'post ' . get_request_string($resource)
];
$h = HTTPSig::create_sig($headers,$channel['channel_prvkey'],channel_url($channel),false);
}
else {
$h = [ 'Accept: application/x-zot+json' ];
}
$result = [];
$redirects = 0;
$x = z_post_url($resource,$data,$redirects, [ 'headers' => $h ] );
logger('fetch: ' . print_r($x,true));
if($x['success']) {
$result['signature'] = HTTPSig::verify($x);
$result['data'] = json_decode($x['body'],true);
if($result['data'] && is_array($result['data']) && array_key_exists('encrypted',$result['data']) && $result['data']['encrypted']) {
$result['data'] = json_decode(crypto_unencapsulate($result['data'],get_config('system','prvkey')),true);
}
logger('decrypted: ' . print_r($result,true));
return $result;
}
return false;
}
}

View File

@@ -0,0 +1,42 @@
<?php
$auth_sister_ver = 'Ver.0.3.5.alpha';
/*
===========================================================
■PHP用認証モジュール 
〝妹認証 Auth-sister〟
http://www.okanesuita.org/auth_sister/
■著作権情報
Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
■ライセンス
・MIT License (http://www.opensource.org/licenses/mit-license.php)
1.本スクリプトは無償であり、かつ誰でも無制限に使うことができる。
但し、著作権表示および本許諾表示を、すべての複製または重要な部分に記載しなければならない。
2.開発者は、本スクリプトに関して生じる事の一切の責任を負わない。
===========================================================
*/
/* 一般設定 */
$auth_sister_load = 'reiya'; //認証に使う妹パッケージ
$auth_sister_mes_a = '妹「'; //メッセージ先頭に付加する文字列
$auth_sister_mes_b = '」'; //メッセージ最後に付加する文字列
/* フォーム送信設定 */
$auth_sister_method = 0;//メソッド(0=post, 1=get)GETだとエラーになる可能性がある
//$auth_sister_input = 2;
/* セッション設定(etc.php用) */
$ses_name = 'auth_sister_alpha';
//$ses_dir = '';
/* セキュリティ関連設定 */
$auth_sister_len_min = 2; //最小文字数(回答文)
$auth_sister_len_max = 10; //最大文字数(回答文)
$auth_sister_outlen = "$auth_sister_len_min$auth_sister_len_max文字でいれてー";//文字数範囲外のエラー文
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
?>

View File

@@ -0,0 +1,217 @@
<?php
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
//妹★関数-----------------------------------------------------------
//セッション初期化
function auth_session_start(){
require('auth_sister/config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
}
//妹ヘッダを挿入します
function auth_sister_header(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
echo $auth_sister_header;
}
//妹認証の初期化
function auth_sister_load(){
require('auth_sister/config.inc.php');
$loc = 'auth_sister/'.$auth_sister_load.'/words.txt';//辞書ファイル読み込み
//ファイル存在する場合は続行
if(file_exists($loc)){
$lines = file($loc, FILE_IGNORE_NEW_LINES);
$cnt = count($lines); //行数カウント
$cnt--;
$point = mt_rand(0, $cnt); //乱数発生
//質問文 正解メッセージ 不正解メッセージ 正解文 正解文の処理モード 逆処理スイッチ
//↓回答文の処理モード
//未指定・0:入力されたすべての文字列を含む
//1:正規表現による
//2:完全一致
list(
$_SESSION['auth_sister_question'],//質問文
$_SESSION['auth_sister_res_true'],//正解メッセージ
$_SESSION['auth_sister_res_false'],//不正解メッセージ
$_SESSION['auth_sister_answer'],//正解文
$_SESSION['auth_sister_anmode'],//正解文の処理モード
$_SESSION['auth_sister_rebirth']//逆処理スイッチ(0=OFF/1=ON)
)=explode("\t",$lines[$point]);//各変数に読み出し
$_SESSION['auth_sister_ticket'] = true; //画像読込権
$_SESSION['auth_sister_authID'] = uniqid(rand()); //AuthID発行
//以下マクロ処理だよ!
//乱数発生だよ!
$ran = rand(1,9999);
//乱数を平仮名にしちゃうよ!
$ranran = $ran;
$ranran = str_replace("0","れい" ,$ranran);
$ranran = str_replace("1","いち" ,$ranran);
$ranran = str_replace("2","" ,$ranran);
$ranran = str_replace("3","さん" ,$ranran);
$ranran = str_replace("4","よん" ,$ranran);
$ranran = str_replace("5","" ,$ranran);
$ranran = str_replace("6","ろく" ,$ranran);
$ranran = str_replace("7","なな" ,$ranran);
$ranran = str_replace("8","はち" ,$ranran);
$ranran = str_replace("9","きゅう" ,$ranran);
//乱数を漢字にしちゃおうかな!
$kanran = $ran;
$kanran = str_replace("0","" ,$kanran);
$kanran = str_replace("1","" ,$kanran);
$kanran = str_replace("2","" ,$kanran);
$kanran = str_replace("3","" ,$kanran);
$kanran = str_replace("4","" ,$kanran);
$kanran = str_replace("5","" ,$kanran);
$kanran = str_replace("6","" ,$kanran);
$kanran = str_replace("7","" ,$kanran);
$kanran = str_replace("8","" ,$kanran);
$kanran = str_replace("9","" ,$kanran);
//こんどは画数だぞ!
$kankaku = $ran;
$kankaku = str_replace("0","0" ,$kankaku);
$kankaku = str_replace("1","" ,$kankaku);
$kankaku = str_replace("2","" ,$kankaku);
$kankaku = str_replace("3","" ,$kankaku);
$kankaku = str_replace("4","" ,$kankaku);
$kankaku = str_replace("5","" ,$kankaku);
$kankaku = str_replace("6","" ,$kankaku);
$kankaku = str_replace("7","" ,$kankaku);
$kankaku = str_replace("8","" ,$kankaku);
$kankaku = str_replace("9","" ,$kankaku);
//[rand]
$_SESSION['auth_sister_question'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_answer']);
//[rand_kana]
$_SESSION['auth_sister_question'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_answer']);
//[rand_kan]
$_SESSION['auth_sister_question'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_answer']);
//[rand_kankaku]
$_SESSION['auth_sister_question'] = str_replace("[rand_kankaku]", $kankaku, $_SESSION['auth_sister_question']);
}
}
//妹認証の表示セット 先に初期化しておくこと
function auth_sister_insert(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
$output = str_replace("[authID]", $_SESSION['auth_sister_authID'], $auth_sister_html);//AuthID挿入
echo $output;
}
//auth_sister_auth()は認証成功の場合true、失敗の場合はfalseを返します。
function auth_sister_auth(){
require('auth_sister/config.inc.php');
$auth = false;
$select = false;
$authid= $_SESSION['auth_sister_authID'];
//---メソッド
switch($auth_sister_method):
case 0 :
$select = $_POST[$authid];
break;
case 1 :
$select = $_GET[$authid];
break;
endswitch;
if($select){
$select = mb_convert_encoding($select,"UTF-8","auto");//入力されたもの
$answer = mb_convert_encoding($_SESSION['auth_sister_answer'],"UTF-8","auto");//正解文
$mode = $_SESSION['auth_sister_anmode'];//処理モード
$len = mb_strlen ( $select , "UTF-8");//入力文の文字数
//文字数制限
if(($len>=$auth_sister_len_min)&&($len<=$auth_sister_len_max)){
//処理モード
switch($mode):
case 0://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
break;
case 1://正規表現による
if(mb_ereg($answer,$select)) { $auth = true; }
break;
case 2://完全一致
if($answer==$select) { $auth = true; }
break;
default://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
endswitch;
//逆処理
if($_SESSION['auth_sister_rebirth']==1){
if($auth) { $auth = false; }
else { $auth = true; }
}
//認証結果文
if($auth){
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_true'];
} else {
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_false'];
}
//文字数エラー
} else {
$_SESSION['auth_sister_res'] = $auth_sister_outlen;
$auth = false;
}
}
return($auth);
}
//認証成功・失敗メッセージを返します
function auth_sister_res(){
require('auth_sister/config.inc.php');
$res = $auth_sister_mes_a.$_SESSION['auth_sister_res'].$auth_sister_mes_b;
return($res);
}
//イメージ出力-----------------------------------------------------------
$mode = $_GET['mode'];
switch($mode):
case "img":
require('config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
if($_SESSION['auth_sister_ticket']){
require($auth_sister_load.'/config.inc.php');
putenv('GDFONTPATH=' . realpath($auth_sister_fpath));
header("Content-type: image/png");
$text=$_SESSION['auth_sister_question'];
$text=mb_convert_encoding($text, "UTF-8", "auto");
$img = imagecreatefrompng($auth_sister_load.'/'.$auth_sister_image);
$color = imagecolorallocate($img,0x11,0x11,0x11); //文字色
imagettftext($img, $auth_sister_fsize, 0, $auth_sister_fx, $auth_sister_fy, $color, $auth_sister_font, $text );
//画像形式
if($_GET['type']==".png"){
imagepng($img); }
/*
if($_GET['type']==".jpg"){
imagejpeg($img,NULL,100)
}
*/
imagedestroy($img);
$_SESSION['auth_sister_ticket'] = false;
}else{
echo "Forbidden";
}
break;
endswitch;
?>

View File

@@ -0,0 +1,2 @@
mbstring.internal_encoding = UTF-8;
mbstring.http_output = UTF-8;

View File

@@ -0,0 +1,3 @@
<Files ~ ".(htaccess|htpasswd|txt|php)$">
deny from all
</Files>

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

View File

@@ -0,0 +1,27 @@
<?php
$auth_sister_image = 'reiya.png';
$auth_sister_fpath = './reiya';
$auth_sister_font = 'FONT_HERE';
$auth_sister_fsize = 10;
$auth_sister_fx = 100;
$auth_sister_fy = 50;
//妹ヘッダ
$auth_sister_header = '<link rel="stylesheet" type="text/css" href="auth_sister/reiya/style.css" />';
//表示部分
$auth_sister_html = '<div class="reiya">
<div class="reiyareiya">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="[authID]" type="text" class="reiya_input" id="[authID]" /></td>
<td><input name="button" type="submit" class="reiya_submit" id="button" value="送信" /></td>
</tr>
</table>
</div>
</div>';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,38 @@
@charset "utf-8";
/* CSS Document */
.reiya {
background-image: url(../core.php?mode=img&type=.png);
background-repeat: no-repeat;
height: 150px;
width: 400px;
}
.reiyareiya{
position:relative;
top:95px;
left:90px;
}
.reiya_input {
padding:0px;
margin:0px;
background-image: url(bg1.png);
background-repeat:repeat-x;
height: 25px;
width: 230px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
font-weight:bold;
}
.reiya_submit {
padding:0px;
margin:0px;
background-image: url(bg2.png);
background-repeat:repeat-x;
height: 27px;
width: 50px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
color:#fff;
}

View File

@@ -0,0 +1,8 @@
れいにゃ大好きって言って(完全一致・新機能) れいにゃもおにーちゃんのこと大好き♪ (怒) れいにゃ大好き 2
おにーちゃん私の煎餅たべたでしょー(部分一致) いいよ、別に♪ 嘘つき! ごめんよごめんねすまんかった悪かったすまなかった俺のプリン食べただろれいにゃ大好き
れいにゃ大好きって言わないで(完全不一致・新) 認証成功だよ 言わないでっていったでしょ れいにゃ大好き 2 1
[rand]を漢字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand_kan]を数字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand] 2
[rand_kana]を漢字にして(乱数+かな乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand]を二回言え!(乱数マクロ・新) よくできたねっ ばーか! [rand][rand] 2
それぞれ「[rand_kankaku]」の画数をかけ0は0。(新) すごいすごーい! ぶっぶー [rand] 2

View File

@@ -0,0 +1,42 @@
<?php
$auth_sister_ver = 'Ver.0.3.5.alpha';
/*
===========================================================
■PHP用認証モジュール 
〝妹認証 Auth-sister〟
http://www.okanesuita.org/auth_sister/
■著作権情報
Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
■ライセンス
・MIT License (http://www.opensource.org/licenses/mit-license.php)
1.本スクリプトは無償であり、かつ誰でも無制限に使うことができる。
但し、著作権表示および本許諾表示を、すべての複製または重要な部分に記載しなければならない。
2.開発者は、本スクリプトに関して生じる事の一切の責任を負わない。
===========================================================
*/
/* 一般設定 */
$auth_sister_load = 'reiya'; //認証に使う妹パッケージ
$auth_sister_mes_a = '妹「'; //メッセージ先頭に付加する文字列
$auth_sister_mes_b = '」'; //メッセージ最後に付加する文字列
/* フォーム送信設定 */
$auth_sister_method = 0;//メソッド(0=post, 1=get)GETだとエラーになる可能性がある
//$auth_sister_input = 2;
/* セッション設定(etc.php用) */
$ses_name = 'auth_sister_alpha';
//$ses_dir = '';
/* セキュリティ関連設定 */
$auth_sister_len_min = 2; //最小文字数(回答文)
$auth_sister_len_max = 10; //最大文字数(回答文)
$auth_sister_outlen = "$auth_sister_len_min$auth_sister_len_max文字でいれてー";//文字数範囲外のエラー文
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
?>

View File

@@ -0,0 +1,217 @@
<?php
//Copyright (C) 2008 菅礼紗(http://www.okanesuita.org/).
//妹★関数-----------------------------------------------------------
//セッション初期化
function auth_session_start(){
require('auth_sister/config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
}
//妹ヘッダを挿入します
function auth_sister_header(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
echo $auth_sister_header;
}
//妹認証の初期化
function auth_sister_load(){
require('auth_sister/config.inc.php');
$loc = 'auth_sister/'.$auth_sister_load.'/words.txt';//辞書ファイル読み込み
//ファイル存在する場合は続行
if(file_exists($loc)){
$lines = file($loc, FILE_IGNORE_NEW_LINES);
$cnt = count($lines); //行数カウント
$cnt--;
$point = mt_rand(0, $cnt); //乱数発生
//質問文 正解メッセージ 不正解メッセージ 正解文 正解文の処理モード 逆処理スイッチ
//↓回答文の処理モード
//未指定・0:入力されたすべての文字列を含む
//1:正規表現による
//2:完全一致
list(
$_SESSION['auth_sister_question'],//質問文
$_SESSION['auth_sister_res_true'],//正解メッセージ
$_SESSION['auth_sister_res_false'],//不正解メッセージ
$_SESSION['auth_sister_answer'],//正解文
$_SESSION['auth_sister_anmode'],//正解文の処理モード
$_SESSION['auth_sister_rebirth']//逆処理スイッチ(0=OFF/1=ON)
)=explode("\t",$lines[$point]);//各変数に読み出し
$_SESSION['auth_sister_ticket'] = true; //画像読込権
$_SESSION['auth_sister_authID'] = uniqid(rand()); //AuthID発行
//以下マクロ処理だよ!
//乱数発生だよ!
$ran = rand(1,9999);
//乱数を平仮名にしちゃうよ!
$ranran = $ran;
$ranran = str_replace("0","れい" ,$ranran);
$ranran = str_replace("1","いち" ,$ranran);
$ranran = str_replace("2","" ,$ranran);
$ranran = str_replace("3","さん" ,$ranran);
$ranran = str_replace("4","よん" ,$ranran);
$ranran = str_replace("5","" ,$ranran);
$ranran = str_replace("6","ろく" ,$ranran);
$ranran = str_replace("7","なな" ,$ranran);
$ranran = str_replace("8","はち" ,$ranran);
$ranran = str_replace("9","きゅう" ,$ranran);
//乱数を漢字にしちゃおうかな!
$kanran = $ran;
$kanran = str_replace("0","" ,$kanran);
$kanran = str_replace("1","" ,$kanran);
$kanran = str_replace("2","" ,$kanran);
$kanran = str_replace("3","" ,$kanran);
$kanran = str_replace("4","" ,$kanran);
$kanran = str_replace("5","" ,$kanran);
$kanran = str_replace("6","" ,$kanran);
$kanran = str_replace("7","" ,$kanran);
$kanran = str_replace("8","" ,$kanran);
$kanran = str_replace("9","" ,$kanran);
//こんどは画数だぞ!
$kankaku = $ran;
$kankaku = str_replace("0","0" ,$kankaku);
$kankaku = str_replace("1","" ,$kankaku);
$kankaku = str_replace("2","" ,$kankaku);
$kankaku = str_replace("3","" ,$kankaku);
$kankaku = str_replace("4","" ,$kankaku);
$kankaku = str_replace("5","" ,$kankaku);
$kankaku = str_replace("6","" ,$kankaku);
$kankaku = str_replace("7","" ,$kankaku);
$kankaku = str_replace("8","" ,$kankaku);
$kankaku = str_replace("9","" ,$kankaku);
//[rand]
$_SESSION['auth_sister_question'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand]", $ran, $_SESSION['auth_sister_answer']);
//[rand_kana]
$_SESSION['auth_sister_question'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kana]", $ranran, $_SESSION['auth_sister_answer']);
//[rand_kan]
$_SESSION['auth_sister_question'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_question']);
$_SESSION['auth_sister_answer'] = str_replace("[rand_kan]", $kanran, $_SESSION['auth_sister_answer']);
//[rand_kankaku]
$_SESSION['auth_sister_question'] = str_replace("[rand_kankaku]", $kankaku, $_SESSION['auth_sister_question']);
}
}
//妹認証の表示セット 先に初期化しておくこと
function auth_sister_insert(){
require('auth_sister/config.inc.php');
require('auth_sister/'.$auth_sister_load.'/config.inc.php');
$output = str_replace("[authID]", $_SESSION['auth_sister_authID'], $auth_sister_html);//AuthID挿入
echo $output;
}
//auth_sister_auth()は認証成功の場合true、失敗の場合はfalseを返します。
function auth_sister_auth(){
require('auth_sister/config.inc.php');
$auth = false;
$select = false;
$authid= $_SESSION['auth_sister_authID'];
//---メソッド
switch($auth_sister_method):
case 0 :
$select = $_POST[$authid];
break;
case 1 :
$select = $_GET[$authid];
break;
endswitch;
if($select){
$select = mb_convert_encoding($select,"UTF-8","auto");//入力されたもの
$answer = mb_convert_encoding($_SESSION['auth_sister_answer'],"UTF-8","auto");//正解文
$mode = $_SESSION['auth_sister_anmode'];//処理モード
$len = mb_strlen ( $select , "UTF-8");//入力文の文字数
//文字数制限
if(($len>=$auth_sister_len_min)&&($len<=$auth_sister_len_max)){
//処理モード
switch($mode):
case 0://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
break;
case 1://正規表現による
if(mb_ereg($answer,$select)) { $auth = true; }
break;
case 2://完全一致
if($answer==$select) { $auth = true; }
break;
default://入力されたすべての文字列を含む
if(mb_strstr($answer,$select,0,"UTF-8")) { $auth = true; }
endswitch;
//逆処理
if($_SESSION['auth_sister_rebirth']==1){
if($auth) { $auth = false; }
else { $auth = true; }
}
//認証結果文
if($auth){
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_true'];
} else {
$_SESSION['auth_sister_res'] = $_SESSION['auth_sister_res_false'];
}
//文字数エラー
} else {
$_SESSION['auth_sister_res'] = $auth_sister_outlen;
$auth = false;
}
}
return($auth);
}
//認証成功・失敗メッセージを返します
function auth_sister_res(){
require('auth_sister/config.inc.php');
$res = $auth_sister_mes_a.$_SESSION['auth_sister_res'].$auth_sister_mes_b;
return($res);
}
//イメージ出力-----------------------------------------------------------
$mode = $_GET['mode'];
switch($mode):
case "img":
require('config.inc.php');
if($ses_name) {session_name($ses_name);}
if($ses_dir) {session_save_path($ses_dir);}
session_start();
if($_SESSION['auth_sister_ticket']){
require($auth_sister_load.'/config.inc.php');
putenv('GDFONTPATH=' . realpath($auth_sister_fpath));
header("Content-type: image/png");
$text=$_SESSION['auth_sister_question'];
$text=mb_convert_encoding($text, "UTF-8", "auto");
$img = imagecreatefrompng($auth_sister_load.'/'.$auth_sister_image);
$color = imagecolorallocate($img,0x11,0x11,0x11); //文字色
imagettftext($img, $auth_sister_fsize, 0, $auth_sister_fx, $auth_sister_fy, $color, $auth_sister_font, $text );
//画像形式
if($_GET['type']==".png"){
imagepng($img); }
/*
if($_GET['type']==".jpg"){
imagejpeg($img,NULL,100)
}
*/
imagedestroy($img);
$_SESSION['auth_sister_ticket'] = false;
}else{
echo "Forbidden";
}
break;
endswitch;
?>

View File

@@ -0,0 +1,2 @@
mbstring.internal_encoding = UTF-8;
mbstring.http_output = UTF-8;

View File

@@ -0,0 +1,3 @@
<Files ~ ".(htaccess|htpasswd|txt|php)$">
deny from all
</Files>

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

View File

@@ -0,0 +1,27 @@
<?php
$auth_sister_image = 'reiya.png';
$auth_sister_fpath = './reiya';
$auth_sister_font = 'FONT_HERE';
$auth_sister_fsize = 10;
$auth_sister_fx = 100;
$auth_sister_fy = 50;
//妹ヘッダ
$auth_sister_header = '<link rel="stylesheet" type="text/css" href="auth_sister/reiya/style.css" />';
//表示部分
$auth_sister_html = '<div class="reiya">
<div class="reiyareiya">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><input name="[authID]" type="text" class="reiya_input" id="[authID]" /></td>
<td><input name="button" type="submit" class="reiya_submit" id="button" value="送信" /></td>
</tr>
</table>
</div>
</div>';
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -0,0 +1,38 @@
@charset "utf-8";
/* CSS Document */
.reiya {
background-image: url(../core.php?mode=img&type=.png);
background-repeat: no-repeat;
height: 150px;
width: 400px;
}
.reiyareiya{
position:relative;
top:95px;
left:90px;
}
.reiya_input {
padding:0px;
margin:0px;
background-image: url(bg1.png);
background-repeat:repeat-x;
height: 25px;
width: 230px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
font-weight:bold;
}
.reiya_submit {
padding:0px;
margin:0px;
background-image: url(bg2.png);
background-repeat:repeat-x;
height: 27px;
width: 50px;
border: 1px #000 solid;
font-family:" Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3";
font-size:18px;
color:#fff;
}

View File

@@ -0,0 +1,8 @@
れいにゃ大好きって言って(完全一致・新機能) れいにゃもおにーちゃんのこと大好き♪ (怒) れいにゃ大好き 2
おにーちゃん私の煎餅たべたでしょー(部分一致) いいよ、別に♪ 嘘つき! ごめんよごめんねすまんかった悪かったすまなかった俺のプリン食べただろれいにゃ大好き
れいにゃ大好きって言わないで(完全不一致・新) 認証成功だよ 言わないでっていったでしょ れいにゃ大好き 2 1
[rand]を漢字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand_kan]を数字にして(乱数+漢字乱数マクロ・新) よくできたねー 間違ったね [rand] 2
[rand_kana]を漢字にして(乱数+かな乱数マクロ・新) よくできたねー 間違ったね [rand_kan] 2
[rand]を二回言え!(乱数マクロ・新) よくできたねっ ばーか! [rand][rand] 2
それぞれ「[rand_kankaku]」の画数をかけ0は0。(新) すごいすごーい! ぶっぶー [rand] 2

View File

@@ -1,36 +1,39 @@
<?php
namespace Zotlabs\Module;
/*
* ACL selector json backend
require_once 'include/acl_selectors.php';
require_once 'include/group.php';
/**
* @brief ACL selector json backend.
*
* This module provides JSON lists of connections and local/remote channels
* (xchans) to populate various tools such as the ACL (AccessControlList) popup
* and various auto-complete functions (such as email recipients, search, and
* and various auto-complete functions (such as email recipients, search, and
* mention targets.
*
* There are two primary output structural formats. One for the ACL widget and
* the other for auto-completion.
* Many of the behaviour variations are triggered on the use of single character keys
* however this functionality has grown in an ad-hoc manner and has gotten quite messy over time.
*
* Many of the behaviour variations are triggered on the use of single character
* keys however this functionality has grown in an ad-hoc manner and has gotten
* quite messy over time.
*/
require_once("include/acl_selectors.php");
require_once("include/group.php");
class Acl extends \Zotlabs\Web\Controller {
function init() {
logger('mod_acl: ' . print_r($_REQUEST,true));
// logger('mod_acl: ' . print_r($_GET,true),LOGGER_DATA);
$start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0);
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 500);
$search = (x($_REQUEST,'search') ? $_REQUEST['search'] : '');
$type = (x($_REQUEST,'type') ? $_REQUEST['type'] : '');
$noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false);
$noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false);
// $type =
// $type =
// '' => standard ACL request
// 'g' => Groups only ACL request
// 'f' => forums only ACL request
@@ -78,9 +81,10 @@ class Acl extends \Zotlabs\Web\Controller {
if($search) {
$sql_extra = " AND groups.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
$sql_extra = " AND pgrp.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
$sql_extra2_xchan = "AND ( xchan_name LIKE " . protect_sprintf( "'" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
// This horrible mess is needed because position also returns 0 if nothing is found.
// Would be MUCH easier if it instead returned a very large value
// Otherwise we could just
@@ -89,10 +93,9 @@ class Acl extends \Zotlabs\Web\Controller {
$order_extra2 = "CASE WHEN xchan_name LIKE "
. protect_sprintf( "'%" . dbesc($search) . "%'" )
. " then POSITION('" . protect_sprintf(dbesc($search))
. "' IN xchan_name) else position('" . protect_sprintf(dbesc($search)) . "' IN xchan_addr) end, ";
. "' IN xchan_name) else position('" . protect_sprintf(dbesc(punify($search))) . "' IN xchan_addr) end, ";
$col = ((strpos($search,'@') !== false) ? 'xchan_addr' : 'xchan_name' );
$sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
$sql_extra3 = "AND ( xchan_addr like " . protect_sprintf( "'%" . dbesc(punify($search)) . "%'" ) . " OR xchan_name like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ) ";
}
else {
@@ -126,13 +129,13 @@ class Acl extends \Zotlabs\Web\Controller {
// Normal privacy groups
$r = q("SELECT groups.id, groups.hash, groups.gname
FROM groups, group_member
WHERE groups.deleted = 0 AND groups.uid = %d
AND group_member.gid = groups.id
$r = q("SELECT pgrp.id, pgrp.hash, pgrp.gname
FROM pgrp, pgrp_member
WHERE pgrp.deleted = 0 AND pgrp.uid = %d
AND pgrp_member.gid = pgrp.id
$sql_extra
GROUP BY groups.id
ORDER BY groups.gname
GROUP BY pgrp.id
ORDER BY pgrp.gname
LIMIT %d OFFSET %d",
intval(local_channel()),
intval($count),
@@ -163,7 +166,7 @@ class Acl extends \Zotlabs\Web\Controller {
if($extra_channels) {
foreach($extra_channels as $channel) {
if(perm_is_allowed(intval($channel), get_observer_hash(),'view_contacts')) {
if($extra_channel_sql)
if($extra_channels_sql)
$extra_channels_sql .= ',';
$extra_channels_sql .= intval($channel);
}
@@ -224,7 +227,7 @@ class Acl extends \Zotlabs\Web\Controller {
else { // Visitors
$r = q("SELECT xchan_hash as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
FROM xchan left join xlink on xlink_link = xchan_hash
WHERE xlink_xchan = '%s' AND xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc" ,
WHERE xlink_xchan = '%s' AND xchan_deleted = 0 $sql_extra2_xchan order by $order_extra2 xchan_name asc" ,
dbesc(get_observer_hash())
);
@@ -265,15 +268,15 @@ class Acl extends \Zotlabs\Web\Controller {
});
}
}
if(intval(get_config('system','taganyone')) || intval(get_pconfig(local_channel(),'system','taganyone'))) {
if((count($r) < 100) && $type == 'c') {
$r2 = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
FROM xchan
WHERE xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc"
);
if($r2)
$r = array_merge($r,$r2);
}
if((count($r) < 100) && $type == 'c') {
$r2 = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
FROM xchan
WHERE xchan_deleted = 0 and not xchan_network in ('rss','anon','unknown') $sql_extra2_xchan order by $order_extra2 xchan_name asc"
);
if($r2) {
$r = array_merge($r,$r2);
$r = unique_multidim_array($r,'hash');
}
}
}
elseif($type == 'm') {
@@ -334,24 +337,23 @@ class Acl extends \Zotlabs\Web\Controller {
if($r) {
foreach($r as $g) {
if(($g['network'] === 'rss') && ($type != 'a'))
if(in_array($g['network'],['rss','anon','unknown']) && ($type != 'a'))
continue;
$g['hash'] = urlencode($g['hash']);
if(! $g['nick']) {
$t = explode(' ',strtolower($g['name']));
$g['nick'] = $t[0] . '@';
$g['nick'] = $g['url'];
}
if(in_array($g['hash'],$permitted) && in_array($type, [ 'c', 'f' ]) && (! $noforums)) {
if(in_array($g['hash'],$permitted) && $type === 'f' && (! $noforums)) {
$contacts[] = array(
"type" => "c",
"photo" => "images/twopeople.png",
"name" => $g['name'] . (($type === 'f') ? '' : '+'),
"id" => urlencode($g['id']) . (($type === 'f') ? '' : '+'),
"name" => $g['name'],
"id" => urlencode($g['id']),
"xid" => $g['hash'],
"link" => $g['nick'],
"link" => (($g['nick']) ? $g['nick'] : $g['url']),
"nick" => substr($g['nick'],0,strpos($g['nick'],'@')),
"self" => (intval($g['abook_self']) ? 'abook-self' : ''),
"taggable" => 'taggable',
@@ -365,8 +367,8 @@ class Acl extends \Zotlabs\Web\Controller {
"name" => $g['name'],
"id" => urlencode($g['id']),
"xid" => $g['hash'],
"link" => $g['nick'],
"nick" => (($g['nick']) ? substr($g['nick'],0,strpos($g['nick'],'@')) : $g['nick']),
"link" => (($g['nick']) ? $g['nick'] : $g['url']),
"nick" => ((strpos($g['nick'],'@')) ? substr($g['nick'],0,strpos($g['nick'],'@')) : $g['nick']),
"self" => (intval($g['abook_self']) ? 'abook-self' : ''),
"taggable" => '',
"label" => '',
@@ -382,15 +384,13 @@ class Acl extends \Zotlabs\Web\Controller {
'count' => $count,
'items' => $items,
);
echo json_encode($o);
killme();
}
function navbar_complete(&$a) {
// logger('navbar_complete');
@@ -434,7 +434,7 @@ class Acl extends \Zotlabs\Web\Controller {
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
if($url) {
$query = $url . '?f=' . (($token) ? '&t=' . urlencode($token) : '');
$query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode($search) : '');
$query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode(punify($search)) : '');
$x = z_fetch_url($query);
if($x['success']) {
@@ -447,5 +447,5 @@ class Acl extends \Zotlabs\Web\Controller {
}
return array();
}
}

View File

@@ -86,7 +86,7 @@ class Admin extends \Zotlabs\Web\Controller {
// list total user accounts, expirations etc.
$accounts = array();
$r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account",
$r = q("SELECT COUNT(CASE WHEN account_id > 0 THEN 1 ELSE NULL END) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account",
db_utcnow(),
db_utcnow(),
dbesc(NULL_DATE),
@@ -100,16 +100,18 @@ class Admin extends \Zotlabs\Web\Controller {
}
// pending registrations
$r = q("SELECT COUNT(id) AS rtotal FROM register WHERE uid != '0'");
$pending = $r[0]['rtotal'];
$pdg = q("SELECT account.*, register.hash from account left join register on account_id = register.uid where (account_flags & %d ) > 0 ",
intval(ACCOUNT_PENDING)
);
$pending = (($pdg) ? count($pdg) : 0);
// available channels, primary and clones
$channels = array();
$r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN channel_primary = 1 THEN 1 ELSE NULL END) AS main, COUNT(CASE WHEN channel_primary = 0 THEN 1 ELSE NULL END) AS clones FROM channel WHERE channel_removed = 0");
$r = q("SELECT COUNT(*) AS total FROM channel WHERE channel_removed = 0 and channel_system = 0");
if ($r) {
$channels['total'] = array('label' => t('Channels'), 'val' => $r[0]['total']);
$channels['main'] = array('label' => t('Primary'), 'val' => $r[0]['main']);
$channels['clones'] = array('label' => t('Clones'), 'val' => $r[0]['clones']);
}
// We can do better, but this is a quick queue status
@@ -140,7 +142,7 @@ class Admin extends \Zotlabs\Web\Controller {
'$accounts' => array( t('Registered accounts'), $accounts),
'$pending' => array( t('Pending registrations'), $pending),
'$channels' => array( t('Registered channels'), $channels),
'$plugins' => array( t('Active plugins'), $plugins ),
'$plugins' => array( t('Active addons'), $plugins ),
'$version' => array( t('Version'), STD_VERSION),
'$vmaster' => array( t('Repository version (master)'), $vmaster),
'$vdev' => array( t('Repository version (dev)'), $vdev),

View File

@@ -31,7 +31,7 @@ class Account_edit {
}
$service_class = trim($_REQUEST['service_class']);
$account_level = intval(trim($_REQUEST['account_level']));
$account_level = 5;
$account_language = trim($_REQUEST['account_language']);
$r = q("update account set account_service_class = '%s', account_level = %d, account_language = '%s'
@@ -68,7 +68,6 @@ class Account_edit {
'$title' => t('Account Edit'),
'$pass1' => [ 'pass1', t('New Password'), ' ','' ],
'$pass2' => [ 'pass2', t('New Password again'), ' ','' ],
'$account_level' => [ 'account_level', t('Technical skill level'), $x[0]['account_level'], '', \Zotlabs\Lib\Techlevels::levels() ],
'$account_language' => [ 'account_language' , t('Account language (for emails)'), $x[0]['account_language'], '', language_list() ],
'$service_class' => [ 'service_class', t('Service class'), $x[0]['account_service_class'], '' ],
'$submit' => t('Submit'),
@@ -81,4 +80,4 @@ class Account_edit {
}
}
}

View File

@@ -16,6 +16,7 @@ class Accounts {
*/
function post() {
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : array() );
$users = ( x($_POST, 'user') ? $_POST['user'] : array() );
$blocked = ( x($_POST, 'blocked') ? $_POST['blocked'] : array() );
@@ -24,7 +25,7 @@ class Accounts {
// change to switch structure?
// account block/unblock button was submitted
if (x($_POST, 'page_users_block')) {
if (x($_POST, 'page_accounts_block')) {
for ($i = 0; $i < count($users); $i++) {
// if account is blocked remove blocked bit-flag, otherwise add blocked bit-flag
$op = ($blocked[$i]) ? '& ~' : '| ';
@@ -43,13 +44,13 @@ class Accounts {
notice( sprintf( tt("%s account deleted", "%s accounts deleted", count($users)), count($users)) );
}
// registration approved button was submitted
if (x($_POST, 'page_users_approve')) {
if (x($_POST, 'page_accounts_approve')) {
foreach ($pending as $hash) {
account_allow($hash);
}
}
// registration deny button was submitted
if (x($_POST, 'page_users_deny')) {
if (x($_POST, 'page_accounts_deny')) {
foreach ($pending as $hash) {
account_deny($hash);
}
@@ -132,12 +133,13 @@ class Accounts {
$base = z_root() . '/admin/accounts?f=';
$odir = (($dir === 'asc') ? '0' : '1');
$users = q("SELECT account_id , account_email, account_lastlog, account_created, account_expires, account_service_class, ( account_flags & %d ) > 0 as blocked,
(SELECT %s FROM channel as ch WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as channels FROM account as ac
where true $serviceclass order by $key $dir limit %d offset %d ",
where true $serviceclass and account_flags != %d order by $key $dir limit %d offset %d ",
intval(ACCOUNT_BLOCKED),
db_concat('ch.channel_address', ' '),
intval(ACCOUNT_BLOCKED | ACCOUNT_PENDING),
intval(\App::$pager['itemspage']),
intval(\App::$pager['start'])
);
@@ -202,4 +204,4 @@ class Accounts {
}
}
}

View File

@@ -0,0 +1,482 @@
<?php
namespace Zotlabs\Module\Admin;
use \Zotlabs\Storage\GitRepo;
use \Michelf\MarkdownExtra;
class Addons {
/**
* @brief
*
*/
function post() {
if(argc() > 2 && is_file("addon/" . argv(2) . "/" . argv(2) . ".php")) {
@include_once("addon/" . argv(2) . "/" . argv(2) . ".php");
if(function_exists(argv(2).'_plugin_admin_post')) {
$func = argv(2) . '_plugin_admin_post';
$func($a);
}
goaway(z_root() . '/admin/addons/' . argv(2) );
}
elseif(argc() > 2) {
switch(argv(2)) {
case 'updaterepo':
if (array_key_exists('repoName', $_REQUEST)) {
$repoName = $_REQUEST['repoName'];
}
else {
json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
}
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
}
else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
$repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
$git = new GitRepo('sys', null, false, $repoName, $repoDir);
try {
if ($git->pull()) {
$files = array_diff(scandir($repoDir), array('.', '..'));
foreach ($files as $file) {
if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
$source = '../extend/addon/' . $repoName . '/' . $file;
$target = realpath('addon/') . '/' . $file;
unlink($target);
if (!symlink($source, $target)) {
logger('Error linking addons to /addon');
json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
}
}
}
json_return_and_die(array('message' => 'Repo updated.', 'success' => true));
} else {
json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
}
} catch (\PHPGit\Exception\GitException $e) {
json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
}
case 'removerepo':
if (array_key_exists('repoName', $_REQUEST)) {
$repoName = $_REQUEST['repoName'];
} else {
json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
}
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
$repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
/// @TODO remove directory and unlink /addon/files
if (rrmdir($repoDir)) {
json_return_and_die(array('message' => 'Repo deleted.', 'success' => true));
} else {
json_return_and_die(array('message' => 'Error deleting addon repo.', 'success' => false));
}
case 'installrepo':
if (array_key_exists('repoURL', $_REQUEST)) {
require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
$repoURL = $_REQUEST['repoURL'];
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
if (!is_writable($extendDir)) {
logger('Directory not writable to web server: ' . $extendDir);
json_return_and_die(array('message' => 'Directory not writable to web server.', 'success' => false));
}
$repoName = null;
if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
$repoName = $_REQUEST['repoName'];
} else {
$repoName = GitRepo::getRepoNameFromURL($repoURL);
}
if (!$repoName) {
logger('Invalid git repo');
json_return_and_die(array('message' => 'Invalid git repo', 'success' => false));
}
$repoDir = $addonDir . '/' . $repoName;
$tempRepoBaseDir = 'store/[data]/git/sys/temp/';
$tempAddonDir = $tempRepoBaseDir . $repoName;
if (!is_writable($addonDir) || !is_writable($tempAddonDir)) {
logger('Temp repo directory or /extend/addon not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temp repo directory not writable to web server.', 'success' => false));
}
rename($tempAddonDir, $repoDir);
if (!is_writable(realpath('addon/'))) {
logger('/addon directory not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => '/addon directory not writable to web server.', 'success' => false));
}
$files = array_diff(scandir($repoDir), array('.', '..'));
foreach ($files as $file) {
if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
$source = '../extend/addon/' . $repoName . '/' . $file;
$target = realpath('addon/') . '/' . $file;
unlink($target);
if (!symlink($source, $target)) {
logger('Error linking addons to /addon');
json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
}
}
}
$git = new GitRepo('sys', $repoURL, false, $repoName, $repoDir);
$repo = $git->probeRepo();
json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
}
case 'addrepo':
if (array_key_exists('repoURL', $_REQUEST)) {
require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
$repoURL = $_REQUEST['repoURL'];
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
$tempAddonDir = realpath('store/[data]') . '/git/sys/temp';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
if (!is_dir($tempAddonDir)) {
if (!mkdir($tempAddonDir, 0770, true)) {
logger('Error creating temp plugin repo folder: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Error creating temp plugin repo folder: ' . $tempAddonDir, 'success' => false));
}
}
$repoName = null;
if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
$repoName = $_REQUEST['repoName'];
} else {
$repoName = GitRepo::getRepoNameFromURL($repoURL);
}
if (!$repoName) {
logger('Invalid git repo');
json_return_and_die(array('message' => 'Invalid git repo: ' . $repoName, 'success' => false));
}
$repoDir = $tempAddonDir . '/' . $repoName;
if (!is_writable($tempAddonDir)) {
logger('Temporary directory for new addon repo is not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temporary directory for new addon repo is not writable to web server.', 'success' => false));
}
// clone the repo if new automatically
$git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
$remotes = $git->git->remote();
$fetchURL = $remotes['origin']['fetch'];
if ($fetchURL !== $git->url) {
if (rrmdir($repoDir)) {
$git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
} else {
json_return_and_die(array('message' => 'Error deleting existing addon repo.', 'success' => false));
}
}
$repo = $git->probeRepo();
$repo['readme'] = $repo['manifest'] = null;
foreach ($git->git->tree('master') as $object) {
if ($object['type'] == 'blob' && (strtolower($object['file']) === 'readme.md' || strtolower($object['file']) === 'readme')) {
$repo['readme'] = MarkdownExtra::defaultTransform($git->git->cat->blob($object['hash']));
} else if ($object['type'] == 'blob' && strtolower($object['file']) === 'manifest.json') {
$repo['manifest'] = $git->git->cat->blob($object['hash']);
}
}
json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
} else {
json_return_and_die(array('message' => 'No repo URL provided', 'success' => false));
}
break;
default:
break;
}
}
}
/**
* @brief Addons admin page.
*
* @return string with parsed HTML
*/
function get() {
/*
* Single plugin
*/
if (\App::$argc == 3){
$plugin = \App::$argv[2];
if (!is_file("addon/$plugin/$plugin.php")){
notice( t("Item not found.") );
return '';
}
$enabled = in_array($plugin,\App::$plugins);
$info = get_plugin_info($plugin);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if($enabled && ! $x) {
$enabled = false;
$idz = array_search($plugin, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($plugin);
set_config("system","addon", implode(", ",\App::$plugins));
}
}
$info['disabled'] = 1-intval($x);
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/addons', 'admin_addons', 't');
$pinstalled = false;
// Toggle plugin status
$idx = array_search($plugin, \App::$plugins);
if ($idx !== false){
unset(\App::$plugins[$idx]);
uninstall_plugin($plugin);
$pinstalled = false;
info( sprintf( t("Plugin %s disabled."), $plugin ) );
} else {
\App::$plugins[] = $plugin;
install_plugin($plugin);
$pinstalled = true;
info( sprintf( t("Plugin %s enabled."), $plugin ) );
}
set_config("system","addon", implode(", ",\App::$plugins));
if($pinstalled) {
@require_once("addon/$plugin/$plugin.php");
if(function_exists($plugin.'_plugin_admin'))
goaway(z_root() . '/admin/addons/' . $plugin);
}
goaway(z_root() . '/admin/addons' );
}
// display plugin details
if (in_array($plugin, \App::$plugins)){
$status = 'on';
$action = t('Disable');
} else {
$status = 'off';
$action = t('Enable');
}
$readme = null;
if (is_file("addon/$plugin/README.md")){
$readme = file_get_contents("addon/$plugin/README.md");
$readme = MarkdownExtra::defaultTransform($readme);
} else if (is_file("addon/$plugin/README")){
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
}
$admin_form = '';
$r = q("select * from addon where plugin_admin = 1 and aname = '%s' limit 1",
dbesc($plugin)
);
if($r) {
@require_once("addon/$plugin/$plugin.php");
if(function_exists($plugin.'_plugin_admin')) {
$func = $plugin.'_plugin_admin';
$func($a, $admin_form);
}
}
$t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Addons'),
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => z_root(),
'$plugin' => $plugin,
'$status' => $status,
'$action' => $action,
'$info' => $info,
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$str_minversion' => t('Minimum project version: '),
'$str_maxversion' => t('Maximum project version: '),
'$str_minphpversion' => t('Minimum PHP version: '),
'$str_serverroles' => t('Compatible Server Roles: '),
'$str_requires' => t('Requires: '),
'$disabled' => t('Disabled - version incompatibility'),
'$admin_form' => $admin_form,
'$function' => 'addons',
'$screenshot' => '',
'$readme' => $readme,
'$form_security_token' => get_form_security_token('admin_addons'),
));
}
/*
* List plugins
*/
$plugins = array();
$files = glob('addon/*/');
if($files) {
foreach($files as $file) {
if (is_dir($file)){
if($file == 'addon/addon_common/')
continue;
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$enabled = in_array($id,\App::$plugins);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if($enabled && ! $x) {
$enabled = false;
$idz = array_search($id, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($id);
set_config("system","addon", implode(", ",\App::$plugins));
}
}
$info['disabled'] = 1-intval($x);
$plugins[] = array( $id, (($enabled)?"on":"off") , $info);
}
}
}
usort($plugins,'self::plugin_sort');
$allowManageRepos = false;
if(is_writable('extend/addon') && is_writable('store/[data]')) {
$allowManageRepos = true;
}
$admin_plugins_add_repo_form= replace_macros(
get_markup_template('admin_plugins_addrepo.tpl'), array(
'$post' => 'admin/addons/addrepo',
'$desc' => t('Enter the public git repository URL of the addon repo.'),
'$repoURL' => array('repoURL', t('Addon repo git URL'), '', ''),
'$repoName' => array('repoName', t('Custom repo name'), '', '', t('(optional)')),
'$submit' => t('Download Addon Repo')
)
);
$newRepoModalID = random_string(3);
$newRepoModal = replace_macros(
get_markup_template('generic_modal.tpl'), array(
'$id' => $newRepoModalID,
'$title' => t('Install new repo'),
'$ok' => t('Install'),
'$cancel' => t('Cancel')
)
);
$reponames = $this->listAddonRepos();
$addonrepos = [];
foreach($reponames as $repo) {
$addonrepos[] = array('name' => $repo, 'description' => '');
/// @TODO Parse repo info to provide more information about repos
}
$t = get_markup_template('admin_plugins.tpl');
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Addons'),
'$submit' => t('Submit'),
'$baseurl' => z_root(),
'$function' => 'addons',
'$plugins' => $plugins,
'$disabled' => t('Disabled - version incompatibility'),
'$form_security_token' => get_form_security_token('admin_addons'),
'$allowManageRepos' => $allowManageRepos,
'$managerepos' => t('Manage Repos'),
'$installedtitle' => t('Installed Addon Repositories'),
'$addnewrepotitle' => t('Install a New Addon Repository'),
'$expandform' => false,
'$form' => $admin_plugins_add_repo_form,
'$newRepoModal' => $newRepoModal,
'$newRepoModalID' => $newRepoModalID,
'$addonrepos' => $addonrepos,
'$repoUpdateButton' => t('Update'),
'$repoBranchButton' => t('Switch branch'),
'$repoRemoveButton' => t('Remove')
));
}
function listAddonRepos() {
$addonrepos = [];
$addonDir = 'extend/addon/';
if(is_dir($addonDir)) {
if ($handle = opendir($addonDir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$addonrepos[] = $entry;
}
}
closedir($handle);
}
}
return $addonrepos;
}
static public function plugin_sort($a,$b) {
return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
}
}

View File

@@ -7,36 +7,78 @@ namespace Zotlabs\Module\Admin;
class Dbsync {
function get() {
$o = '';
if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
set_config('database', 'update_r' . intval(argv(3)), 'success');
if(intval(get_config('system','db_version')) <= intval(argv(3)))
set_config('system','db_version',intval(argv(3)) + 1);
// remove the old style config if it exists
del_config('database', 'update_r' . intval(argv(3)));
set_config('database', '_' . intval(argv(3)), 'success');
if(intval(get_config('system','db_version')) < intval(argv(3)))
set_config('system','db_version',intval(argv(3)));
info( t('Update has been marked successful') . EOL);
goaway(z_root() . '/admin/dbsync');
}
if(argc() > 2 && intval(argv(2))) {
require_once('install/update.php');
$func = 'update_r' . intval(argv(2));
if(function_exists($func)) {
$retval = $func();
if($retval === UPDATE_FAILED) {
$o .= sprintf( t('Executing %s failed. Check system logs.'), $func);
if(argc() > 3 && intval(argv(3)) && argv(2) === 'verify') {
$s = '_' . intval(argv(3));
$cls = '\\Zotlabs\Update\\' . $s ;
if(class_exists($cls)) {
$c = new $cls();
if(method_exists($c,'verify')) {
$retval = $c->verify();
if($retval === UPDATE_FAILED) {
$o .= sprintf( t('Verification of update %s failed. Check system logs.'), $s);
}
elseif($retval === UPDATE_SUCCESS) {
$o .= sprintf( t('Update %s was successfully applied.'), $s);
set_config('database',$s, 'success');
}
else
$o .= sprintf( t('Verifying update %s did not return a status. Unknown if it succeeded.'), $s);
}
elseif($retval === UPDATE_SUCCESS) {
$o .= sprintf( t('Update %s was successfully applied.'), $func);
set_config('database',$func, 'success');
else {
$o .= sprintf( t('Update %s does not contain a verification function.'), $s );
}
else
$o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
}
else
$o .= sprintf( t('Update function %s could not be found.'), $func);
$o .= sprintf( t('Update function %s could not be found.'), $s);
return $o;
// remove the old style config if it exists
del_config('database', 'update_r' . intval(argv(3)));
set_config('database', '_' . intval(argv(3)), 'success');
if(intval(get_config('system','db_version')) < intval(argv(3)))
set_config('system','db_version',intval(argv(3)));
info( t('Update has been marked successful') . EOL);
goaway(z_root() . '/admin/dbsync');
}
if(argc() > 2 && intval(argv(2))) {
$x = intval(argv(2));
$s = '_' . $x;
$cls = '\\Zotlabs\Update\\' . $s ;
if(class_exists($cls)) {
$c = new $cls();
$retval = $c->run();
if($retval === UPDATE_FAILED) {
$o .= sprintf( t('Executing update procedure %s failed. Check system logs.'), $s);
}
elseif($retval === UPDATE_SUCCESS) {
$o .= sprintf( t('Update %s was successfully applied.'), $s);
set_config('database',$s, 'success');
}
else
$o .= sprintf( t('Update %s did not return a status. It cannot be determined if it was successful.'), $s);
}
else
$o .= sprintf( t('Update function %s could not be found.'), $s);
return $o;
}
@@ -45,23 +87,26 @@ class Dbsync {
$r = q("select * from config where cat = 'database' ");
if(count($r)) {
foreach($r as $rr) {
$upd = intval(substr($rr['k'],8));
$upd = intval(substr($rr['k'],-4));
if($rr['v'] === 'success')
continue;
$failed[] = $upd;
}
}
if(! count($failed))
return '<div class="generic-content-wrapper-styled"><h3>' . t('No failed updates.') . '</h3></div>';
$o = replace_macros(get_markup_template('failed_updates.tpl'),array(
'$base' => z_root(),
'$banner' => t('Failed Updates'),
'$desc' => '',
'$mark' => t('Mark success (if update was manually applied)'),
'$apply' => t('Attempt to execute this update step automatically'),
'$failed' => $failed
if(count($failed)) {
$o = replace_macros(get_markup_template('failed_updates.tpl'),array(
'$base' => z_root(),
'$banner' => t('Failed Updates'),
'$desc' => '',
'$mark' => t('Mark success (if update was manually applied)'),
'$verify' => t('Attempt to verify this update if a verification procedure exists'),
'$apply' => t('Attempt to execute this update step automatically'),
'$failed' => $failed
));
}
else {
return '<div class="generic-content-wrapper-styled"><h3>' . t('No failed updates.') . '</h3></div>';
}
return $o;
}

View File

@@ -1,479 +0,0 @@
<?php
namespace Zotlabs\Module\Admin;
use \Zotlabs\Storage\GitRepo as GitRepo;
use \Michelf\MarkdownExtra;
class Plugins {
/**
* @brief
*
*/
function post() {
if(argc() > 2 && is_file("addon/" . argv(2) . "/" . argv(2) . ".php")) {
@include_once("addon/" . argv(2) . "/" . argv(2) . ".php");
if(function_exists(argv(2).'_plugin_admin_post')) {
$func = argv(2) . '_plugin_admin_post';
$func($a);
}
goaway(z_root() . '/admin/plugins/' . argv(2) );
}
elseif(argc() > 2) {
switch(argv(2)) {
case 'updaterepo':
if (array_key_exists('repoName', $_REQUEST)) {
$repoName = $_REQUEST['repoName'];
}
else {
json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
}
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
}
else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
$repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
$git = new GitRepo('sys', null, false, $repoName, $repoDir);
try {
if ($git->pull()) {
$files = array_diff(scandir($repoDir), array('.', '..'));
foreach ($files as $file) {
if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
$source = '../extend/addon/' . $repoName . '/' . $file;
$target = realpath('addon/') . '/' . $file;
unlink($target);
if (!symlink($source, $target)) {
logger('Error linking addons to /addon');
json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
}
}
}
json_return_and_die(array('message' => 'Repo updated.', 'success' => true));
} else {
json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
}
} catch (\PHPGit\Exception\GitException $e) {
json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
}
case 'removerepo':
if (array_key_exists('repoName', $_REQUEST)) {
$repoName = $_REQUEST['repoName'];
} else {
json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
}
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
$repoDir = 'store/[data]/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
/// @TODO remove directory and unlink /addon/files
if (rrmdir($repoDir)) {
json_return_and_die(array('message' => 'Repo deleted.', 'success' => true));
} else {
json_return_and_die(array('message' => 'Error deleting addon repo.', 'success' => false));
}
case 'installrepo':
if (array_key_exists('repoURL', $_REQUEST)) {
require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
$repoURL = $_REQUEST['repoURL'];
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
if (!is_writable($extendDir)) {
logger('Directory not writable to web server: ' . $extendDir);
json_return_and_die(array('message' => 'Directory not writable to web server.', 'success' => false));
}
$repoName = null;
if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
$repoName = $_REQUEST['repoName'];
} else {
$repoName = GitRepo::getRepoNameFromURL($repoURL);
}
if (!$repoName) {
logger('Invalid git repo');
json_return_and_die(array('message' => 'Invalid git repo', 'success' => false));
}
$repoDir = $addonDir . '/' . $repoName;
$tempRepoBaseDir = 'store/[data]/git/sys/temp/';
$tempAddonDir = $tempRepoBaseDir . $repoName;
if (!is_writable($addonDir) || !is_writable($tempAddonDir)) {
logger('Temp repo directory or /extend/addon not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temp repo directory not writable to web server.', 'success' => false));
}
rename($tempAddonDir, $repoDir);
if (!is_writable(realpath('addon/'))) {
logger('/addon directory not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => '/addon directory not writable to web server.', 'success' => false));
}
$files = array_diff(scandir($repoDir), array('.', '..'));
foreach ($files as $file) {
if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
$source = '../extend/addon/' . $repoName . '/' . $file;
$target = realpath('addon/') . '/' . $file;
unlink($target);
if (!symlink($source, $target)) {
logger('Error linking addons to /addon');
json_return_and_die(array('message' => 'Error linking addons to /addon', 'success' => false));
}
}
}
$git = new GitRepo('sys', $repoURL, false, $repoName, $repoDir);
$repo = $git->probeRepo();
json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
}
case 'addrepo':
if (array_key_exists('repoURL', $_REQUEST)) {
require_once('library/PHPGit.autoload.php'); // Load PHPGit dependencies
$repoURL = $_REQUEST['repoURL'];
$extendDir = 'store/[data]/git/sys/extend';
$addonDir = $extendDir . '/addon';
$tempAddonDir = realpath('store/[data]') . '/git/sys/temp';
if (!file_exists($extendDir)) {
if (!mkdir($extendDir, 0770, true)) {
logger('Error creating extend folder: ' . $extendDir);
json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false));
} else {
if (!symlink(realpath('extend/addon'), $addonDir)) {
logger('Error creating symlink to addon folder: ' . $addonDir);
json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false));
}
}
}
if (!is_dir($tempAddonDir)) {
if (!mkdir($tempAddonDir, 0770, true)) {
logger('Error creating temp plugin repo folder: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Error creating temp plugin repo folder: ' . $tempAddonDir, 'success' => false));
}
}
$repoName = null;
if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
$repoName = $_REQUEST['repoName'];
} else {
$repoName = GitRepo::getRepoNameFromURL($repoURL);
}
if (!$repoName) {
logger('Invalid git repo');
json_return_and_die(array('message' => 'Invalid git repo: ' . $repoName, 'success' => false));
}
$repoDir = $tempAddonDir . '/' . $repoName;
if (!is_writable($tempAddonDir)) {
logger('Temporary directory for new addon repo is not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temporary directory for new addon repo is not writable to web server.', 'success' => false));
}
// clone the repo if new automatically
$git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
$remotes = $git->git->remote();
$fetchURL = $remotes['origin']['fetch'];
if ($fetchURL !== $git->url) {
if (rrmdir($repoDir)) {
$git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
} else {
json_return_and_die(array('message' => 'Error deleting existing addon repo.', 'success' => false));
}
}
$repo = $git->probeRepo();
$repo['readme'] = $repo['manifest'] = null;
foreach ($git->git->tree('master') as $object) {
if ($object['type'] == 'blob' && (strtolower($object['file']) === 'readme.md' || strtolower($object['file']) === 'readme')) {
$repo['readme'] = MarkdownExtra::defaultTransform($git->git->cat->blob($object['hash']));
} else if ($object['type'] == 'blob' && strtolower($object['file']) === 'manifest.json') {
$repo['manifest'] = $git->git->cat->blob($object['hash']);
}
}
json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
} else {
json_return_and_die(array('message' => 'No repo URL provided', 'success' => false));
}
break;
default:
break;
}
}
}
/**
* @brief Plugins admin page.
*
* @return string with parsed HTML
*/
function get() {
/*
* Single plugin
*/
if (\App::$argc == 3){
$plugin = \App::$argv[2];
if (!is_file("addon/$plugin/$plugin.php")){
notice( t("Item not found.") );
return '';
}
$enabled = in_array($plugin,\App::$plugins);
$info = get_plugin_info($plugin);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if($enabled && ! $x) {
$enabled = false;
$idz = array_search($plugin, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($plugin);
set_config("system","addon", implode(", ",\App::$plugins));
}
}
$info['disabled'] = 1-intval($x);
if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
$pinstalled = false;
// Toggle plugin status
$idx = array_search($plugin, \App::$plugins);
if ($idx !== false){
unset(\App::$plugins[$idx]);
uninstall_plugin($plugin);
$pinstalled = false;
info( sprintf( t("Plugin %s disabled."), $plugin ) );
} else {
\App::$plugins[] = $plugin;
install_plugin($plugin);
$pinstalled = true;
info( sprintf( t("Plugin %s enabled."), $plugin ) );
}
set_config("system","addon", implode(", ",\App::$plugins));
if($pinstalled) {
@require_once("addon/$plugin/$plugin.php");
if(function_exists($plugin.'_plugin_admin'))
goaway(z_root() . '/admin/plugins/' . $plugin);
}
goaway(z_root() . '/admin/plugins' );
}
// display plugin details
if (in_array($plugin, \App::$plugins)){
$status = 'on';
$action = t('Disable');
} else {
$status = 'off';
$action = t('Enable');
}
$readme = null;
if (is_file("addon/$plugin/README.md")){
$readme = file_get_contents("addon/$plugin/README.md");
$readme = MarkdownExtra::defaultTransform($readme);
} else if (is_file("addon/$plugin/README")){
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
}
$admin_form = '';
$r = q("select * from addon where plugin_admin = 1 and aname = '%s' limit 1",
dbesc($plugin)
);
if($r) {
@require_once("addon/$plugin/$plugin.php");
if(function_exists($plugin.'_plugin_admin')) {
$func = $plugin.'_plugin_admin';
$func($a, $admin_form);
}
}
$t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Plugins'),
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => z_root(),
'$plugin' => $plugin,
'$status' => $status,
'$action' => $action,
'$info' => $info,
'$str_author' => t('Author: '),
'$str_maintainer' => t('Maintainer: '),
'$str_minversion' => t('Minimum project version: '),
'$str_maxversion' => t('Maximum project version: '),
'$str_minphpversion' => t('Minimum PHP version: '),
'$str_serverroles' => t('Compatible Server Roles: '),
'$str_requires' => t('Requires: '),
'$disabled' => t('Disabled - version incompatibility'),
'$admin_form' => $admin_form,
'$function' => 'plugins',
'$screenshot' => '',
'$readme' => $readme,
'$form_security_token' => get_form_security_token('admin_plugins'),
));
}
/*
* List plugins
*/
$plugins = array();
$files = glob('addon/*/');
if($files) {
foreach($files as $file) {
if (is_dir($file)){
list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id);
$enabled = in_array($id,\App::$plugins);
$x = check_plugin_versions($info);
// disable plugins which are installed but incompatible versions
if($enabled && ! $x) {
$enabled = false;
$idz = array_search($id, \App::$plugins);
if ($idz !== false) {
unset(\App::$plugins[$idz]);
uninstall_plugin($id);
set_config("system","addon", implode(", ",\App::$plugins));
}
}
$info['disabled'] = 1-intval($x);
$plugins[] = array( $id, (($enabled)?"on":"off") , $info);
}
}
}
usort($plugins,'self::plugin_sort');
$allowManageRepos = false;
if(is_writable('extend/addon') && is_writable('store/[data]')) {
$allowManageRepos = true;
}
$admin_plugins_add_repo_form= replace_macros(
get_markup_template('admin_plugins_addrepo.tpl'), array(
'$post' => 'admin/plugins/addrepo',
'$desc' => t('Enter the public git repository URL of the plugin repo.'),
'$repoURL' => array('repoURL', t('Plugin repo git URL'), '', ''),
'$repoName' => array('repoName', t('Custom repo name'), '', '', t('(optional)')),
'$submit' => t('Download Plugin Repo')
)
);
$newRepoModalID = random_string(3);
$newRepoModal = replace_macros(
get_markup_template('generic_modal.tpl'), array(
'$id' => $newRepoModalID,
'$title' => t('Install new repo'),
'$ok' => t('Install'),
'$cancel' => t('Cancel')
)
);
$reponames = $this->listAddonRepos();
$addonrepos = [];
foreach($reponames as $repo) {
$addonrepos[] = array('name' => $repo, 'description' => '');
/// @TODO Parse repo info to provide more information about repos
}
$t = get_markup_template('admin_plugins.tpl');
return replace_macros($t, array(
'$title' => t('Administration'),
'$page' => t('Plugins'),
'$submit' => t('Submit'),
'$baseurl' => z_root(),
'$function' => 'plugins',
'$plugins' => $plugins,
'$disabled' => t('Disabled - version incompatibility'),
'$form_security_token' => get_form_security_token('admin_plugins'),
'$allowManageRepos' => $allowManageRepos,
'$managerepos' => t('Manage Repos'),
'$installedtitle' => t('Installed Plugin Repositories'),
'$addnewrepotitle' => t('Install a New Plugin Repository'),
'$expandform' => false,
'$form' => $admin_plugins_add_repo_form,
'$newRepoModal' => $newRepoModal,
'$newRepoModalID' => $newRepoModalID,
'$addonrepos' => $addonrepos,
'$repoUpdateButton' => t('Update'),
'$repoBranchButton' => t('Switch branch'),
'$repoRemoveButton' => t('Remove')
));
}
function listAddonRepos() {
$addonrepos = [];
$addonDir = 'extend/addon/';
if(is_dir($addonDir)) {
if ($handle = opendir($addonDir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$addonrepos[] = $entry;
}
}
closedir($handle);
}
}
return $addonrepos;
}
static public function plugin_sort($a,$b) {
return(strcmp(strtolower($a[2]['name']),strtolower($b[2]['name'])));
}
}

View File

@@ -9,17 +9,37 @@ class Profs {
if(array_key_exists('basic',$_REQUEST)) {
$arr = explode(',',$_REQUEST['basic']);
for($x = 0; $x < count($arr); $x ++)
if(trim($arr[$x]))
$arr[$x] = trim($arr[$x]);
set_config('system','profile_fields_basic',$arr);
array_walk($arr,'array_trim');
$narr = [];
if(count($arr)) {
foreach($arr as $a) {
if(strlen($a)) {
$narr[] = $a;
}
}
}
if(! $narr)
del_config('system','profile_fields_basic');
else
set_config('system','profile_fields_basic',$narr);
if(array_key_exists('advanced',$_REQUEST)) {
$arr = explode(',',$_REQUEST['advanced']);
for($x = 0; $x < count($arr); $x ++)
if(trim($arr[$x]))
$arr[$x] = trim($arr[$x]);
set_config('system','profile_fields_advanced',$arr);
array_walk($arr,'array_trim');
$narr = [];
if(count($arr)) {
foreach($arr as $a) {
if(strlen($a)) {
$narr[] = $a;
}
}
}
if(! $narr)
del_config('system','profile_fields_advanced');
else
set_config('system','profile_fields_advanced',$narr);
}
goaway(z_root() . '/admin/profs');
}
@@ -98,6 +118,7 @@ class Profs {
$basic = '';
$barr = array();
$fields = get_profile_fields_basic();
if(! $fields)
$fields = get_profile_fields_basic(1);
if($fields) {

View File

@@ -16,7 +16,13 @@ class Security {
$block_public = ((x($_POST,'block_public')) ? True : False);
set_config('system','block_public',$block_public);
$cloud_noroot = ((x($_POST,'cloud_noroot')) ? 1 : 0);
set_config('system','cloud_disable_siteroot',1 - $cloud_noroot);
$cloud_disksize = ((x($_POST,'cloud_disksize')) ? 1 : 0);
set_config('system','cloud_report_disksize',$cloud_disksize);
$ws = $this->trim_array_elems(explode("\n",$_POST['whitelisted_sites']));
set_config('system','whitelisted_sites',$ws);
@@ -52,24 +58,24 @@ class Security {
function get() {
$whitesites = get_config('system','whitelisted_sites');
$whitesites_str = ((is_array($whitesites)) ? implode($whitesites,"\n") : '');
$whitesites_str = ((is_array($whitesites)) ? implode("\n",$whitesites) : '');
$blacksites = get_config('system','blacklisted_sites');
$blacksites_str = ((is_array($blacksites)) ? implode($blacksites,"\n") : '');
$blacksites_str = ((is_array($blacksites)) ? implode("\n",$blacksites) : '');
$whitechannels = get_config('system','whitelisted_channels');
$whitechannels_str = ((is_array($whitechannels)) ? implode($whitechannels,"\n") : '');
$whitechannels_str = ((is_array($whitechannels)) ? implode("\n",$whitechannels) : '');
$blackchannels = get_config('system','blacklisted_channels');
$blackchannels_str = ((is_array($blackchannels)) ? implode($blackchannels,"\n") : '');
$blackchannels_str = ((is_array($blackchannels)) ? implode("\n",$blackchannels) : '');
$whiteembeds = get_config('system','embed_allow');
$whiteembeds_str = ((is_array($whiteembeds)) ? implode($whiteembeds,"\n") : '');
$whiteembeds_str = ((is_array($whiteembeds)) ? implode("\n",$whiteembeds) : '');
$blackembeds = get_config('system','embed_deny');
$blackembeds_str = ((is_array($blackembeds)) ? implode($blackembeds,"\n") : '');
$blackembeds_str = ((is_array($blackembeds)) ? implode("\n",$blackembeds) : '');
$embed_coop = intval(get_config('system','embed_coop'));
@@ -87,6 +93,8 @@ class Security {
'$page' => t('Security'),
'$form_security_token' => get_form_security_token('admin_security'),
'$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated.")),
'$cloud_noroot' => [ 'cloud_noroot', t('Provide a cloud root directory'), 1 - intval(get_config('system','cloud_disable_siteroot')), t('The cloud root directory lists all channel names which provide public files') ],
'$cloud_disksize' => [ 'cloud_disksize', t('Show total disk space available to cloud uploads'), intval(get_config('system','cloud_report_disksize')), '' ],
'$transport_security' => array('transport_security', t('Set "Transport Security" HTTP header'),intval(get_config('system','transport_security_header')),''),
'$content_security' => array('content_security', t('Set "Content Security Policy" HTTP header'),intval(get_config('system','content_security_policy')),''),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),

View File

@@ -24,28 +24,39 @@ class Site {
$siteinfo = ((x($_POST,'siteinfo')) ? trim($_POST['siteinfo']) : '');
$language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : '');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : '');
$theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
// $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : '');
// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
$minimum_age = ((x($_POST,'minimum_age')) ? intval(trim($_POST['minimum_age'])) : 13);
$access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
$invite_only = ((x($_POST,'invite_only')) ? True : False);
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
$register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : '');
$site_sellpage = ((x($_POST,'site_sellpage')) ? notags(trim($_POST['site_sellpage'])) : '');
$site_location = ((x($_POST,'site_location')) ? notags(trim($_POST['site_location'])) : '');
$frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : '');
$firstpage = ((x($_POST,'firstpage')) ? notags(trim($_POST['firstpage'])) : 'profiles');
$first_page = ((x($_POST,'first_page')) ? notags(trim($_POST['first_page'])) : 'profiles');
// check value after trim
if(! $first_page) {
$first_page = 'profiles';
}
$mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0);
$directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : '');
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
$force_publish = ((x($_POST,'publish_all')) ? True : False);
$disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True);
$site_firehose = ((x($_POST,'site_firehose')) ? True : False);
$open_pubstream = ((x($_POST,'open_pubstream')) ? True : False);
$login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False);
$enable_context_help = ((x($_POST,'enable_context_help')) ? True : False);
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
$default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0);
$active_expire_days = ((array_key_exists('active_expire_days',$_POST)) ? intval($_POST['active_expire_days']) : 7);
$reply_address = ((array_key_exists('reply_address',$_POST) && trim($_POST['reply_address'])) ? trim($_POST['reply_address']) : 'noreply@' . \App::get_hostname());
$from_email = ((array_key_exists('from_email',$_POST) && trim($_POST['from_email'])) ? trim($_POST['from_email']) : 'Administrator@' . \App::get_hostname());
@@ -61,14 +72,13 @@ class Site {
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
$verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
$techlevel_lock = ((x($_POST,'techlock')) ? intval($_POST['techlock']) : 0);
$imagick_path = ((x($_POST,'imagick_path')) ? trim($_POST['imagick_path']) : '');
$thumbnail_security = ((x($_POST,'thumbnail_security')) ? intval($_POST['thumbnail_security']) : 0);
$force_queue = ((intval($_POST['force_queue']) > 0) ? intval($_POST['force_queue']) : 300);
$force_queue = ((intval($_POST['force_queue']) > 0) ? intval($_POST['force_queue']) : 3000);
$pub_incl = escape_tags(trim($_POST['pub_incl']));
$pub_excl = escape_tags(trim($_POST['pub_excl']));
$techlevel = null;
if(array_key_exists('techlevel', $_POST))
$techlevel = intval($_POST['techlevel']);
$permissions_role = escape_tags(trim($_POST['permissions_role']));
set_config('system', 'feed_contacts', $feed_contacts);
set_config('system', 'delivery_interval', $delivery_interval);
@@ -76,24 +86,25 @@ class Site {
set_config('system', 'poll_interval', $poll_interval);
set_config('system', 'maxloadavg', $maxloadavg);
set_config('system', 'frontpage', $frontpage);
set_config('system', 'sellpage', $site_sellpage);
set_config('system', 'workflow_channel_next', $first_page);
set_config('system', 'site_location', $site_location);
set_config('system', 'mirror_frontpage', $mirror_frontpage);
set_config('system', 'sitename', $sitename);
set_config('system', 'login_on_homepage', $login_on_homepage);
set_config('system', 'enable_context_help', $enable_context_help);
set_config('system', 'verify_email', $verify_email);
set_config('system', 'default_expire_days', $default_expire_days);
set_config('system', 'active_expire_days', $active_expire_days);
set_config('system', 'reply_address', $reply_address);
set_config('system', 'from_email', $from_email);
set_config('system', 'from_email_name' , $from_email_name);
set_config('system', 'imagick_convert_path' , $imagick_path);
set_config('system', 'thumbnail_security' , $thumbnail_security);
set_config('system', 'default_permissions_role', $permissions_role);
set_config('system', 'pubstream_incl',$pub_incl);
set_config('system', 'pubstream_excl',$pub_excl);
set_config('system', 'techlevel_lock', $techlevel_lock);
if(! is_null($techlevel))
set_config('system', 'techlevel', $techlevel);
if($directory_server)
set_config('system','directory_server',$directory_server);
@@ -108,21 +119,22 @@ class Site {
del_config('system', 'admininfo');
} else {
require_once('include/text.php');
linkify_tags($a, $admininfo, local_channel());
linkify_tags($admininfo, local_channel());
set_config('system', 'admininfo', $admininfo);
}
set_config('system','siteinfo',$siteinfo);
set_config('system', 'language', $language);
set_config('system', 'theme', $theme);
if ( $theme_mobile === '---' ) {
del_config('system', 'mobile_theme');
} else {
set_config('system', 'mobile_theme', $theme_mobile);
}
// if ( $theme_mobile === '---' ) {
// del_config('system', 'mobile_theme');
// } else {
// set_config('system', 'mobile_theme', $theme_mobile);
// }
// set_config('system','site_channel', $site_channel);
set_config('system','maximagesize', $maximagesize);
set_config('system','register_policy', $register_policy);
set_config('system','minimum_age', $minimum_age);
set_config('system','invitation_only', $invite_only);
set_config('system','access_policy', $access_policy);
set_config('system','account_abandon_days', $abandon_days);
@@ -130,6 +142,8 @@ class Site {
set_config('system','allowed_sites', $allowed_sites);
set_config('system','publish_all', $force_publish);
set_config('system','disable_discover_tab', $disable_discover_tab);
set_config('system','site_firehose', $site_firehose);
set_config('system','open_pubstream', $open_pubstream);
set_config('system','force_queue_threshold', $force_queue);
if ($global_directory == '') {
del_config('system', 'directory_submit_url');
@@ -209,9 +223,10 @@ class Site {
$realm = get_directory_realm();
// directory server should not be set or settable unless we are a directory client
// avoid older redmatrix servers which don't have modern encryption
if($dirmode == DIRECTORY_MODE_NORMAL) {
$x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s' and site_dead = 0",
$x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s' and site_dead = 0 and site_project != 'redmatrix'",
intval(DIRECTORY_MODE_SECONDARY),
intval(DIRECTORY_MODE_PRIMARY),
dbesc($realm)
@@ -258,14 +273,11 @@ class Site {
// now invert the logic for the setting.
$discover_tab = (1 - $discover_tab);
$techlevels = [
'0' => t('Beginner/Basic'),
'1' => t('Novice - not skilled but willing to learn'),
'2' => t('Intermediate - somewhat comfortable'),
'3' => t('Advanced - very comfortable'),
'4' => t('Expert - I can write computer code'),
'5' => t('Wizard - I probably know more than you do')
];
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
$default_role = get_config('system','default_permissions_role','social');
$role = array('permissions_role' , t('Default permission role for new accounts'), $default_role, t('This role will be used for the first channel created after registration.'),$perm_roles);
$homelogin = get_config('system','login_on_homepage');
$enable_context_help = get_config('system','enable_context_help');
@@ -284,30 +296,34 @@ class Site {
// name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
'$techlevel' => [ 'techlevel', t('Site default technical skill level'), get_config('system','techlevel'), t('Used to provide a member experience matched to technical comfort level'), $techlevels ],
'$techlock' => [ 'techlock', t('Lock the technical skill level setting'), get_config('system','techlevel_lock'), t('Members can set their own technical comfort level by default') ],
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, t('Unfiltered HTML/CSS/JS is allowed')),
'$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
'$siteinfo' => array('siteinfo', t('Site Information'), get_config('system','siteinfo'), t("Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here")),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile),
// '$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile),
// '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")),
'$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')),
'$maximagesize' => array('maximagesize', t("Maximum image size"), intval(get_config('system','maximagesize')), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices),
'$invite_only' => array('invite_only', t("Invitation only"), get_config('system','invitation_only'), t("Only allow new member registrations with an invitation code. Above register policy must be set to Yes.")),
'$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), "This is displayed on the public server site list.", $access_choices),
'$minimum_age' => array('minimum_age', t("Minimum age"), (x(get_config('system','minimum_age'))?get_config('system','minimum_age'):13), t("Minimum age (in years) for who may register on this site.")),
'$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), t("This is displayed on the public server site list."), $access_choices),
'$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
'$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
'$role' => $role,
'$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'pubstream' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
'$mirror_frontpage' => array('mirror_frontpage', t("Preserve site homepage URL"), get_config('system','mirror_frontpage'), t('Present the site homepage in a frame at the original location instead of redirecting')),
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
'$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')),
'$site_firehose' => array('site_firehose', t('Site only Public Streams'), get_config('system','site_firehose'), t('Allow access to public content originating only from this site if Imported Public Streams are disabled.')),
'$open_pubstream' => array('open_pubstream', t('Allow anybody on the internet to access the Public streams'), get_config('system','open_pubstream',1), t('Disable to require authentication before viewing. Warning: this content is unmoderated.')),
'$incl' => array('pub_incl',t('Only import Public stream posts with this text'), get_config('system','pubstream_incl'),t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')),
'$excl' => array('pub_excl',t('Do not import Public stream posts with this text'), get_config('system','pubstream_excl'),t('words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts')),
'$login_on_homepage' => array('login_on_homepage', t("Login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")),
'$enable_context_help' => array('enable_context_help', t("Enable context help"),((intval($enable_context_help) === 1 || $enable_context_help === false) ? 1 : 0) , t("Display contextual help for the current page when the help button is pressed.")),
@@ -322,12 +338,20 @@ class Site {
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
'$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
'$delivery_batch_count' => array('delivery_batch_count', t('Deliveries per process'),(x(get_config('system','delivery_batch_count'))?get_config('system','delivery_batch_count'):1), t("Number of deliveries to attempt in a single operating system process. Adjust if necessary to tune system performance. Recommend: 1-5.")),
'$force_queue' => array('force_queue', t("Queue Threshold"), get_config('system','force_queue_threshold',300), t("Always defer immediate delivery if queue contains more than this number of entries.")),
'$force_queue' => array('force_queue', t("Queue Threshold"), get_config('system','force_queue_threshold',3000), t("Always defer immediate delivery if queue contains more than this number of entries.")),
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$imagick_path' => array('imagick_path', t("Path to ImageMagick convert program"), get_config('system','imagick_convert_path'), t("If set, use this program to generate photo thumbnails for huge images ( > 4000 pixels in either dimension), otherwise memory exhaustion may occur. Example: /usr/bin/convert")),
'$thumbnail_security' => array('thumbnail_security', t("Allow SVG thumbnails in file browser"), get_config('system','thumbnail_security',0), t("WARNING: SVG images may contain malicious code.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$default_expire_days' => array('default_expire_days', t('Expiration period in days for imported (grid/network) content'), intval(get_config('system','default_expire_days')), t('0 for no expiration of imported content')),
'$active_expire_days' => array('active_expire_days', t('Do not expire any posts which have comments less than this many days ago'), intval(get_config('system','active_expire_days',7)), ''),
'$sellpage' => array('site_sellpage', t('Public servers: Optional landing (marketing) webpage for new registrants'), get_config('system','sellpage',''), sprintf( t('Create this page first. Default is %s/register'),z_root())),
'$first_page' => array('first_page', t('Page to display after creating a new channel'), get_config('system','workflow_channel_next','profiles'), t('Default: profiles')),
'$location' => array('site_location', t('Optional: site location'), get_config('system','site_location',''), t('Region or country')),
'$form_security_token' => get_form_security_token("admin_site"),
));
}

View File

@@ -0,0 +1,94 @@
<?php
namespace Zotlabs\Module;
use App;
use Zotlabs\Lib\Apps;
use Zotlabs\Lib\Libsync;
class Affinity extends \Zotlabs\Web\Controller {
function post() {
if(! local_channel())
return;
if(! Apps::system_app_installed(local_channel(),'Affinity Tool'))
return;
check_form_security_token_redirectOnErr('affinity', 'affinity');
$cmax = intval($_POST['affinity_cmax']);
if($cmax < 0 || $cmax > 99)
$cmax = 99;
$cmin = intval($_POST['affinity_cmin']);
if($cmin < 0 || $cmin > 99)
$cmin = 0;
$lock = intval($_POST['affinity_lock']);
set_pconfig(local_channel(),'affinity','cmin',$cmin);
set_pconfig(local_channel(),'affinity','cmax',$cmax);
set_pconfig(local_channel(),'affinity','lock',$lock);
info( t('Affinity Tool settings updated.') . EOL);
Libsync::build_sync_packet();
}
function get() {
if(! local_channel())
return;
$desc = t('This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.');
if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) {
//Do not display any associated widgets at this point
App::$pdl = '';
$o = '<b>' . t('Affinity Tool App') . ' (' . t('Not Installed') . '):</b><br>';
$o .= $desc;
return $o;
}
$text = t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.');
$content = '<div class="section-content-info-wrapper">' . $text . '</div>';
$cmax = intval(get_pconfig(local_channel(),'affinity','cmax'));
$cmax = (($cmax) ? $cmax : 99);
$content .= replace_macros(get_markup_template('field_input.tpl'), array(
'$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99'))
));
$cmin = intval(get_pconfig(local_channel(),'affinity','cmin'));
$cmin = (($cmin) ? $cmin : 0);
$content .= replace_macros(get_markup_template('field_input.tpl'), array(
'$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0'))
));
$lock = intval(get_pconfig(local_channel(),'affinity','lock',1));
$content .= replace_macros(get_markup_template('field_checkbox.tpl'), array(
'$field' => array('affinity_lock', t('Persistent affinity levels'), $lock, t('If disabled the max and min levels will be reset to default after page reload'), ['No','Yes'])
));
$tpl = get_markup_template("settings_addon.tpl");
$o = replace_macros($tpl, array(
'$action_url' => 'affinity',
'$form_security_token' => get_form_security_token("affinity"),
'$title' => t('Affinity Tool Settings'),
'$content' => $content,
'$baseurl' => z_root(),
'$submit' => t('Submit'),
));
return $o;
}
}

View File

@@ -39,10 +39,12 @@ class Api extends \Zotlabs\Web\Controller {
// get consumer/client from request token
try {
$request = OAuth1Request::from_request();
$request = \OAuth1Request::from_request();
}
catch(\Exception $e) {
echo "<pre>"; var_dump($e); killme();
logger('OAuth exception: ' . print_r($e,true));
// echo "<pre>"; var_dump($e);
killme();
}
@@ -52,7 +54,7 @@ class Api extends \Zotlabs\Web\Controller {
if (is_null($app))
return "Invalid request. Unknown token.";
$consumer = new OAuth1Consumer($app['client_id'], $app['pw'], $app['redirect_uri']);
$consumer = new \OAuth1Consumer($app['client_id'], $app['pw'], $app['redirect_uri']);
$verifier = md5($app['secret'] . local_channel());
set_config('oauth', $verifier, local_channel());
@@ -63,7 +65,7 @@ class Api extends \Zotlabs\Web\Controller {
$glue = '?';
if(strstr($consumer->callback_url,$glue))
$glue = '?';
goaway($consumer->callback_url . $glue . "oauth_token=" . OAuth1Util::urlencode_rfc3986($params['oauth_token']) . "&oauth_verifier=" . OAuth1Util::urlencode_rfc3986($verifier));
goaway($consumer->callback_url . $glue . "oauth_token=" . \OAuth1Util::urlencode_rfc3986($params['oauth_token']) . "&oauth_verifier=" . \OAuth1Util::urlencode_rfc3986($verifier));
killme();
}

View File

@@ -25,6 +25,7 @@ class Appman extends \Zotlabs\Web\Controller {
'photo' => escape_tags($_REQUEST['photo']),
'version' => escape_tags($_REQUEST['version']),
'price' => escape_tags($_REQUEST['price']),
'page' => escape_tags($_REQUEST['page']),
'requires' => escape_tags($_REQUEST['requires']),
'system' => intval($_REQUEST['system']),
'plugin' => escape_tags($_REQUEST['plugin']),
@@ -89,12 +90,12 @@ class Appman extends \Zotlabs\Web\Controller {
$channel = \App::get_channel();
if(argc() > 2) {
if(argc() > 3) {
if(argv(2) === 'moveup') {
Zlib\Apps::moveup(local_channel(),argv(1));
Zlib\Apps::moveup(local_channel(),argv(1),argv(3));
}
if(argv(2) === 'movedown') {
Zlib\Apps::movedown(local_channel(),argv(1));
Zlib\Apps::movedown(local_channel(),argv(1),argv(3));
}
goaway(z_root() . '/apporder');
}
@@ -112,10 +113,12 @@ class Appman extends \Zotlabs\Web\Controller {
if($r) {
$app = $r[0];
$term = q("select * from term where otype = %d and oid = %d",
$term = q("select * from term where otype = %d and oid = %d and uid = %d",
intval(TERM_OBJ_APP),
intval($r[0]['id'])
intval($r[0]['id']),
intval(local_channel())
);
if($term) {
$app['categories'] = '';
foreach($term as $t) {

View File

@@ -17,25 +17,28 @@ class Apporder extends \Zotlabs\Web\Controller {
nav_set_selected('Order Apps');
$syslist = array();
$list = Zlib\Apps::app_list(local_channel(), false, ['nav_featured_app', 'nav_pinned_app']);
if($list) {
foreach($list as $li) {
$syslist[] = Zlib\Apps::app_encode($li);
foreach( [ 'nav_featured_app', 'nav_pinned_app' ] as $l ) {
$syslist = [];
$list = Zlib\Apps::app_list(local_channel(), false, [ $l ]);
if($list) {
foreach($list as $li) {
$syslist[] = Zlib\Apps::app_encode($li);
}
}
}
Zlib\Apps::translate_system_apps($syslist);
Zlib\Apps::translate_system_apps($syslist);
usort($syslist,'Zotlabs\\Lib\\Apps::app_name_compare');
usort($syslist,'Zotlabs\\Lib\\Apps::app_name_compare');
$syslist = Zlib\Apps::app_order(local_channel(),$syslist);
$syslist = Zlib\Apps::app_order(local_channel(),$syslist, $l);
foreach($syslist as $app) {
if(strpos($app['categories'],'nav_pinned_app') !== false) {
$navbar_apps[] = Zlib\Apps::app_render($app,'nav-order');
}
else {
$nav_apps[] = Zlib\Apps::app_render($app,'nav-order');
foreach($syslist as $app) {
if($l === 'nav_pinned_app') {
$navbar_apps[] = Zlib\Apps::app_render($app,'nav-order');
}
elseif(strpos($app['categories'],'nav_pinned_app') === false) {
$nav_apps[] = Zlib\Apps::app_render($app,'nav-order');
}
}
}

View File

@@ -15,6 +15,8 @@ class Apps extends \Zotlabs\Web\Controller {
else
$mode = 'list';
$available = ((argc() == 2 && argv(1) === 'available') ? true : false);
$_SESSION['return_url'] = \App::$query_string;
$apps = array();
@@ -23,7 +25,7 @@ class Apps extends \Zotlabs\Web\Controller {
Zlib\Apps::import_system_apps();
$syslist = array();
$cat = ((array_key_exists('cat',$_GET) && $_GET['cat']) ? [ escape_tags($_GET['cat']) ] : '');
$list = Zlib\Apps::app_list(local_channel(), (($mode == 'edit') ? true : false), $cat);
$list = Zlib\Apps::app_list((($available) ? 0 : local_channel()), (($mode == 'edit') ? true : false), $cat);
if($list) {
foreach($list as $x) {
$syslist[] = Zlib\Apps::app_encode($x);
@@ -39,17 +41,17 @@ class Apps extends \Zotlabs\Web\Controller {
// logger('apps: ' . print_r($syslist,true));
foreach($syslist as $app) {
$apps[] = Zlib\Apps::app_render($app,$mode);
$apps[] = Zlib\Apps::app_render($app,(($available) ? 'install' : $mode));
}
return replace_macros(get_markup_template('myapps.tpl'), array(
'$sitename' => get_config('system','sitename'),
'$cat' => $cat,
'$title' => t('Apps'),
'$title' => (($available) ? t('Available Apps') : t('Installed Apps')),
'$apps' => $apps,
'$authed' => ((local_channel()) ? true : false),
'$manage' => t('Manage apps'),
'$create' => (($mode == 'edit') ? t('Create new app') : '')
'$manage' => (($available) ? '' : t('Manage Apps')),
'$create' => (($mode == 'edit') ? t('Create Custom App') : '')
));
}

View File

@@ -0,0 +1,57 @@
<?php
namespace Zotlabs\Module;
class Apschema extends \Zotlabs\Web\Controller {
function init() {
$base = z_root();
$arr = [
'@context' => [
'zot' => z_root() . '/apschema#',
'id' => '@id',
'type' => '@type',
'commentPolicy' => 'as:commentPolicy',
'meData' => 'zot:meData',
'meDataType' => 'zot:meDataType',
'meEncoding' => 'zot:meEncoding',
'meAlgorithm' => 'zot:meAlgorithm',
'meCreator' => 'zot:meCreator',
'meSignatureValue' => 'zot:meSignatureValue',
'locationAddress' => 'zot:locationAddress',
'locationPrimary' => 'zot:locationPrimary',
'locationDeleted' => 'zot:locationDeleted',
'nomadicLocation' => 'zot:nomadicLocation',
'nomadicHubs' => 'zot:nomadicHubs',
'emojiReaction' => 'zot:emojiReaction',
'expires' => 'zot:expires',
'magicEnv' => [
'@id' => 'zot:magicEnv',
'@type' => '@id'
],
'nomadicLocations' => [
'@id' => 'zot:nomadicLocations',
'@type' => '@id'
],
'ostatus' => 'http://ostatus.org#',
'conversation' => 'ostatus:conversation'
]
];
header('Content-Type: application/ld+json');
echo json_encode($arr,JSON_UNESCAPED_SLASHES);
killme();
}
}

View File

@@ -122,12 +122,13 @@ class Article_edit extends \Zotlabs\Web\Controller {
'bbcode' => (($mimetype == 'text/bbcode') ? true : false)
);
$editor = status_editor($a, $x);
$editor = status_editor($a, $x, false, 'Article_edit');
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
'$title' => t('Edit Article'),
'$delete' => ((($itm[0]['author_xchan'] === $ob_hash) || ($itm[0]['owner_xchan'] === $ob_hash)) ? t('Delete') : false),
'$id' => $itm[0]['id'],
'$cancel' => t('Cancel'),
'$editor' => $editor
));

View File

@@ -1,19 +1,32 @@
<?php
namespace Zotlabs\Module;
use App;
use Zotlabs\Lib\Apps;
use Zotlabs\Web\Controller;
use Zotlabs\Lib\PermissionDescription;
require_once('include/channel.php');
require_once('include/conversation.php');
require_once('include/acl_selectors.php');
class Articles extends \Zotlabs\Web\Controller {
class Articles extends Controller {
function init() {
if(argc() > 1)
$which = argv(1);
else
return;
if(! $which) {
if(local_channel()) {
$channel = App::get_channel();
if($channel && $channel['channel_address'])
$which = $channel['channel_address'];
} else {
return;
}
}
profile_load($which);
@@ -25,22 +38,27 @@ class Articles extends \Zotlabs\Web\Controller {
return login();
}
if(! \App::$profile) {
if(! App::$profile) {
notice( t('Requested profile is not available.') . EOL );
\App::$error = 404;
App::$error = 404;
return;
}
if(! feature_enabled(\App::$profile_uid,'articles')) {
return;
if(! Apps::system_app_installed(App::$profile_uid, 'Articles')) {
//Do not display any associated widgets at this point
App::$pdl = '';
$o = '<b>' . t('Articles App') . ' (' . t('Not Installed') . '):</b><br>';
$o .= t('Create interactive articles');
return $o;
}
nav_set_selected(t('Cards'));
nav_set_selected('Articles');
head_add_link([
'rel' => 'alternate',
'type' => 'application/json+oembed',
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . App::$query_string),
'title' => 'oembed'
]);
@@ -48,19 +66,21 @@ class Articles extends \Zotlabs\Web\Controller {
$category = (($_REQUEST['cat']) ? escape_tags(trim($_REQUEST['cat'])) : '');
if($category) {
$sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
$sql_extra2 .= protect_sprintf(term_item_parent_query(App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
}
$datequery = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
$which = argv(1);
$selected_card = ((argc() > 2) ? argv(2) : '');
$_SESSION['return_url'] = \App::$query_string;
$_SESSION['return_url'] = App::$query_string;
$uid = local_channel();
$owner = \App::$profile_uid;
$observer = \App::get_observer();
$owner = App::$profile_uid;
$observer = App::get_observer();
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
@@ -98,10 +118,11 @@ class Articles extends \Zotlabs\Web\Controller {
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
'acl' => (($is_owner) ? populate_acl($channel_acl, false,
\Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
PermissionDescription::fromGlobalPermission('view_pages')) : ''),
'permissions' => $channel_acl,
'showacl' => (($is_owner) ? true : false),
'visitor' => true,
'body' => '[summary][/summary]',
'hide_location' => false,
'hide_voting' => false,
'profile_uid' => intval($owner),
@@ -119,28 +140,44 @@ class Articles extends \Zotlabs\Web\Controller {
$x['title'] = $_REQUEST['title'];
if($_REQUEST['body'])
$x['body'] = $_REQUEST['body'];
$editor = status_editor($a,$x);
$editor = status_editor($a,$x,false,'Articles');
}
else {
$editor = '';
}
$itemspage = get_pconfig(local_channel(),'system','itemspage');
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
$sql_extra = item_permissions_sql($owner);
$sql_item = '';
if($selected_card) {
$r = q("select * from iconfig where iconfig.cat = 'system' and iconfig.k = 'ARTICLE' and iconfig.v = '%s' limit 1",
dbesc($selected_card)
);
if($r) {
$sql_extra .= "and item.id = " . intval($r[0]['iid']) . " ";
$sql_item = "and item.id = " . intval($r[0]['iid']) . " ";
}
}
if($datequery) {
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
$order = 'post';
}
if($datequery2) {
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
}
if($datequery || $datequery2) {
$sql_extra2 .= " and item.item_thread_top != 0 ";
}
$r = q("select * from item
where item.uid = %d and item_type = %d
$sql_extra order by item.created desc",
$sql_extra $sql_extra2 $sql_item order by item.created desc $pager_sql",
intval($owner),
intval(ITEM_TYPE_ARTICLE)
);
@@ -151,6 +188,8 @@ class Articles extends \Zotlabs\Web\Controller {
if($r) {
$pager_total = count($r);
$parents_str = ids_to_querystr($r,'id');
$items = q("SELECT item.*, item.id AS item_id
@@ -158,7 +197,7 @@ class Articles extends \Zotlabs\Web\Controller {
WHERE item.uid = %d $item_normal
AND item.parent IN ( %s )
$sql_extra $sql_extra2 ",
intval(\App::$profile['profile_uid']),
intval(App::$profile['profile_uid']),
dbesc($parents_str)
);
if($items) {
@@ -172,13 +211,18 @@ class Articles extends \Zotlabs\Web\Controller {
$mode = 'articles';
$content = conversation($items,$mode,false,'traditional');
if(get_pconfig(local_channel(),'system','articles_list_mode') && (! $selected_card))
$page_mode = 'pager_list';
else
$page_mode = 'traditional';
$content = conversation($items,$mode,false,$page_mode);
$o = replace_macros(get_markup_template('cards.tpl'), [
'$title' => t('Articles'),
'$editor' => $editor,
'$content' => $content,
'$pager' => alt_pager($a,count($items))
'$pager' => alt_pager($pager_total)
]);
return $o;

View File

@@ -2,70 +2,105 @@
namespace Zotlabs\Module;
use Zotlabs\Identity\OAuth2Storage;
class Authorize extends \Zotlabs\Web\Controller {
function get() {
if (! local_channel()) {
return login();
}
else {
// workaround for HTTP-auth in CGI mode
if (x($_SERVER, 'REDIRECT_REMOTE_USER')) {
$userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ;
if(strlen($userpass)) {
list($name, $password) = explode(':', $userpass);
$_SERVER['PHP_AUTH_USER'] = $name;
$_SERVER['PHP_AUTH_PW'] = $password;
}
$name = $_REQUEST['client_name'];
if(! $name) {
$name = (($_REQUEST['client_id']) ?: t('Unknown App'));
}
if (x($_SERVER, 'HTTP_AUTHORIZATION')) {
$userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)) ;
if(strlen($userpass)) {
list($name, $password) = explode(':', $userpass);
$_SERVER['PHP_AUTH_USER'] = $name;
$_SERVER['PHP_AUTH_PW'] = $password;
}
}
$app = [
'name' => $name,
'icon' => (x($_REQUEST, 'logo_uri') ? $_REQUEST['logo_uri'] : z_root() . '/images/icons/plugin.png'),
'url' => (x($_REQUEST, 'client_uri') ? $_REQUEST['client_uri'] : ''),
];
$link = (($app['url']) ? '<a style="float: none;" href="' . $app['url'] . '">' . $app['name'] . '</a> ' : $app['name']);
require_once('include/oauth2.php');
$request = \OAuth2\Request::createFromGlobals();
$response = new \OAuth2\Response();
// validate the authorize request
if (! $oauth2_server->validateAuthorizeRequest($request, $response)) {
$response->send();
killme();
$o .= replace_macros(get_markup_template('oauth_authorize.tpl'), [
'$title' => t('Authorize'),
'$authorize' => sprintf( t('Do you authorize the app %s to access your channel data?'), $link ),
'$app' => $app,
'$yes' => t('Allow'),
'$no' => t('Deny'),
'$client_id' => (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : ''),
'$redirect_uri' => (x($_REQUEST, 'redirect_uri') ? $_REQUEST['redirect_uri'] : ''),
'$state' => (x($_REQUEST, 'state') ? $_REQUEST['state'] : ''),
]);
return $o;
}
}
// display an authorization form
if (empty($_POST)) {
function post() {
if (! local_channel()) {
return;
}
return '
<form method="post">
<label>Do You Authorize TestClient?</label><br />
<input type="submit" name="authorized" value="yes">
<input type="submit" name="authorized" value="no">
</form>';
}
$storage = new OAuth2Storage(\DBA::$dba->db);
$s = new \Zotlabs\Identity\OAuth2Server($storage);
// print the authorization code if the user has authorized your client
$is_authorized = ($_POST['authorized'] === 'yes');
$oauth2_server->handleAuthorizeRequest($request, $response, $is_authorized);
if ($is_authorized) {
// this is only here so that you get to see your code in the cURL request. Otherwise,
// we'd redirect back to the client
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40);
echo("SUCCESS! Authorization Code: $code");
// TODO: The automatic client registration protocol below should adhere more
// closely to "OAuth 2.0 Dynamic Client Registration Protocol" defined
// at https://tools.ietf.org/html/rfc7591
// If no client_id was provided, generate a new one.
if (x($_POST, 'client_id')) {
$client_id = $_POST['client_id'];
} else {
$client_id = $_POST['client_id'] = random_string(16);
}
// If no redirect_uri was provided, generate a fake one.
if (x($_POST, 'redirect_uri')) {
$redirect_uri = $_POST['redirect_uri'];
} else {
$redirect_uri = $_POST['redirect_uri'] = 'https://fake.example.com/oauth';
}
$request = \OAuth2\Request::createFromGlobals();
$response = new \OAuth2\Response();
// Note, "sub" field must match type and content. $user_id is used to populate - make sure it's a string.
$channel = channelx_by_n(local_channel());
$user_id = $channel['channel_id'];
// If the client is not registered, add to the database
if (!$client = $storage->getClientDetails($client_id)) {
// Until "Dynamic Client Registration" is pursued - allow new clients to assign their own secret in the REQUEST
$client_secret = (isset($_REQUEST['client_secret'])) ? $_REQUEST['client_secret'] : random_string(16);
// Client apps are registered per channel
$storage->setClientDetails($client_id, $client_secret, $redirect_uri, 'authorization_code', $_REQUEST['scope'], $user_id);
}
if (!$client = $storage->getClientDetails($client_id)) {
// There was an error registering the client.
$response->send();
killme();
}
$response->setParameter('client_secret', $client['client_secret']);
// validate the authorize request
if (!$s->validateAuthorizeRequest($request, $response)) {
$response->send();
killme();
}
// print the authorization code if the user has authorized your client
$is_authorized = ($_POST['authorize'] === 'allow');
$s->handleAuthorizeRequest($request, $response, $is_authorized, $user_id);
if ($is_authorized) {
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=') + 5, 40);
logger('Authorization Code: ' . $code);
}
$response->send();
killme();
}
$response->send();
killme();
}
}
}

View File

@@ -109,7 +109,7 @@ class Blocks extends \Zotlabs\Web\Controller {
if($_REQUEST['pagetitle'])
$x['pagetitle'] = $_REQUEST['pagetitle'];
$editor = status_editor($a,$x);
$editor = status_editor($a,$x,false,'Blocks');
$r = q("select iconfig.iid, iconfig.k, iconfig.v, mid, title, body, mimetype, created, edited from iconfig

Some files were not shown because too many files have changed in this diff Show More