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": "",