浏览代码

2018-03-24

Visman 7 年之前
父节点
当前提交
e00175401d
共有 5 个文件被更改,包括 114 次插入40 次删除
  1. 6 6
      app/Controllers/Routing.php
  2. 47 20
      app/Models/Pages/Profile.php
  3. 18 6
      app/lang/English/profile.po
  4. 18 6
      app/lang/Russian/profile.po
  5. 25 2
      public/style/ForkBB/style.css

+ 6 - 6
app/Controllers/Routing.php

@@ -80,14 +80,14 @@ class Routing
                 $r->add('GET',  '/userlist[/{sort:username|registered|num_posts}/{dir:ASC|DESC}/{group:\-1|[1-9]\d*}/{name}][/{page:[1-9]\d*}]', 'Userlist:view', 'Userlist');
                 $r->add('GET',  '/userlist[/{sort:username|registered|num_posts}/{dir:ASC|DESC}/{group:\-1|[1-9]\d*}/{name}][/{page:[1-9]\d*}]', 'Userlist:view', 'Userlist');
                 $r->add('POST', '/userlist', 'Userlist:view');
                 $r->add('POST', '/userlist', 'Userlist:view');
                 // юзеры
                 // юзеры
-                $r->add('GET',           '/user/{id:[2-9]|[1-9]\d+}/{name}',        'Profile:view',     'User');
-                $r->add(['GET', 'POST'], '/user/{id:[2-9]|[1-9]\d+}/edit/profile',  'Profile:edit',     'EditUserProfile');
-                $r->add(['GET', 'POST'], '/user/{id:[2-9]|[1-9]\d+}/edit/settings', 'Profile:settings', 'EditUserSettings');
+                $r->add('GET',           '/user/{id:[2-9]|[1-9]\d+}/{name}',       'Profile:view',   'User');
+                $r->add(['GET', 'POST'], '/user/{id:[2-9]|[1-9]\d+}/edit/profile', 'Profile:edit',   'EditUserProfile');
+                $r->add(['GET', 'POST'], '/user/{id:[2-9]|[1-9]\d+}/edit/config',  'Profile:config', 'EditBoardConfig');
             } elseif (! $user->isGuest) {
             } elseif (! $user->isGuest) {
                 // только свой профиль
                 // только свой профиль
-                $r->add('GET',           '/user/{id:' . $user->id . '}/{name}',        'Profile:view',     'User');
-                $r->add(['GET', 'POST'], '/user/{id:' . $user->id . '}/edit/profile',  'Profile:edit',     'EditUserProfile');
-                $r->add(['GET', 'POST'], '/user/{id:' . $user->id . '}/edit/settings', 'Profile:settings', 'EditUserSettings');
+                $r->add('GET',           '/user/{id:' . $user->id . '}/{name}',       'Profile:view',   'User');
+                $r->add(['GET', 'POST'], '/user/{id:' . $user->id . '}/edit/profile', 'Profile:edit',   'EditUserProfile');
+                $r->add(['GET', 'POST'], '/user/{id:' . $user->id . '}/edit/config',  'Profile:config', 'EditBoardConfig');
             }
             }
             // пометка разделов прочитанными
             // пометка разделов прочитанными
             if (! $user->isGuest) {
             if (! $user->isGuest) {

+ 47 - 20
app/Models/Pages/Profile.php

@@ -43,7 +43,7 @@ class Profile extends Page
         $isAdmin     = $this->user->isAdmin && ($myProf || ! $curUser->isAdmin);
         $isAdmin     = $this->user->isAdmin && ($myProf || ! $curUser->isAdmin);
         $isModer     = $this->user->isAdmMod && ($myProf || ! $curUser->isAdmMod);
         $isModer     = $this->user->isAdmMod && ($myProf || ! $curUser->isAdmMod);
         $canEditProf = $myProf || $isAdmin || ($isModer && '1' == $this->user->g_mod_edit_users);
         $canEditProf = $myProf || $isAdmin || ($isModer && '1' == $this->user->g_mod_edit_users);
-        $canEditSets = $myProf || $isAdmin || ($isModer && '1' == $this->user->g_mod_edit_users); // ????
+        $canEditConf = $myProf || $isAdmin || ($isModer && '1' == $this->user->g_mod_edit_users); // ????
 
 
         if ($isEdit) {
         if ($isEdit) {
             if (! $canEditProf) {
             if (! $canEditProf) {
@@ -122,13 +122,23 @@ class Profile extends Page
         $fieldset[] = [
         $fieldset[] = [
             'type' => 'endwrap',
             'type' => 'endwrap',
         ];
         ];
-        if ('1' == $this->c->config->o_avatars && $curUser->avatar) {
-            $fieldset['avatar'] = [
-                'id'      => 'avatar',
-                'type'    => 'yield',
-                'caption' => \ForkBB\__('Avatar'),
-                'value'   => 'avatar',
-            ];
+        if ('1' == $this->c->config->o_avatars) {
+            if ($isEdit && ! $curUser->avatar) { //// может стоит поле для загрузки вставить????
+                $fieldset['avatar'] = [
+                    'id'      => 'avatar',
+                    'class'   => 'pline',
+                    'type'    => 'str',
+                    'caption' => \ForkBB\__('Avatar'),
+                    'value'   => \ForkBB\__('Not uploaded'),
+                ];
+            } elseif ($curUser->avatar) {
+                $fieldset['avatar'] = [
+                    'id'      => 'avatar',
+                    'type'    => 'yield',
+                    'caption' => \ForkBB\__('Avatar'),
+                    'value'   => 'avatar',
+                ];
+            }
         }
         }
         $form['sets'][] = [
         $form['sets'][] = [
             'id'     => 'header',
             'id'     => 'header',
@@ -194,6 +204,7 @@ class Profile extends Page
         if ($isEdit) {
         if ($isEdit) {
             $fieldset['gender'] = [
             $fieldset['gender'] = [
                 'id'      => 'gender',
                 'id'      => 'gender',
+                'class'   => 'block',
                 'type'    => 'radio',
                 'type'    => 'radio',
                 'value'   => $curUser->gender,
                 'value'   => $curUser->gender,
                 'values'  => $genders,
                 'values'  => $genders,
@@ -420,41 +431,57 @@ class Profile extends Page
             'fields' => $fieldset,
             'fields' => $fieldset,
         ];
         ];
 
 
+        if ($isEdit) {
+            $this->robots    = 'noindex';
+            $this->crumbs    = $this->crumbs(
+                \ForkBB\__('Editing profile'),
+                [$curUser->link, \ForkBB\__('User %s', $curUser->username)],
+                [$this->c->Router->link('Userlist'), \ForkBB\__('User list')]
+            );
+        } else {
+            $this->canonical = $curUser->link;
+            $this->crumbs    = $this->crumbs(
+                [$curUser->link, \ForkBB\__('User %s', $curUser->username)],
+                [$this->c->Router->link('Userlist'), \ForkBB\__('User list')]
+            );
+        }
+
         $this->fIndex    = $myProf ? 'profile' : 'userlist';
         $this->fIndex    = $myProf ? 'profile' : 'userlist';
         $this->nameTpl   = 'profile';
         $this->nameTpl   = 'profile';
         $this->onlinePos = 'profile-' . $curUser->id; // ????
         $this->onlinePos = 'profile-' . $curUser->id; // ????
-        $this->canonical = $curUser->link;
         $this->title     = \ForkBB\__('%s\'s profile', $curUser->username);
         $this->title     = \ForkBB\__('%s\'s profile', $curUser->username);
-        $this->crumbs    = $this->crumbs(
-            [$curUser->link, \ForkBB\__('User %s', $curUser->username)],
-            [$this->c->Router->link('Userlist'), \ForkBB\__('User list')]
-        );
         $this->form      = $form;
         $this->form      = $form;
         $this->curUser   = $curUser;
         $this->curUser   = $curUser;
 
 
         $btns = [];
         $btns = [];
-        if ($isAdmin || ($isModer && '1' == $this->user->g_mod_ban_users)) {
+        if (! $myProf && ($isAdmin || ($isModer && '1' == $this->user->g_mod_ban_users))) {
             $btns['ban-user'] = [
             $btns['ban-user'] = [
                 $this->c->Router->link('',  ['id' => $curUser->id]),
                 $this->c->Router->link('',  ['id' => $curUser->id]),
                 \ForkBB\__('Ban user'),
                 \ForkBB\__('Ban user'),
             ];
             ];
         }
         }
-        if ($isAdmin || $isModer) { // ????
+        if (! $myProf && ($isAdmin || $isModer)) { // ????
             $btns['delete-user'] = [
             $btns['delete-user'] = [
                 $this->c->Router->link('',  ['id' => $curUser->id]),
                 $this->c->Router->link('',  ['id' => $curUser->id]),
                 \ForkBB\__('Delete user'),
                 \ForkBB\__('Delete user'),
             ];
             ];
         }
         }
-        if ($canEditProf) {
+        if (!$isEdit && $canEditProf) {
             $btns['edit-profile'] = [
             $btns['edit-profile'] = [
                 $this->c->Router->link('EditUserProfile',  ['id' => $curUser->id]),
                 $this->c->Router->link('EditUserProfile',  ['id' => $curUser->id]),
-                \ForkBB\__('Edit profile'),
+                \ForkBB\__('Edit '),
+            ];
+        }
+        if ($isEdit) {
+            $btns['view-profile'] = [
+                $curUser->link,
+                \ForkBB\__('View '),
             ];
             ];
         }
         }
-        if ($canEditSets) {
+        if ($canEditConf) {
             $btns['edit-settings'] = [
             $btns['edit-settings'] = [
-                $this->c->Router->link('EditUserSettings', ['id' => $curUser->id]),
-                \ForkBB\__('Edit settings'),
+                $this->c->Router->link('EditBoardConfig', ['id' => $curUser->id]),
+                \ForkBB\__('Configure '),
             ];
             ];
         }
         }
         $this->actionBtns = $btns;
         $this->actionBtns = $btns;

+ 18 - 6
app/lang/English/profile.po

@@ -384,12 +384,6 @@ msgstr "Gender"
 msgid "Unknown"
 msgid "Unknown"
 msgstr "Unknown"
 msgstr "Unknown"
 
 
-msgid "Edit profile"
-msgstr "Edit"
-
-msgid "Edit settings"
-msgstr "Settings"
-
 msgid "Contact details"
 msgid "Contact details"
 msgstr "Contact details"
 msgstr "Contact details"
 
 
@@ -401,3 +395,21 @@ msgstr "%s"
 
 
 msgid "Email settings label"
 msgid "Email settings label"
 msgstr "Email settings"
 msgstr "Email settings"
+
+msgid "View "
+msgstr "View"
+
+msgid "Edit "
+msgstr "Edit"
+
+msgid "Editing profile"
+msgstr "Editing profile"
+
+msgid "Configure "
+msgstr "Configure"
+
+msgid "Board configuration"
+msgstr "Board configuration"
+
+msgid "Not uploaded"
+msgstr "Not uploaded"

+ 18 - 6
app/lang/Russian/profile.po

@@ -384,12 +384,6 @@ msgstr "Пол"
 msgid "Unknown"
 msgid "Unknown"
 msgstr "Неизвестно"
 msgstr "Неизвестно"
 
 
-msgid "Edit profile"
-msgstr "Редактировать"
-
-msgid "Edit settings"
-msgstr "Настройки"
-
 msgid "Contact details"
 msgid "Contact details"
 msgstr "Контактная информация"
 msgstr "Контактная информация"
 
 
@@ -401,3 +395,21 @@ msgstr "%s"
 
 
 msgid "Email settings label"
 msgid "Email settings label"
 msgstr "Настройки email"
 msgstr "Настройки email"
+
+msgid "View "
+msgstr "Просмотреть"
+
+msgid "Edit "
+msgstr "Редактировать"
+
+msgid "Editing profile"
+msgstr "Редактирование профиля"
+
+msgid "Configure "
+msgstr "Настроить"
+
+msgid "Board configuration"
+msgstr "Настрйока форума"
+
+msgid "Not uploaded"
+msgstr "Не загружена"

+ 25 - 2
public/style/ForkBB/style.css

@@ -2128,6 +2128,10 @@ select {
   .f-fs-data dd {
   .f-fs-data dd {
     width: 67%
     width: 67%
   }
   }
+
+  .f-field-pline .f-child1:after {
+    content: "";
+  }
 }
 }
 
 
 /****************************/
 /****************************/
@@ -2160,6 +2164,25 @@ select {
   height: 11rem;
   height: 11rem;
 }
 }
 
 
-#id-fs-activity.f-fs-data-edit .f-child1:after {
-  content: ": ";
+.f-fs-data-edit #id-admin_note {
+  background-color: #FFBABA;
 }
 }
+
+@media screen and (min-width: 40rem) {
+  .f-fs-header-edit dl,
+  .f-fs-data-edit dl {
+    display: flex;
+  }
+
+  .f-fs-header-edit dt,
+  .f-fs-data-edit dt {
+    width: 33%;
+    text-align: right;
+    padding-right: 0.625rem;
+  }
+
+  .f-fs-header-edit dd,
+  .f-fs-data-edit dd {
+    width: 67%
+  }
+}