mirror of
https://github.com/openvk/openvk
synced 2024-12-23 00:51:03 +03:00
feat(groups): add option to enforce global feed exclusion (#1122)
This commit is contained in:
parent
9d62bfc12e
commit
a13d62e8fd
10 changed files with 31 additions and 3 deletions
|
@ -347,7 +347,10 @@ final class Groups extends VKAPIRequestHandler
|
||||||
!empty($topics) ? $club->setEveryone_Can_Create_Topics($topics) : NULL;
|
!empty($topics) ? $club->setEveryone_Can_Create_Topics($topics) : NULL;
|
||||||
!empty($adminlist) ? $club->setAdministrators_List_Display($adminlist) : NULL;
|
!empty($adminlist) ? $club->setAdministrators_List_Display($adminlist) : NULL;
|
||||||
!empty($topicsAboveWall) ? $club->setDisplay_Topics_Above_Wall($topicsAboveWall) : NULL;
|
!empty($topicsAboveWall) ? $club->setDisplay_Topics_Above_Wall($topicsAboveWall) : NULL;
|
||||||
!empty($hideFromGlobalFeed) ? $club->setHide_From_Global_Feed($hideFromGlobalFeed) : NULL;
|
|
||||||
|
if (!$club->isHidingFromGlobalFeedEnforced()) {
|
||||||
|
!empty($hideFromGlobalFeed) ? $club->setHide_From_Global_Feed($hideFromGlobalFeed) : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
in_array($audio, [0, 1]) ? $club->setEveryone_can_upload_audios($audio) : NULL;
|
in_array($audio, [0, 1]) ? $club->setEveryone_can_upload_audios($audio) : NULL;
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,11 @@ class Club extends RowModel
|
||||||
return (bool) $this->getRecord()->hide_from_global_feed;
|
return (bool) $this->getRecord()->hide_from_global_feed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isHidingFromGlobalFeedEnforced(): bool
|
||||||
|
{
|
||||||
|
return (bool) $this->getRecord()->enforce_hiding_from_global_feed;
|
||||||
|
}
|
||||||
|
|
||||||
function getType(): int
|
function getType(): int
|
||||||
{
|
{
|
||||||
return $this->getRecord()->type;
|
return $this->getRecord()->type;
|
||||||
|
|
|
@ -161,6 +161,7 @@ final class AdminPresenter extends OpenVKPresenter
|
||||||
$club->setShortCode($this->postParam("shortcode"));
|
$club->setShortCode($this->postParam("shortcode"));
|
||||||
$club->setVerified(empty($this->postParam("verify") ? 0 : 1));
|
$club->setVerified(empty($this->postParam("verify") ? 0 : 1));
|
||||||
$club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed") ? 0 : 1));
|
$club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed") ? 0 : 1));
|
||||||
|
$club->setEnforce_Hiding_From_Global_Feed(empty($this->postParam("enforce_hiding_from_global_feed") ? 0 : 1));
|
||||||
$club->save();
|
$club->save();
|
||||||
break;
|
break;
|
||||||
case "ban":
|
case "ban":
|
||||||
|
|
|
@ -233,7 +233,10 @@ final class GroupPresenter extends OpenVKPresenter
|
||||||
$club->setEveryone_Can_Create_Topics(empty($this->postParam("everyone_can_create_topics")) ? 0 : 1);
|
$club->setEveryone_Can_Create_Topics(empty($this->postParam("everyone_can_create_topics")) ? 0 : 1);
|
||||||
$club->setDisplay_Topics_Above_Wall(empty($this->postParam("display_topics_above_wall")) ? 0 : 1);
|
$club->setDisplay_Topics_Above_Wall(empty($this->postParam("display_topics_above_wall")) ? 0 : 1);
|
||||||
$club->setEveryone_can_upload_audios(empty($this->postParam("upload_audios")) ? 0 : 1);
|
$club->setEveryone_can_upload_audios(empty($this->postParam("upload_audios")) ? 0 : 1);
|
||||||
$club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed")) ? 0 : 1);
|
|
||||||
|
if (!$club->isHidingFromGlobalFeedEnforced()) {
|
||||||
|
$club->setHide_From_Global_Feed(empty($this->postParam("hide_from_global_feed") ? 0 : 1));
|
||||||
|
}
|
||||||
|
|
||||||
$website = $this->postParam("website") ?? "";
|
$website = $this->postParam("website") ?? "";
|
||||||
if(empty($website))
|
if(empty($website))
|
||||||
|
|
|
@ -65,6 +65,10 @@
|
||||||
<input class="toggle-large" type="checkbox" id="hide_from_global_feed" name="hide_from_global_feed" value="1" {if $club->isHideFromGlobalFeedEnabled()} checked {/if} />
|
<input class="toggle-large" type="checkbox" id="hide_from_global_feed" name="hide_from_global_feed" value="1" {if $club->isHideFromGlobalFeedEnabled()} checked {/if} />
|
||||||
<label for="hide_from_global_feed">{_admin_club_excludeglobalfeed}</label>
|
<label for="hide_from_global_feed">{_admin_club_excludeglobalfeed}</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="group">
|
||||||
|
<input class="toggle-large" type="checkbox" id="enforce_hiding_from_global_feed" name="enforce_hiding_from_global_feed" value="1" {if $club->isHideFromGlobalFeedEnabled()} checked {/if} />
|
||||||
|
<label for="enforce_hiding_from_global_feed">{_admin_club_enforceexcludeglobalfeed}</label>
|
||||||
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="buttons-container">
|
<div class="buttons-container">
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
<option value="0" n:attr="selected => $club->getWallType() == 0" /> {_group_closed_post}</option>
|
<option value="0" n:attr="selected => $club->getWallType() == 0" /> {_group_closed_post}</option>
|
||||||
<select>
|
<select>
|
||||||
|
|
||||||
<input type="checkbox" name="hide_from_global_feed" value="1" n:attr="checked => $club->isHideFromGlobalFeedEnabled()" /> {_group_hide_from_global_feed}
|
<input type="checkbox" name="hide_from_global_feed" value="1" n:attr="checked => $club->isHideFromGlobalFeedEnabled(), disabled => $club->isHidingFromGlobalFeedEnforced()" /> {_group_hide_from_global_feed}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -587,6 +587,11 @@ input[type=radio]:hover {
|
||||||
background-position: 0 -28px;
|
background-position: 0 -28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type=checkbox]:disabled {
|
||||||
|
background-position: 0 -28px;
|
||||||
|
cursor: initial;
|
||||||
|
}
|
||||||
|
|
||||||
input[type=checkbox]:checked,
|
input[type=checkbox]:checked,
|
||||||
input[type=radio]:checked {
|
input[type=radio]:checked {
|
||||||
background-position: 0 -14px;
|
background-position: 0 -14px;
|
||||||
|
@ -597,6 +602,10 @@ input[type=radio]:checked:hover {
|
||||||
background-position: 0 -42px;
|
background-position: 0 -42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input[type=checkbox]:checked:disabled {
|
||||||
|
background-position: 0 -42px;
|
||||||
|
}
|
||||||
|
|
||||||
#auth {
|
#auth {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
1
install/sqls/00045-enforce-hiding-from-global-feed.sql
Normal file
1
install/sqls/00045-enforce-hiding-from-global-feed.sql
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE `groups` ADD COLUMN `enforce_hiding_from_global_feed` boolean NOT NULL DEFAULT 0 AFTER `hide_from_global_feed`;
|
|
@ -1591,6 +1591,7 @@
|
||||||
"admin_user_online_deceased" = "Deceased";
|
"admin_user_online_deceased" = "Deceased";
|
||||||
"admin_club_search" = "Search for groups";
|
"admin_club_search" = "Search for groups";
|
||||||
"admin_club_excludeglobalfeed" = "Do not display posts in the global feed";
|
"admin_club_excludeglobalfeed" = "Do not display posts in the global feed";
|
||||||
|
"admin_club_enforceexcludeglobalfeed" = "Disallow group staff from changing global feed status";
|
||||||
|
|
||||||
"admin_services" = "Paid services";
|
"admin_services" = "Paid services";
|
||||||
"admin_newgift" = "New gift";
|
"admin_newgift" = "New gift";
|
||||||
|
|
|
@ -1487,6 +1487,7 @@
|
||||||
"admin_user_online_deceased" = "Покойник";
|
"admin_user_online_deceased" = "Покойник";
|
||||||
"admin_club_search" = "Поиск групп";
|
"admin_club_search" = "Поиск групп";
|
||||||
"admin_club_excludeglobalfeed" = "Не отображать записи в глобальной ленте";
|
"admin_club_excludeglobalfeed" = "Не отображать записи в глобальной ленте";
|
||||||
|
"admin_club_enforceexcludeglobalfeed" = "Запретить руководству группы изменять отображение в глобальной ленте";
|
||||||
"admin_services" = "Платные услуги";
|
"admin_services" = "Платные услуги";
|
||||||
"admin_newgift" = "Новый подарок";
|
"admin_newgift" = "Новый подарок";
|
||||||
"admin_price" = "Цена";
|
"admin_price" = "Цена";
|
||||||
|
|
Loading…
Reference in a new issue