Merge pull request #4371 from annando/public-commenting

Public commenting is now always enabled
This commit is contained in:
Tobias Diekershoff 2018-02-01 08:20:45 +01:00 committed by GitHub
commit 2a53186ef1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 37 additions and 52 deletions

View file

@ -39,7 +39,7 @@ define('FRIENDICA_PLATFORM', 'Friendica');
define('FRIENDICA_CODENAME', 'Asparagus'); define('FRIENDICA_CODENAME', 'Asparagus');
define('FRIENDICA_VERSION', '3.6-dev'); define('FRIENDICA_VERSION', '3.6-dev');
define('DFRN_PROTOCOL_VERSION', '2.23'); define('DFRN_PROTOCOL_VERSION', '2.23');
define('DB_UPDATE_VERSION', 1247); define('DB_UPDATE_VERSION', 1248);
define('NEW_UPDATE_ROUTINE_VERSION', 1170); define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/** /**

View file

@ -1,6 +1,6 @@
-- ------------------------------------------ -- ------------------------------------------
-- Friendica 3.6-dev (Asparagus) -- Friendica 3.6-dev (Asparagus)
-- DB_UPDATE_VERSION 1246 -- DB_UPDATE_VERSION 1248
-- ------------------------------------------ -- ------------------------------------------
@ -982,7 +982,7 @@ CREATE TABLE IF NOT EXISTS `thread` (
INDEX `uid_created` (`uid`,`created`), INDEX `uid_created` (`uid`,`created`),
INDEX `uid_commented` (`uid`,`commented`), INDEX `uid_commented` (`uid`,`commented`),
INDEX `uid_wall_created` (`uid`,`wall`,`created`), INDEX `uid_wall_created` (`uid`,`wall`,`created`),
INDEX `private_wall_commented` (`private`,`wall`,`commented`) INDEX `private_wall_origin_commented` (`private`,`wall`,`origin`,`commented`)
) DEFAULT COLLATE utf8mb4_general_ci; ) DEFAULT COLLATE utf8mb4_general_ci;
-- --

View file

@ -15,6 +15,11 @@ General
* f: notifications * f: notifications
* u: user menu (in themes "vier" and "quattro") * u: user menu (in themes "vier" and "quattro")
/community
--------
* l: Local community
* g: Global community
/profile /profile
-------- --------
* m: Status Messages and Posts * m: Status Messages and Posts

View file

@ -578,9 +578,7 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
. " var profile_page = 1; </script>"; . " var profile_page = 1; </script>";
} }
} elseif ($mode === 'community') { } elseif ($mode === 'community') {
if (!$community_readonly) { $items = community_add_items($items);
$items = community_add_items($items);
}
$profile_owner = 0; $profile_owner = 0;
if (!$update) { if (!$update) {
$live_update_div = '<div id="live-community"></div>' . "\r\n" $live_update_div = '<div id="live-community"></div>' . "\r\n"
@ -614,33 +612,23 @@ function conversation(App $a, $items, $mode, $update, $preview = false) {
$page_template = get_markup_template("conversation.tpl"); $page_template = get_markup_template("conversation.tpl");
if ($items && count($items)) { if ($items && count($items)) {
$community_readonly = ($mode === 'community'); if ($mode === 'community') {
$writable = true;
// Currently behind a config value. This allows the commenting and sharing of every public item.
if (Config::get('system', 'comment_public')) {
if ($mode === 'community') {
$community_readonly = false;
$writable = true;
} else {
$writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN]);
}
} else { } else {
$writable = false; $writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN]);
} }
if (!local_user()) { if (!local_user()) {
$writable = false; $writable = false;
} }
if (in_array($mode, ['network-new', 'search', 'contact-posts']) || $community_readonly) { if (in_array($mode, ['network-new', 'search', 'contact-posts'])) {
/* /*
* "New Item View" on network page or search page results * "New Item View" on network page or search page results
* - just loop through the items and format them minimally for display * - just loop through the items and format them minimally for display
*/ */
/// @TODO old lost code?
// $tpl = get_markup_template('search_item.tpl');
$tpl = 'search_item.tpl'; $tpl = 'search_item.tpl';
foreach ($items as $item) { foreach ($items as $item) {

View file

@ -72,7 +72,7 @@ function community_content(App $a, $update = 0)
if ((local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_USERS_ON_SERVER])) && empty(Config::get('system', 'singleuser'))) { if ((local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_USERS_ON_SERVER])) && empty(Config::get('system', 'singleuser'))) {
$tabs[] = [ $tabs[] = [
'label' => L10n::t('Community'), 'label' => L10n::t('Local Community'),
'url' => 'community/local', 'url' => 'community/local',
'sel' => $content == 'local' ? 'active' : '', 'sel' => $content == 'local' ? 'active' : '',
'title' => L10n::t('Posts from local users on this server'), 'title' => L10n::t('Posts from local users on this server'),
@ -83,10 +83,10 @@ function community_content(App $a, $update = 0)
if (local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_GLOBAL_COMMUNITY])) { if (local_user() || in_array($page_style, [CP_USERS_AND_GLOBAL, CP_GLOBAL_COMMUNITY])) {
$tabs[] = [ $tabs[] = [
'label' => L10n::t('Global Timeline'), 'label' => L10n::t('Global Community'),
'url' => 'community/global', 'url' => 'community/global',
'sel' => $content == 'global' ? 'active' : '', 'sel' => $content == 'global' ? 'active' : '',
'title' => L10n::t('Posts from users of the federated network'), 'title' => L10n::t('Posts from users of the whole federated network'),
'id' => 'community-global-tab', 'id' => 'community-global-tab',
'accesskey' => 'g' 'accesskey' => 'g'
]; ];
@ -114,24 +114,21 @@ function community_content(App $a, $update = 0)
} }
} }
if (Config::get('system', 'comment_public')) { // check if we serve a mobile device and get the user settings accordingly
// check if we serve a mobile device and get the user settings if ($a->is_mobile) {
// accordingly $itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_mobile_network', 20);
if ($a->is_mobile) { } else {
$itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_mobile_network', 20); $itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_network', 40);
} else {
$itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_network', 40);
}
// now that we have the user settings, see if the theme forces
// a maximum item number which is lower then the user choice
if (($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network)) {
$itemspage_network = $a->force_max_items;
}
$a->set_pager_itemspage($itemspage_network);
} }
// now that we have the user settings, see if the theme forces
// a maximum item number which is lower then the user choice
if (($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network)) {
$itemspage_network = $a->force_max_items;
}
$a->set_pager_itemspage($itemspage_network);
$r = community_getitems($a->pager['start'], $a->pager['itemspage'], $content); $r = community_getitems($a->pager['start'], $a->pager['itemspage'], $content);
if (!DBM::is_result($r)) { if (!DBM::is_result($r)) {
@ -186,24 +183,19 @@ function community_content(App $a, $update = 0)
function community_getitems($start, $itemspage, $content) function community_getitems($start, $itemspage, $content)
{ {
if ($content == 'local') { if ($content == 'local') {
$r = dba::p("SELECT " . item_fieldlists() . " FROM `thread` $r = dba::p("SELECT `item`.`uri`, `item`.`author-link` FROM `thread`
INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall` INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid` INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = ''" .
item_joins() . " AND `contact`.`self`
WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated` WHERE `thread`.`visible` AND NOT `thread`.`deleted` AND NOT `thread`.`moderated`
AND NOT `thread`.`private` AND `thread`.`wall` AND NOT `thread`.`private` AND `thread`.`wall` AND `thread`.`origin`
ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage) ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage)
); );
return dba::inArray($r); return dba::inArray($r);
} elseif ($content == 'global') { } elseif ($content == 'global') {
$r = dba::p("SELECT " . item_fieldlists() . " FROM `thread` $r = dba::p("SELECT `uri` FROM `thread`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid` " . item_joins() . INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
"WHERE `thread`.`uid` = 0 AND `verb` = ? WHERE `thread`.`uid` = 0
ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage), ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage));
ACTIVITY_POST
);
return dba::inArray($r); return dba::inArray($r);
} }

View file

@ -783,7 +783,7 @@ function networkThreadedView(App $a, $update = 0)
} }
// Only show it when unfiltered (no groups, no networks, ...) // Only show it when unfiltered (no groups, no networks, ...)
if (Config::get('system', 'comment_public') && in_array($nets, ['', NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS]) && (strlen($sql_extra . $sql_extra2 . $sql_extra3) == 0)) { if (in_array($nets, ['', NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS]) && (strlen($sql_extra . $sql_extra2 . $sql_extra3) == 0)) {
if (DBM::is_result($r)) { if (DBM::is_result($r)) {
$top_limit = current($r)['order_date']; $top_limit = current($r)['order_date'];
$bottom_limit = end($r)['order_date']; $bottom_limit = end($r)['order_date'];

View file

@ -1686,7 +1686,7 @@ class DBStructure
"uid_created" => ["uid","created"], "uid_created" => ["uid","created"],
"uid_commented" => ["uid","commented"], "uid_commented" => ["uid","commented"],
"uid_wall_created" => ["uid","wall","created"], "uid_wall_created" => ["uid","wall","created"],
"private_wall_commented" => ["private","wall","commented"], "private_wall_origin_commented" => ["private","wall","origin","commented"],
] ]
]; ];
$database["tokens"] = [ $database["tokens"] = [