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_VERSION', '3.6-dev');
define('DFRN_PROTOCOL_VERSION', '2.23');
define('DB_UPDATE_VERSION', 1247);
define('DB_UPDATE_VERSION', 1248);
define('NEW_UPDATE_ROUTINE_VERSION', 1170);
/**

View file

@ -1,6 +1,6 @@
-- ------------------------------------------
-- 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_commented` (`uid`,`commented`),
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;
--

View file

@ -15,6 +15,11 @@ General
* f: notifications
* u: user menu (in themes "vier" and "quattro")
/community
--------
* l: Local community
* g: Global community
/profile
--------
* 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>";
}
} elseif ($mode === 'community') {
if (!$community_readonly) {
$items = community_add_items($items);
}
$items = community_add_items($items);
$profile_owner = 0;
if (!$update) {
$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");
if ($items && count($items)) {
$community_readonly = ($mode === 'community');
// 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]);
}
if ($mode === 'community') {
$writable = true;
} else {
$writable = false;
$writable = ($items[0]['uid'] == 0) && in_array($items[0]['network'], [NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_DFRN]);
}
if (!local_user()) {
$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
* - 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';
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'))) {
$tabs[] = [
'label' => L10n::t('Community'),
'label' => L10n::t('Local Community'),
'url' => 'community/local',
'sel' => $content == 'local' ? 'active' : '',
'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])) {
$tabs[] = [
'label' => L10n::t('Global Timeline'),
'label' => L10n::t('Global Community'),
'url' => 'community/global',
'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',
'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
if ($a->is_mobile) {
$itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_mobile_network', 20);
} 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);
// check if we serve a mobile device and get the user settings accordingly
if ($a->is_mobile) {
$itemspage_network = PConfig::get(local_user(), 'system', 'itemspage_mobile_network', 20);
} 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);
$r = community_getitems($a->pager['start'], $a->pager['itemspage'], $content);
if (!DBM::is_result($r)) {
@ -186,24 +183,19 @@ function community_content(App $a, $update = 0)
function community_getitems($start, $itemspage, $content)
{
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 `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`
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)
);
return dba::inArray($r);
} elseif ($content == 'global') {
$r = dba::p("SELECT " . item_fieldlists() . " FROM `thread`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid` " . item_joins() .
"WHERE `thread`.`uid` = 0 AND `verb` = ?
ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage),
ACTIVITY_POST
);
$r = dba::p("SELECT `uri` FROM `thread`
INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
WHERE `thread`.`uid` = 0
ORDER BY `thread`.`commented` DESC LIMIT " . intval($start) . ", " . intval($itemspage));
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, ...)
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)) {
$top_limit = current($r)['order_date'];
$bottom_limit = end($r)['order_date'];

View file

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