[Laravel] 라라벨용 게시판 - Laravel Board
한국형 라라벨 게시판 - Laravel Board
ver 8.2.x
8.2.x 부터는 install 방식을 artisan 명령어로 변경하여 좀더 간단하게 처리하였습니다.
1. Installation
composer require wangta69/laravel_board
php artisan pondol:install bbs // 회원관련 프로그램(auth) 도 같이 설치
php artisan pondol:install bbs only // bbs 만 설치
2. 관리자 접근 권한 설정
인스톨이 마무리되면 Https/Controllers/Bbs/ 아래로 필요한 모든 파일들이 copy 됩니다.
여기서 Admin 폴더아래의 모든 Controller 파일들에게는 관리자 접근권한이 주어지는데 아래와 같습니다.
public function __construct(
BbsService $bbsSvc
)
{
$this->bbsSvc = $bbsSvc;
$this->middleware('auth');
$this->middleware(function ($request, $next) {
$value = config('bbs.admin_roles'); // administrator
if (Auth::check()) {
if(!$this->bbsSvc->hasRoles($value))
return redirect('');
} else {
return redirect('');
}
return $next($request);
});
}
위의 부분을 여러분의 시스템(auth)에 마추어 설정하여야 합니다.
full 시스템에서는 회원별권한 관리(auth)가 포함되어 운영중에 있으나 배포판에서는 bbs만 따로 배포함으로서 그 부분이 제외되어있습니다.
이것을 구현하기 위해서는 기존 서비스에 회원에 관한 기본 정보가 존재하여야 하며 admin권한으로 로그인 된 상태가 되어야 합니다.
config/bbs.php 에서 admin_roles를 관리자용으로 사용하는 권한으로 대처해 줍니다.
'admin_roles' => 'administrator,manager'
디자인관련
현재 디자인관련하여 css는 bootstrp 5.x 대를 기본으로 하여 설계되었으며 jquery는 3.6 버전입니다. 이부분을 함께 마추어주시면 됩니다.
기능
comment 설정
관리자 로그인
이젠 관리자로 로그인하여 다양한 bbs를 만들어 보겠습니다.
현재 브라우저에서 bbs/admin을 타이핑하여 관린자로 로그인 합니다.
비어있는 게시판 리스트를 볼 수 있는데 새로운 게시판을 "create" 하겠습니다.
- 게시판 이름 : 현재 게시판의 이름
- DB 테이블 : 게시판 고유 값(되도록이면 영문으로 작성)
- 게시판 스킨 : 게시판 스킨은 관리자와 회원용으로 분리되어 있으며 각각 설정해 주셔야 합니다. 게시판 스킨에 대해서는 아래에 좀더 자세히 설명하도록 하겠습니다.
- Blade Extends : 라라벨 블레이드에서 extends 롤 사용할 부분입니다.'@extends($cfg->extends)'
간단한 게시판이 생성되었습니다.
게시판 리스트에서 'view'를 클릭하시면 각각의 게시판에 대한 게시물을 핸들링(쓰기, 보기, 수정, 삭제)이 가능합니다.
Front에서 게시판 보기
프론트에서 게시판을 볼경우는 아래와 같이 링크를 사용하시면 됩니다.
http://도메인/bbs/[DB 테이블]
http://myservice.com/bbs/notice
게시판 template 추가하기
install을 완료하면 /resources/views 아래로 아래와 같은 폴더들이 복사됩니다.
- resources
- views
- bbs
- admin
- templates (관리자용 탬플릿)
- templates (유저용 탬플릿)
각각의 templates 아래를 복사하여 다른 이름으로 변경후 올리시면 이전 bbs/admin에서 template가 추가됩니다.
bbs 관리자 디자인 변경
/bbs/admin 로그인 후 관리자용 환경 설정 > 관리자용 Blade Extends 를 현재 사용하시는 관리자 template의 extens 로 교체하시면 동일한 화면이 디스플레이 됩니다.