diff --git a/Setup.php b/Setup.php
index f38e2e7..2a80881 100644
--- a/Setup.php
+++ b/Setup.php
@@ -21,6 +21,7 @@ class Setup extends AbstractSetup
{
$this->schemaManager()->alterTable('xf_user', function (\XF\Db\Schema\Alter $table) {
$table->addColumn('rhpz_entry_count', 'int')->setDefault(0);
+ $table->addColumn('nsfw_content', 'int')->setDefault(0);
});
}
@@ -56,10 +57,17 @@ class Setup extends AbstractSetup
});
}
+ public function upgrade1010070Step1(): void
+ {
+ $this->schemaManager()->alterTable('xf_user', function (\XF\Db\Schema\Alter $table) {
+ $table->addColumn('nsfw_content', 'int')->setDefault(0);
+ });
+ }
+
public function uninstallStep1(): void
{
$this->schemaManager()->alterTable('xf_user', function($table) {
- $table->dropColumns(['rhpz_entry_count']);
+ $table->dropColumns(['rhpz_entry_count', 'nsfw_content']);
});
}
diff --git a/XF/Entity/User.php b/XF/Entity/User.php
index bd4ef44..ec069d1 100644
--- a/XF/Entity/User.php
+++ b/XF/Entity/User.php
@@ -12,6 +12,7 @@ class User extends XFCP_User
$structure = parent::getStructure($structure);
$structure->columns['rhpz_entry_count'] = [ 'type' => self::UINT, 'default' => 0 ];
+ $structure->columns['nsfw_content'] = [ 'type' => self::BOOL, 'default' => 0 ];
return $structure;
}
diff --git a/XF/Pub/Controller/AccountController.php b/XF/Pub/Controller/AccountController.php
index ac78034..ce6187c 100644
--- a/XF/Pub/Controller/AccountController.php
+++ b/XF/Pub/Controller/AccountController.php
@@ -3,6 +3,7 @@
namespace RomhackPlaza\Master\XF\Pub\Controller;
use RomhackPlaza\Master\Service\DeleteAccount\CodeService;
+use XF\Entity\User;
class AccountController extends XFCP_AccountController
{
@@ -22,4 +23,18 @@ class AccountController extends XFCP_AccountController
return $this->addAccountWrapperParams($view, 'delete_account');
}
+ protected function preferencesSaveProcess(User $visitor)
+ {
+ $form = parent::preferencesSaveProcess($visitor);
+
+ $input = $this->filter([
+ 'user' => [
+ 'nsfw_content' => 'bool',
+ ]
+ ]);
+
+ $form->basicEntitySave($visitor, $input['user'] );
+ return $form;
+ }
+
}
\ No newline at end of file
diff --git a/_output/phrases/_metadata.json b/_output/phrases/_metadata.json
index 301278a..f604db3 100644
--- a/_output/phrases/_metadata.json
+++ b/_output/phrases/_metadata.json
@@ -23,12 +23,24 @@
"version_string": "1.0.0",
"hash": "15d96c48f857b975c051d7c98b13a385"
},
+ "enable_nsfw_entries.txt": {
+ "global_cache": false,
+ "version_id": 1010070,
+ "version_string": "1.1.0",
+ "hash": "5fe4c9ee5afb3f3b3125508f27c245b6"
+ },
"entries.txt": {
"global_cache": false,
"version_id": 1000000,
"version_string": "1.0.0",
"hash": "bc14b0a9c516310fc195a778937cc0a0"
},
+ "entries_options.txt": {
+ "global_cache": false,
+ "version_id": 1010070,
+ "version_string": "1.1.0",
+ "hash": "7c72b58cc8011ac1c23376fffb33f0da"
+ },
"nav.about.txt": {
"global_cache": false,
"version_id": 1000000,
diff --git a/_output/phrases/enable_nsfw_entries.txt b/_output/phrases/enable_nsfw_entries.txt
new file mode 100644
index 0000000..1453e68
--- /dev/null
+++ b/_output/phrases/enable_nsfw_entries.txt
@@ -0,0 +1 @@
+Enable NSFW Entries
\ No newline at end of file
diff --git a/_output/phrases/entries_options.txt b/_output/phrases/entries_options.txt
new file mode 100644
index 0000000..55b2e70
--- /dev/null
+++ b/_output/phrases/entries_options.txt
@@ -0,0 +1 @@
+Entries options
\ No newline at end of file
diff --git a/_output/template_modifications/_metadata.json b/_output/template_modifications/_metadata.json
index 04696b7..5d7047c 100644
--- a/_output/template_modifications/_metadata.json
+++ b/_output/template_modifications/_metadata.json
@@ -14,6 +14,9 @@
"public/rhpz_above_thread_list_clubs_buttons.json": {
"hash": "c783001e00f7a63389c9ae988012f5fe"
},
+ "public/rhpz_account_preferences_nsfw_content.json": {
+ "hash": "9feae814b9fa8f40a08e1b50e2d410c5"
+ },
"public/rhpz_account_wrapper_delete_account.json": {
"hash": "6594c0474a9b3e737a10dbd9c531521e"
},
diff --git a/_output/template_modifications/public/rhpz_account_preferences_nsfw_content.json b/_output/template_modifications/public/rhpz_account_preferences_nsfw_content.json
new file mode 100644
index 0000000..ebc8561
--- /dev/null
+++ b/_output/template_modifications/public/rhpz_account_preferences_nsfw_content.json
@@ -0,0 +1,9 @@
+{
+ "template": "account_preferences",
+ "description": "Add NSFW Content field to the settings",
+ "execution_order": 10,
+ "enabled": true,
+ "action": "str_replace",
+ "find": "",
+ "replace": "\n\t\n\t\n\n$0"
+}
\ No newline at end of file
diff --git a/addon.json b/addon.json
index bf733c6..1f8aaba 100644
--- a/addon.json
+++ b/addon.json
@@ -2,8 +2,8 @@
"legacy_addon_id": "",
"title": "RomhackPlaza Master Addon",
"description": "",
- "version_id": 1000000,
- "version_string": "1.0.0",
+ "version_id": 1010070,
+ "version_string": "1.1.0",
"dev": "",
"dev_url": "",
"faq_url": "",