Visman 7 年 前
コミット
fdb5dc9048

+ 2 - 1
app/Models/AdminList/Load.php

@@ -3,6 +3,7 @@
 namespace ForkBB\Models\AdminList;
 namespace ForkBB\Models\AdminList;
 
 
 use ForkBB\Models\Method;
 use ForkBB\Models\Method;
+use PDO;
 
 
 class Load extends Method
 class Load extends Method
 {
 {
@@ -14,7 +15,7 @@ class Load extends Method
      */
      */
     public function load()
     public function load()
     {
     {
-        $list = $this->c->DB->query('SELECT id FROM ::users WHERE group_id=?i', [$this->c->GROUP_ADMIN])->fetchAll(\PDO::FETCH_COLUMN);
+        $list = $this->c->DB->query('SELECT id FROM ::users WHERE group_id=?i', [$this->c->GROUP_ADMIN])->fetchAll(PDO::FETCH_COLUMN);
         $this->model->list = $list;
         $this->model->list = $list;
         $this->c->Cache->set('admins', $list);
         $this->c->Cache->set('admins', $list);
         return $this->model;
         return $this->model;

+ 2 - 1
app/Models/Group/Perm.php

@@ -5,6 +5,7 @@ namespace ForkBB\Models\Group;
 use ForkBB\Models\Action;
 use ForkBB\Models\Action;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Group\Model as Group;
 use ForkBB\Models\Group\Model as Group;
+use PDO;
 use RuntimeException;
 use RuntimeException;
 
 
 class Perm extends Action
 class Perm extends Action
@@ -34,7 +35,7 @@ class Perm extends Action
                 LEFT JOIN ::forum_perms AS fp ON (g.g_id=fp.group_id AND fp.forum_id=?i:fid)
                 LEFT JOIN ::forum_perms AS fp ON (g.g_id=fp.group_id AND fp.forum_id=?i:fid)
                 WHERE g.g_id!=?i:adm
                 WHERE g.g_id!=?i:adm
                 ORDER BY g.g_id';
                 ORDER BY g.g_id';
-        $perms = $this->c->DB->query($sql, $vars)->fetchAll(\PDO::FETCH_UNIQUE);
+        $perms = $this->c->DB->query($sql, $vars)->fetchAll(PDO::FETCH_UNIQUE);
 
 
         $result = [];
         $result = [];
         foreach ($perms as $gid => $perm) {
         foreach ($perms as $gid => $perm) {

+ 1 - 1
app/Models/Page.php

@@ -101,7 +101,7 @@ class Page extends Model
 
 
         if ($this->user->g_read_board == '1' && $this->c->config->o_additional_navlinks != '') {
         if ($this->user->g_read_board == '1' && $this->c->config->o_additional_navlinks != '') {
             // position|name|link[|id]\n
             // position|name|link[|id]\n
-            if (\preg_match_all('%^(\d+)\|([^\|\n\r]+)\|([^\|\n\r]+)(?:\|([^\|\n\r]+))?$%m', $this->c->config->o_additional_navlinks . "\n", $matches)) {
+            if (\preg_match_all('%^(\d+)\|([^\|\n\r]+)\|([^\|\n\r]+)(?:\|([^\|\n\r]+))?%m', $this->c->config->o_additional_navlinks . "\n", $matches)) {
                $k = \count($matches[0]);
                $k = \count($matches[0]);
                for ($i = 0; $i < $k; ++$i) {
                for ($i = 0; $i < $k; ++$i) {
                    if (empty($matches[4][$i])) {
                    if (empty($matches[4][$i])) {

+ 3 - 2
app/Models/Post/Delete.php

@@ -6,6 +6,7 @@ use ForkBB\Models\Action;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Forum\Model as Forum;
 use ForkBB\Models\Post\Model as Post;
 use ForkBB\Models\Post\Model as Post;
 use ForkBB\Models\Topic\Model as Topic;
 use ForkBB\Models\Topic\Model as Topic;
+use PDO;
 use InvalidArgumentException;
 use InvalidArgumentException;
 use RuntimeException;
 use RuntimeException;
 
 
@@ -94,7 +95,7 @@ class Delete extends Action
                     FROM ::posts AS p
                     FROM ::posts AS p
                     WHERE p.topic_id IN (?ai:topics)
                     WHERE p.topic_id IN (?ai:topics)
                     GROUP BY p.poster_id';
                     GROUP BY p.poster_id';
-            $users = $this->c->DB->query($sql, $vars)->fetchAll(\PDO::FETCH_COLUMN);
+            $users = $this->c->DB->query($sql, $vars)->fetchAll(PDO::FETCH_COLUMN);
 
 
             $sql = 'DELETE FROM ::posts
             $sql = 'DELETE FROM ::posts
                     WHERE topic_id IN (?ai:topics)';
                     WHERE topic_id IN (?ai:topics)';
@@ -108,7 +109,7 @@ class Delete extends Action
                     INNER JOIN ::topics AS t ON t.id=p.topic_id
                     INNER JOIN ::topics AS t ON t.id=p.topic_id
                     WHERE t.forum_id IN (?ai:forums)
                     WHERE t.forum_id IN (?ai:forums)
                     GROUP BY p.poster_id';
                     GROUP BY p.poster_id';
-            $users = $this->c->DB->query($sql, $vars)->fetchAll(\PDO::FETCH_COLUMN);
+            $users = $this->c->DB->query($sql, $vars)->fetchAll(PDO::FETCH_COLUMN);
 
 
             $sql = 'DELETE FROM ::posts
             $sql = 'DELETE FROM ::posts
                     WHERE topic_id IN (
                     WHERE topic_id IN (

+ 1 - 1
app/lang/English/admin_options.po

@@ -352,7 +352,7 @@ msgid "Menu items label"
 msgstr "Additional menu items"
 msgstr "Additional menu items"
 
 
 msgid "Menu items help"
 msgid "Menu items help"
-msgstr "By entering HTML hyperlinks into this textbox, any number of items can be added to the navigation menu at the top of all pages. The format for adding new links is X = &lt;a href="URL"&gt;LINK&lt;/a&gt; where X is the position at which the link should be inserted (e.g. 0 to insert at the beginning and 2 to insert after "User list"). Separate entries with a linebreak."
+msgstr "You can add any number of new items in the menu. Each line specifies one item in the format: <b>Position</b>|<b>Name</b>|<b>Link</b><i>[|<b>Identifier</b>]</i>."
 
 
 msgid "Feed subhead"
 msgid "Feed subhead"
 msgstr "Syndication"
 msgstr "Syndication"

+ 1 - 1
app/lang/Russian/admin_options.po

@@ -352,7 +352,7 @@ msgid "Menu items label"
 msgstr "Дополнительные пункты меню"
 msgstr "Дополнительные пункты меню"
 
 
 msgid "Menu items help"
 msgid "Menu items help"
-msgstr "Можно добавить любое количество пунктов в меню. Каждый пункт в формате X = &lt;a href="URL"&gt;LINK&lt;/a&gt; где X это позиция, в которую надо вставить ссылку (например, 0 - в начало или 2 - следом за "Пользователи"). Каждый пункт должен начинаться с новой строки."
+msgstr "Можно добавить любое количество пунктов в меню. Каждая строка задает один пункт в формате: <b>Позиция</b>|<b>Наименование</b>|<b>Ссылка</b><i>[|<b>Идентификатор</b>]</i>."
 
 
 msgid "Feed subhead"
 msgid "Feed subhead"
 msgstr "Ленты"
 msgstr "Ленты"

+ 4 - 4
app/templates/layouts/admin.tpl

@@ -2,14 +2,14 @@
     <div class="f-main clearfix">
     <div class="f-main clearfix">
       <aside class="f-admin-menu">
       <aside class="f-admin-menu">
 @if ($p->aNavigation)
 @if ($p->aNavigation)
-        <nav class="admin-nav f-menu">
-          <input id="admin-nav-checkbox" style="display: none;" type="checkbox">
-          <label class="f-menu-toggle" for="admin-nav-checkbox"></label>
+        <nav class="f-admin-nav f-menu">
+          <input id="id-an-checkbox" class="f-menu-checkbox" style="display: none;" type="checkbox">
+          <label class="f-menu-toggle" for="id-an-checkbox"></label>
   @foreach ($p->aNavigation as $aNameSub => $aNavigationSub)
   @foreach ($p->aNavigation as $aNameSub => $aNavigationSub)
           <h2 class="f-menu-items">{!! __($aNameSub) !!}</h2>
           <h2 class="f-menu-items">{!! __($aNameSub) !!}</h2>
           <ul class="f-menu-items">
           <ul class="f-menu-items">
     @foreach ($aNavigationSub as $key => $val)
     @foreach ($aNavigationSub as $key => $val)
-            <li><a id="anav-{{ $key }}" @if ($key == $p->aIndex) class="active" @endif href="{!! $val[0] !!}">{!! $val[1] !!}</a></li>
+            <li id="id-anav-{{ $key }}" class="f-menu-item"><a class="f-menu-a @if ($key == $p->aIndex) active @endif" href="{!! $val[0] !!}">{!! $val[1] !!}</a></li>
     @endforeach
     @endforeach
           </ul>
           </ul>
   @endforeach
   @endforeach

+ 4 - 4
app/templates/layouts/main.tpl

@@ -22,12 +22,12 @@
 @endif
 @endif
       </div>
       </div>
 @if ($p->fNavigation)
 @if ($p->fNavigation)
-      <nav class="main-nav f-menu">
-        <input id="main-nav-checkbox" style="display: none;" type="checkbox">
-        <label class="f-menu-toggle" for="main-nav-checkbox"></label>
+      <nav class="f-main-nav f-menu">
+        <input id="id-mn-checkbox" class="f-menu-checkbox" type="checkbox" style="display: none;">
+        <label class="f-menu-toggle" for="id-mn-checkbox"></label>
         <ul class="f-menu-items">
         <ul class="f-menu-items">
   @foreach ($p->fNavigation as $key => $val)
   @foreach ($p->fNavigation as $key => $val)
-          <li><a id="nav-{{ $key }}" @if ($key == $p->fIndex) class="active" @endif href="{!! $val[0] !!}">{!! $val[1] !!}</a></li>
+          <li id="id-nav-{{ $key }}" class="f-menu-item"><a class="f-menu-a @if ($key == $p->fIndex) active @endif" href="{!! $val[0] !!}">{!! $val[1] !!}</a></li>
   @endforeach
   @endforeach
         </ul>
         </ul>
       </nav>
       </nav>

+ 28 - 30
public/style/ForkBB/style.css

@@ -252,26 +252,21 @@ select {
   cursor: pointer;
   cursor: pointer;
 }
 }
 
 
-.f-menu input:checked + .f-menu-toggle:after {
+.f-menu-checkbox:checked + .f-menu-toggle:after {
   content: "\2716";
   content: "\2716";
 }
 }
 
 
 .f-menu-items {
 .f-menu-items {
-  display: block;
   overflow: hidden;
   overflow: hidden;
   max-height: 0;
   max-height: 0;
+/*  transition-duration: 0.5s; */
 }
 }
 
 
-.f-menu input:checked ~ .f-menu-items {
-  display: block;
-  max-height: 1000rem;
-}
-
-.f-menu-items li {
-  display: block;
+.f-menu-checkbox:checked ~ .f-menu-items {
+  max-height: 100rem;
 }
 }
 
 
-.f-menu-items a {
+.f-menu-a {
   display: block;
   display: block;
   padding: 0.625rem;
   padding: 0.625rem;
   white-space: nowrap;
   white-space: nowrap;
@@ -287,7 +282,7 @@ select {
 }
 }
 
 
 .f-title > h1 {
 .f-title > h1 {
-  width: 77%;
+  width: calc(100% - 4rem);
   padding: 0.625rem 0 0.625rem 0.625rem;
   padding: 0.625rem 0 0.625rem 0.625rem;
 }
 }
 
 
@@ -307,12 +302,12 @@ select {
   background-color: #AA7939;
   background-color: #AA7939;
 }
 }
 
 
-.main-nav {
+.f-main-nav {
   width: 100%;
   width: 100%;
   background-color: #F8F4E3;
   background-color: #F8F4E3;
 }
 }
 
 
-.main-nav .f-menu-toggle {
+.f-main-nav .f-menu-toggle {
   color: #D3B58D;
   color: #D3B58D;
   border-color: #D3B58D;
   border-color: #D3B58D;
   position: absolute;
   position: absolute;
@@ -320,45 +315,45 @@ select {
   right: 0.625rem;
   right: 0.625rem;
 }
 }
 
 
-.main-nav .f-menu-items {
+.f-main-nav .f-menu-items {
   width: 100%;
   width: 100%;
   background-color: #F8F4E3;
   background-color: #F8F4E3;
-  position: relative;
 }
 }
 
 
-.main-nav a {
+.f-main-nav .f-menu-a {
   color: #583200;
   color: #583200;
   text-transform: uppercase;
   text-transform: uppercase;
   text-align: center;
   text-align: center;
   border: 0;
   border: 0;
 }
 }
 
 
-.main-nav a:hover,
-.main-nav a:focus {
+.f-main-nav .f-menu-a:hover,
+.f-main-nav .f-menu-a:focus {
   background-color: #583200;
   background-color: #583200;
   color: #F8F4E3;
   color: #F8F4E3;
 }
 }
 
 
-.main-nav a.active {
+.f-main-nav .f-menu-a.active {
   background-color: #814A00;
   background-color: #814A00;
   color: #F8F4E3;
   color: #F8F4E3;
 }
 }
 
 
 @media screen and (min-width: 50rem) {
 @media screen and (min-width: 50rem) {
-  .main-nav .f-menu-toggle {
+  .f-main-nav .f-menu-toggle {
     display: none;
     display: none;
   }
   }
 
 
-  .main-nav .f-menu-items {
-    max-height: 1000rem;
+  .f-main-nav .f-menu-items {
+    display: flex;
+    flex-wrap: wrap;
+    max-height: 100rem;
   }
   }
 
 
-  .main-nav .f-menu-items li {
+  .f-main-nav .f-menu-item {
     min-width: 4rem;
     min-width: 4rem;
-    float: left;
   }
   }
 
 
-  .main-nav a {
+  .f-main-nav .f-menu-a {
     text-transform: none;
     text-transform: none;
   }
   }
 } /* @media screen and (min-width: 50rem) */
 } /* @media screen and (min-width: 50rem) */
@@ -809,13 +804,13 @@ select {
 /******************/
 /******************/
 /* Админка - меню */
 /* Админка - меню */
 /******************/
 /******************/
-.f-admin-menu a {
+.f-admin-menu .f-menu-a {
   text-align: center;
   text-align: center;
   border: 0;
   border: 0;
   text-transform: uppercase;
   text-transform: uppercase;
 }
 }
 
 
-.f-admin-menu a.active {
+.f-admin-menu .f-menu-a.active {
   background-color: #814A00;
   background-color: #814A00;
   color: #F8F4E3;
   color: #F8F4E3;
 }
 }
@@ -840,17 +835,20 @@ select {
   .f-admin-menu {
   .f-admin-menu {
     width: 13rem;
     width: 13rem;
     float: left;
     float: left;
- }
+/*    position: static;
+    position: sticky;
+    top: 0; */
+  }
 
 
   .f-admin-menu .f-menu-toggle {
   .f-admin-menu .f-menu-toggle {
     display: none;
     display: none;
   }
   }
 
 
   .f-admin-menu .f-menu-items {
   .f-admin-menu .f-menu-items {
-    max-height: 1000rem;
+    max-height: 100rem;
   }
   }
 
 
-  .f-admin-menu a {
+  .f-admin-menu .f-menu-a {
     text-align: left;
     text-align: left;
     text-transform: none;
     text-transform: none;
     border-bottom: 0.0625rem dotted;
     border-bottom: 0.0625rem dotted;