diff --git a/assets/less/mio/classes/profile.less b/assets/less/mio/classes/profile.less index d55d36c6..227de7fc 100644 --- a/assets/less/mio/classes/profile.less +++ b/assets/less/mio/classes/profile.less @@ -12,6 +12,15 @@ } } + &__account-link { + color: inherit; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + &__icon { vertical-align: middle; } @@ -70,6 +79,10 @@ @media (max-width: @mio-profile-mobile) { background-color: #fbeeff; } + + &--links:empty { + display: none; + } } &__row { diff --git a/public/settings.php b/public/settings.php index f2ea306e..f5c225ae 100644 --- a/public/settings.php +++ b/public/settings.php @@ -115,7 +115,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!empty($_POST['profile']['youtube'])) { $youtube_regex = preg_match( '#^(?:https?://(?:www.)?youtube.com/(?:(?:user|c|channel)/)?)?' - . '(UC[a-zA-Z0-9-_]{1,50}|[a-zA-Z0-9-_%]{1,100})/?$#u', + . '(UC[a-zA-Z0-9-_]{1,22}|[a-zA-Z0-9-_%]{1,100})/?$#u', $_POST['profile']['youtube'], $youtube_matches ); @@ -259,7 +259,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } - if (!empty($_POST['current_password']) && (isset($_POST['password']) || isset($_OST['email']))) { + if (!empty($_POST['current_password']) + || ( + (isset($_POST['password']) || isset($_OST['email'])) + && (!empty($_POST['password']['new']) || !empty($_POST['email']['new'])) + ) + ) { if (!$settings_user->verifyPassword($_POST['current_password'])) { $settings_errors[] = "Your current password was incorrect."; break; diff --git a/views/mio/user/view.twig b/views/mio/user/view.twig index 59ae8c0d..8d25d421 100644 --- a/views/mio/user/view.twig +++ b/views/mio/user/view.twig @@ -1,8 +1,64 @@ {% extends '@mio/user/master.twig' %} -{% from '@mio/macros.twig' import navigation %} +{% from '@mio/macros.twig' import navigation, link %} {% set title = 'Profile of ' ~ profile.username %} +{% set youtube_is_channel_id = profile.user_youtube|slice(0, 2) == 'UC' and profile.youtube|length == 24 %} + +{% set profile_fields = { + "twitter": { + "title": "Twitter", + "value": profile.user_twitter, + "link": "https://twitter.com/%s", + "format": "@%s", + }, + "osu": { + "title": "osu!", + "value": profile.user_osu, + "link": "https://osu.ppy.sh/users/%s", + }, + "website": { + "title": "Website", + "value": profile.user_website, + "link": "%s", + }, + "youtube": { + "title": "Youtube", + "value": profile.user_youtube, + "link": "https://youtube.com/" ~ (youtube_is_channel_id ? "channel/" : '') ~ "%s", + "format": youtube_is_channel_id ? "Channel of " ~ profile.username : "%s", + }, + "steam": { + "title": "Steam", + "value": profile.user_steam, + "link": "https://steamcommunity.com/id/%s", + }, + "twitchtv": { + "title": "Twitch.tv", + "value": profile.user_twitchtv, + "link": "https://twitch.tv/%s", + }, + "lastfm": { + "title": "Last.fm", + "value": profile.user_lastfm, + "link": "http://last.fm/user/%s", + }, + "github": { + "title": "Github", + "value": profile.user_github, + "link": "https://github.com/%s", + }, + "skype": { + "title": "Skype", + "value": profile.user_skype, + "link": "skype:%s?userinfo", + }, + "discord": { + "title": "Discord", + "value": profile.user_discord, + }, +} %} + {% block content %} {{ navigation(mio_navigation, false, true) }} @@ -12,16 +68,16 @@
-
-
-
- {{ profile.user_country }} -
-
- {{ profile.user_country|country_name }} +
+
+
+ {{ profile.user_country }} +
+
+ {{ profile.user_country|country_name }} +
-
@@ -34,6 +90,30 @@
+ + {% spaceless %} +
+ +
+ {% endspaceless %}