From 2e031fb48266225f3f7a6e72a685446c331ab4c0 Mon Sep 17 00:00:00 2001 From: n1rwana Date: Thu, 8 Sep 2022 16:18:24 +0300 Subject: [PATCH 1/5] Added other gender options (#312) --- .idea/deployment.xml | 14 ++++++++++++++ .idea/discord.xml | 7 +++++++ Web/Models/Entities/User.php | 20 +++++++++++++++++++- Web/Presenters/UserPresenter.php | 11 ++++++++--- Web/Presenters/templates/User/Edit.xml | 18 +++++++++++++++--- Web/Presenters/templates/User/View.xml | 2 +- install/sqls/00032-other-gender-options.sql | 3 +++ locales/en.strings | 3 +++ locales/ru.strings | 3 +++ 9 files changed, 73 insertions(+), 8 deletions(-) create mode 100644 .idea/deployment.xml create mode 100644 .idea/discord.xml create mode 100644 install/sqls/00032-other-gender-options.sql diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 00000000..dc2a86a5 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 00000000..30bab2ab --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/Web/Models/Entities/User.php b/Web/Models/Entities/User.php index 115bf8c2..74852869 100644 --- a/Web/Models/Entities/User.php +++ b/Web/Models/Entities/User.php @@ -723,7 +723,25 @@ class User extends RowModel function isFemale(): bool { - return (bool) $this->getRecord()->sex; + return (bool) $this->getRawGender() == "female"; + } + + function getGender(): string + { + $gender = $this->getRecord()->gender; + + if(in_array($gender, ["female", "male", "non-binary"])) return tr($gender); + else return $gender ?? "Не указан"; + } + + function getRawGender(): ?string + { + return $this->getRecord()->gender; + } + + function hasOtherGenderString(): bool + { + return !in_array($this->getRecord()->gender, ["female", "male", "non-binary", NULL]); } function isVerified(): bool diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php index bfda79e8..029466af 100644 --- a/Web/Presenters/UserPresenter.php +++ b/Web/Presenters/UserPresenter.php @@ -164,9 +164,14 @@ final class UserPresenter extends OpenVKPresenter if ($this->postParam("politViews") <= 9 && $this->postParam("politViews") >= 0) $user->setPolit_Views($this->postParam("politViews")); - if ($this->postParam("gender") <= 1 && $this->postParam("gender") >= 0) - $user->setSex($this->postParam("gender")); - + if ($this->postParam("gender")) + if($this->postParam("gender") == "hide") + $user->setGender(NULL); + elseif($this->postParam("gender") == "other" && $this->postParam("other-gender-string")) + $user->setGender($this->postParam("other-gender-string")); + else + $user->setGender($this->postParam("gender")); + if(!empty($this->postParam("phone")) && $this->postParam("phone") !== $user->getPhone()) { if(!OPENVK_ROOT_CONF["openvk"]["credentials"]["smsc"]["enable"]) $this->flashFail("err", tr("error_segmentation"), "котлетки"); diff --git a/Web/Presenters/templates/User/Edit.xml b/Web/Presenters/templates/User/Edit.xml index 96152132..f5e537ad 100644 --- a/Web/Presenters/templates/User/Edit.xml +++ b/Web/Presenters/templates/User/Edit.xml @@ -133,11 +133,23 @@ {_gender}: + - + + + + + + diff --git a/Web/Presenters/templates/User/View.xml b/Web/Presenters/templates/User/View.xml index fb38133d..571575a0 100644 --- a/Web/Presenters/templates/User/View.xml +++ b/Web/Presenters/templates/User/View.xml @@ -382,7 +382,7 @@ {_gender}: - {$user->isFemale() ? tr("female") : tr("male")} + {$user->getGender()} {_relationship}: diff --git a/install/sqls/00032-other-gender-options.sql b/install/sqls/00032-other-gender-options.sql new file mode 100644 index 00000000..3e10c739 --- /dev/null +++ b/install/sqls/00032-other-gender-options.sql @@ -0,0 +1,3 @@ +ALTER TABLE `profiles` DROP `sex` + +ALTER TABLE `profiles` ADD `gender` VARCHAR(50) NULL DEFAULT NULL AFTER `left_menu`; diff --git a/locales/en.strings b/locales/en.strings index 2e3461b7..bb5abb1e 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -69,6 +69,9 @@ "gender" = "Gender"; "male" = "male"; "female" = "female"; +"non-binary" = "non-binary"; +"other" = "other"; +"other_gender_placeholder" = "I refer to myself as..."; "description" = "Description"; "save" = "Save"; "main_information" = "Main information"; diff --git a/locales/ru.strings b/locales/ru.strings index 68f6d69f..cd142ec5 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -71,6 +71,9 @@ "gender" = "Пол"; "male" = "мужской"; "female" = "женский"; +"non-binary" = "небинарный"; +"other" = "другой"; +"other_gender_placeholder" = "Я идентифицирую себя как..."; "description" = "Описание"; "save" = "Сохранить"; "main_information" = "Основная информация"; From 0b9f41510900996222c55604c1da5387f09b912b Mon Sep 17 00:00:00 2001 From: n1rwana Date: Thu, 8 Sep 2022 16:24:38 +0300 Subject: [PATCH 2/5] The current gender is now displayed in the input --- Web/Presenters/UserPresenter.php | 7 +++++-- Web/Presenters/templates/User/Edit.xml | 4 ++-- locales/en.strings | 1 + locales/ru.strings | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php index 029466af..52330746 100644 --- a/Web/Presenters/UserPresenter.php +++ b/Web/Presenters/UserPresenter.php @@ -167,8 +167,11 @@ final class UserPresenter extends OpenVKPresenter if ($this->postParam("gender")) if($this->postParam("gender") == "hide") $user->setGender(NULL); - elseif($this->postParam("gender") == "other" && $this->postParam("other-gender-string")) - $user->setGender($this->postParam("other-gender-string")); + elseif($this->postParam("gender") == "other") + if($this->postParam("other-gender-string")) + $user->setGender($this->postParam("other-gender-string")); + else + $user->setGender(NULL); else $user->setGender($this->postParam("gender")); diff --git a/Web/Presenters/templates/User/Edit.xml b/Web/Presenters/templates/User/Edit.xml index f5e537ad..b493121a 100644 --- a/Web/Presenters/templates/User/Edit.xml +++ b/Web/Presenters/templates/User/Edit.xml @@ -143,13 +143,13 @@ - + diff --git a/locales/en.strings b/locales/en.strings index bb5abb1e..f00e12c2 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -72,6 +72,7 @@ "non-binary" = "non-binary"; "other" = "other"; "other_gender_placeholder" = "I refer to myself as..."; +"hidden" = "not specified"; "description" = "Description"; "save" = "Save"; "main_information" = "Main information"; diff --git a/locales/ru.strings b/locales/ru.strings index cd142ec5..1cb1a923 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -74,6 +74,7 @@ "non-binary" = "небинарный"; "other" = "другой"; "other_gender_placeholder" = "Я идентифицирую себя как..."; +"hidden" = "не указан"; "description" = "Описание"; "save" = "Сохранить"; "main_information" = "Основная информация"; From 53f3e8b4e4c3b98c796db4bb8f51e05de55b35c6 Mon Sep 17 00:00:00 2001 From: n1rwana Date: Thu, 8 Sep 2022 16:29:04 +0300 Subject: [PATCH 3/5] VKAPI fix --- VKAPI/Handlers/Users.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VKAPI/Handlers/Users.php b/VKAPI/Handlers/Users.php index 6185a250..e9e33c3e 100644 --- a/VKAPI/Handlers/Users.php +++ b/VKAPI/Handlers/Users.php @@ -52,7 +52,7 @@ final class Users extends VKAPIRequestHandler $response[$i]->verified = intval($usr->isVerified()); break; case "sex": - $response[$i]->sex = $usr->isFemale() ? 1 : 2; + $response[$i]->sex = $usr->getGender(); break; case "has_photo": $response[$i]->has_photo = is_null($usr->getAvatarPhoto()) ? 0 : 1; From 42fbd78dd474066bfedb3da915a229ed743f663d Mon Sep 17 00:00:00 2001 From: n1rwana Date: Thu, 13 Oct 2022 12:08:54 +0300 Subject: [PATCH 4/5] Registration fixed --- Web/Presenters/AuthPresenter.php | 5 ++++- Web/Presenters/templates/Auth/Register.xml | 5 +++-- locales/en.strings | 11 +++++++++++ locales/ru.strings | 11 +++++++++++ 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Web/Presenters/AuthPresenter.php b/Web/Presenters/AuthPresenter.php index bb9d7272..799250f0 100644 --- a/Web/Presenters/AuthPresenter.php +++ b/Web/Presenters/AuthPresenter.php @@ -91,7 +91,10 @@ final class AuthPresenter extends OpenVKPresenter $user = new User; $user->setFirst_Name($this->postParam("first_name")); $user->setLast_Name($this->postParam("last_name")); - $user->setSex((int)($this->postParam("sex") === "female")); + + if ($this->postParam("sex") != "null") + $user->setGender((int)($this->postParam("sex") === "female")); + $user->setEmail($this->postParam("email")); $user->setSince(date("Y-m-d H:i:s")); $user->setRegistering_Ip(CONNECTING_IP); diff --git a/Web/Presenters/templates/Auth/Register.xml b/Web/Presenters/templates/Auth/Register.xml index 16532cb1..abf85b91 100644 --- a/Web/Presenters/templates/Auth/Register.xml +++ b/Web/Presenters/templates/Auth/Register.xml @@ -49,8 +49,9 @@ {var $femalePreferred = OPENVK_ROOT_CONF["openvk"]["preferences"]["femaleGenderPriority"]} diff --git a/locales/en.strings b/locales/en.strings index f00e12c2..2d963adb 100644 --- a/locales/en.strings +++ b/locales/en.strings @@ -1151,3 +1151,14 @@ "url_is_banned_default_reason" = "The link you are trying to open may lead you to a site that was created for the purpose of deceiving users with the intention of gaining profit."; "url_is_banned_title" = "Link to a suspicious site"; "url_is_banned_proceed" = "Follow the link"; + +/* Maintenance */ + +"global_maintenance" = "Undergoing maintenance"; +"section_maintenance" = "The section is not available"; +"undergoing_global_maintenance" = "Unfortunately, the instance is now closed for technical work. We are already working on troubleshooting. Please try to come back later."; +"undergoing_section_maintenance" = "Unfortunately, the $1 section is temporarily unavailable. We are already working on troubleshooting. Please try to come back later."; + +"topics" = "Topics"; + +"not_specified" = "Not specified"; diff --git a/locales/ru.strings b/locales/ru.strings index 1cb1a923..55ccfdf2 100644 --- a/locales/ru.strings +++ b/locales/ru.strings @@ -1212,3 +1212,14 @@ "url_is_banned_default_reason" = "Ссылка, по которой вы попытались перейти, может вести на сайт, который был создан с целью обмана пользователей и получения за счёт этого прибыли."; "url_is_banned_title" = "Ссылка на подозрительный сайт"; "url_is_banned_proceed" = "Перейти по ссылке"; + +/* Maintenance */ + +"global_maintenance" = "Технические работы"; +"section_maintenance" = "Раздел недоступен"; +"undergoing_global_maintenance" = "К сожалению, сейчас инстанс закрыт на технические работы. Мы уже работаем над устранением неисправностей. Пожалуйста, попробуйте зайти позже."; +"undergoing_section_maintenance" = "К сожалению, раздел $1 временно недоступен. Мы уже работаем над устранением неисправностей. Пожалуйста, попробуйте зайти позже."; + +"topics" = "Темы"; + +"not_specified" = "Не указан"; From 12f0d2d4cd75f3805dc10f9ca462da5133b3b2ee Mon Sep 17 00:00:00 2001 From: n1rwana Date: Thu, 13 Oct 2022 12:13:25 +0300 Subject: [PATCH 5/5] SQL fixed --- install/sqls/00032-other-gender-options.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/install/sqls/00032-other-gender-options.sql b/install/sqls/00032-other-gender-options.sql index 3e10c739..5014c153 100644 --- a/install/sqls/00032-other-gender-options.sql +++ b/install/sqls/00032-other-gender-options.sql @@ -1,3 +1,2 @@ -ALTER TABLE `profiles` DROP `sex` - +ALTER TABLE `profiles` DROP `sex`; ALTER TABLE `profiles` ADD `gender` VARCHAR(50) NULL DEFAULT NULL AFTER `left_menu`;