소스 검색

knowledge: add access area

tokumeikoi 4 년 전
부모
커밋
f1c62e2732
4개의 변경된 파일23개의 추가작업 그리고 2개의 파일을 삭제
  1. 17 2
      app/Http/Controllers/User/KnowledgeController.php
  2. 0 0
      public/assets/user/umi.css
  3. 3 0
      resources/lang/en-US/user.php
  4. 3 0
      resources/lang/zh-CN/user.php

+ 17 - 2
app/Http/Controllers/User/KnowledgeController.php

@@ -20,8 +20,14 @@ class KnowledgeController extends Controller
             if (!$knowledge) abort(500, __('user.knowledge.fetch.knowledge_not_exist'));
             $user = User::find($request->session()->get('id'));
             $userService = new UserService();
-            $appleId = $userService->isAvailable($user) ? config('v2board.apple_id') : __('user.knowledge.fetch.apple_id_must_be_plan');
-            $appleIdPassword = $userService->isAvailable($user) ? config('v2board.apple_id_password') : __('user.knowledge.fetch.apple_id_must_be_plan');
+            if ($userService->isAvailable($user)) {
+                $appleId = config('v2board.apple_id');
+                $appleIdPassword = config('v2board.apple_id_password');
+            } else {
+                $appleId = __('user.knowledge.fetch.apple_id_must_be_plan');
+                $appleIdPassword = __('user.knowledge.fetch.apple_id_must_be_plan');
+                $this->formatAccessData($knowledge['body']);
+            }
             $subscribeUrl = config('v2board.subscribe_url', config('v2board.app_url', env('APP_URL'))) . '/api/v1/client/subscribe?token=' . $user['token'];
             $knowledge['body'] = str_replace('{{siteName}}', config('v2board.app_name', 'V2Board'), $knowledge['body']);
             $knowledge['body'] = str_replace('{{appleId}}', $appleId, $knowledge['body']);
@@ -51,4 +57,13 @@ class KnowledgeController extends Controller
             'data' => $knowledges
         ]);
     }
+
+    private function formatAccessData(&$body)
+    {
+        function getBetween($input, $start, $end){$substr = substr($input, strlen($start)+strpos($input, $start),(strlen($input) - strpos($input, $end))*(-1));return $substr;}
+        $accessData = getBetween($body, '<!--access start-->', '<!--access end-->');
+        if ($accessData) {
+            $body = str_replace($accessData, '<div class="v2board-no-access">'. __('user.knowledge.formatAccessData.no_access') .'</div>', $body);
+        }
+    }
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
public/assets/user/umi.css


+ 3 - 0
resources/lang/en-US/user.php

@@ -112,6 +112,9 @@ return [
         'fetch' => [
             'knowledge_not_exist' => 'Article does not exist',
             'apple_id_must_be_plan' => 'No active subscription. Unable to use our provided Apple ID'
+        ],
+        'formatAccessData' => [
+            'no_access' => 'You must have a valid subscription to view content in this area'
         ]
     ],
     'invite' => [

+ 3 - 0
resources/lang/zh-CN/user.php

@@ -112,6 +112,9 @@ return [
         'fetch' => [
             'knowledge_not_exist' => '文章不存在',
             'apple_id_must_be_plan' => '无有效订阅,无法使用本站提供的 AppleID'
+        ],
+        'formatAccessData' => [
+            'no_access' => '你必须拥有有效的订阅才可以查看该区域的内容'
         ]
     ],
     'invite' => [

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.