forked from GNUsocial/gnu-social
[SensitiveContent] Add option to activate for not-logged-in visitors
Remove redundant setting retrival code. An example config.php entry to activate the new config: $config['site']['sensitivecontent']['hideforvisitors'] = true;
This commit is contained in:
parent
520a2ba202
commit
63fd2c7037
@ -19,6 +19,10 @@ if you want to customize the blocker image, add a line to your config.php:
|
|||||||
|
|
||||||
$config['site']['sensitivecontent']['blockerimage'] = "/path/to/image.jpg";
|
$config['site']['sensitivecontent']['blockerimage'] = "/path/to/image.jpg";
|
||||||
|
|
||||||
|
if you want to activate the nsfw overlay for non-logged-in visitors add:
|
||||||
|
|
||||||
|
$config['site']['sensitivecontent']['hideforvisitors'] = true;
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Individual users must go to their Settings page. A new sidebar menu item "Sensitive Content"
|
Individual users must go to their Settings page. A new sidebar menu item "Sensitive Content"
|
||||||
|
@ -22,6 +22,7 @@ class SensitiveContentPlugin extends Plugin
|
|||||||
static function settings($setting)
|
static function settings($setting)
|
||||||
{
|
{
|
||||||
$settings['blockerimage'] = Plugin::staticPath('SensitiveContent', '').'img/blocker.png';
|
$settings['blockerimage'] = Plugin::staticPath('SensitiveContent', '').'img/blocker.png';
|
||||||
|
$settings['hideforvisitors'] = false;
|
||||||
|
|
||||||
$configphpsettings = common_config('site','sensitivecontent') ?: array();
|
$configphpsettings = common_config('site','sensitivecontent') ?: array();
|
||||||
foreach($configphpsettings as $configphpsetting=>$value) {
|
foreach($configphpsettings as $configphpsetting=>$value) {
|
||||||
@ -146,20 +147,7 @@ EOB;
|
|||||||
|
|
||||||
function onStartShowAttachmentRepresentation($out, $file)
|
function onStartShowAttachmentRepresentation($out, $file)
|
||||||
{
|
{
|
||||||
$profile = Profile::current();
|
|
||||||
|
|
||||||
if (!is_null($profile) && $profile instanceof Profile)
|
|
||||||
{
|
|
||||||
$hidesensitive = $this->getHideSensitive($profile);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$hidesensitive = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$classes = "sensitive-blocker"; //'sensitive-blocker';
|
$classes = "sensitive-blocker"; //'sensitive-blocker';
|
||||||
|
|
||||||
$thumbnail = null;
|
$thumbnail = null;
|
||||||
try {
|
try {
|
||||||
$thumbnail = $file->getThumbnail();
|
$thumbnail = $file->getThumbnail();
|
||||||
@ -190,18 +178,12 @@ EOB;
|
|||||||
function onEndShowScripts(Action $action)
|
function onEndShowScripts(Action $action)
|
||||||
{
|
{
|
||||||
$profile = $action->getScoped();
|
$profile = $action->getScoped();
|
||||||
if (!is_null($profile) && $profile instanceof Profile)
|
$hidesensitive = $this->getHideSetting($profile);
|
||||||
{
|
$hidesensitive_string = $hidesensitive ? "true" : "false";
|
||||||
$hidesensitive = $this->getHideSensitive($profile) ? "true" : "false";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$hidesensitive = "false";
|
|
||||||
}
|
|
||||||
|
|
||||||
$inline = <<<EOB
|
$inline = <<<EOB
|
||||||
|
|
||||||
window.hidesensitive = $hidesensitive ;
|
window.hidesensitive = $hidesensitive_string;
|
||||||
|
|
||||||
function toggleSpoiler(evt) {
|
function toggleSpoiler(evt) {
|
||||||
if (window.hidesensitive) evt.target.classList.toggle('reveal');
|
if (window.hidesensitive) evt.target.classList.toggle('reveal');
|
||||||
@ -232,22 +214,20 @@ EOB;
|
|||||||
|
|
||||||
function onStartHtmlElement($action, &$attrs) {
|
function onStartHtmlElement($action, &$attrs) {
|
||||||
$profile = Profile::current();
|
$profile = Profile::current();
|
||||||
|
$hidesensitive = $this->getHideSetting($profile);
|
||||||
if (!is_null($profile) && $profile instanceof Profile)
|
|
||||||
{
|
|
||||||
$hidesensitive = $this->getHideSensitive($profile);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$hidesensitive = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$attrs = array_merge($attrs,
|
$attrs = array_merge($attrs,
|
||||||
array('data-hidesensitive' => ($hidesensitive ? "true" : "false"))
|
array('data-hidesensitive' => ($hidesensitive ? "true" : "false"))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getHideSetting($profile) {
|
||||||
|
if (isset($profile) && $profile instanceof Profile) {
|
||||||
|
return $this->getHideSensitive($profile);
|
||||||
|
} else {
|
||||||
|
return static::settings('hideforvisitors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getHideSensitive($profile) {
|
function getHideSensitive($profile) {
|
||||||
$c = Cache::instance();
|
$c = Cache::instance();
|
||||||
|
Loading…
Reference in New Issue
Block a user