Wallogit.com
2017 © Pedro Pelรกez
๋ผ๋ผ๋ฒจ์ผ๋ก ๊ฒ์ํ์ ํธํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ํจํค์ง์ ๋๋ค., (*1)
composer require visualplus/board
config/app.php์ ์๋ providers์ Visualplus/Board/ServiceProvider::class ์ถ๊ฐ
๊ธฐ๋ณธ ์คํจ์ ์ฐ๊ฒฐํด์ฃผ๊ณ ๊ธฐ๋ณธ db ํ ์ด๋ธ์ ๋ง๋ค์ด์ฃผ๋ migration ํ์ผ์ ๋ณต์ฌํ๊ธฐ ์ํ ๋จ๊ณ์ ๋๋ค. ( ๊ธฐ๋ณธ ์คํจ ๋ฐ migration ํ์ผ์ด ํ์์๋ค๋ฉด ์ํ์ ๋ ๋ฉ๋๋ค. ), (*2)
ServiceProvider๋ฅผ ์ถ๊ฐ ํ, (*3)
php artisan vendor:publish
๋ช ๋ น์ด๋ฅผ ์น๋ฉด database/migrations ์์ create_board.php ํ์ผ์ด ์๊น๋๋ค. ์ด ํ์ผ์ ๊ฒ์ํ ์ค์ ํ ์ด๋ธ, ๊ฒ์๊ธ ํ ์ด๋ธ, ๊ฒ์๊ธ ์ฐ๊ฒฐ ํ์ผ ํ ์ด๋ธ์ ์์ฑ์ ๋์์ค๋๋ค., (*4)
create_board.php๋ฅผ ๋ณด๋ฉด ๊ฒ์ํ์ ๋์์ํค๊ธฐ ์ํ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๊ตฌ์กฐ๊ฐ ์ ์๋์ด์์ต๋๋ค., (*5)
๋ชจ๋ ๊ฒ์ํ์ ๊ฒ์๊ธ ์ ์ฅํ ํ ์ด๋ธ 1๊ฐ, ํ์ผ์ ์ ์ฅํ ํ ์ด๋ธ 1๊ฐ๊ฐ ๊ผญ ํ์ํ๋ฉฐ ๊ด๋ฆฌ์ ํ์ด์ง์์ ํ ์ด๋ธ๋ช ์ ์ง์ ํด์ฃผ์ ์ผ ํฉ๋๋ค. ( ํ์ผ ์ ์ฅํ ํ ์ด๋ธ์ ๊ฒ์๊ธ ํ ์ด๋ธ๋ช + '_files'๋ก ํต์ผํฉ๋๋ค. ), (*6)
์ปจํธ๋กค๋ฌ๋ฅผ ํ๋ ์์ฑ ํ Visualplus\Board\AdminController๋ฅผ ์์ํฉ๋๋ค., (*7)
php artisan make:controller BoardAdminController
class BoardAdminController extends \Visualplus\Board\AdminController
{
...
}
AdminController๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ชจ๋ธ์ ํํ ๋ฐ์ธ๋ฉ ํด์ฃผ์ ์ผ ํฉ๋๋ค., (*8)
protected $model = '';
๊ฒ์ํ ์ค์ ๋ชจ๋ธ์ ์ ์ด์ค๋๋ค. ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ ํ ์ด๋ธ์ ๋ชจ๋ธ์ ์ฌ์ฉํ์๋ ค๋ฉด, (*9)
php artisan make:model BoardConfig
protected $model = '\App\BoardConfig';
์์๊ฐ์ด ์ค์ ํด์ฃผ์ธ์., (*10)
์ปจํธ๋กค๋ฌ๋ฅผ ํ๋ ์์ฑ ํ Visualplus\Board\BoardController๋ฅผ ์์ํฉ๋๋ค., (*11)
php artisan make:controller FreeBoardController
class FreeBoardController extends \Visualplus\Board\BoardController
{
...
}
BoardController๋ ๋ช๊ฐ์ง ์ต์ ์ ์ ๊ณตํฉ๋๋ค., (*12)
protected $config_model = '';
๊ฐ ๊ฒ์ํ ์ปจํธ๋กค๋ฌ๋ ์์ ์ ์ค์ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ๊ฒ์ํ ์ค์ ๋ชจ๋ธ์ ์ง์ ํด์ค์ผ ํฉ๋๋ค. ์ด ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ด ์์ผ๋ฉฐ ๋ฌด์กฐ๊ฑด ์ค์ ์ ํด์ฃผ์ ์ผ ํ๋ ๊ฐ ์ ๋๋ค., (*13)
์ ๊ณต๋๋ migrations ํ์ผ์ ๊ทธ๋๋ก ์ฌ์ฉ์ ํ์ จ๋ค๋ฉด, (*14)
php artisan make:model BoardConfig
protected $config_model = '\App\BoardConfig';
์์ ๊ฐ์ด ์ค์ ์ ํด ์ฃผ์ธ์., (*15)
// ๊ฒ์๊ธ ํ ์ด๋ธ ๋ชจ๋ธ protected $articles_model = 'Visualplus\Board\Articles'; // ๊ฒ์๊ธ ํ์ผ ํ ์ด๋ธ ๋ชจ๋ธ protected $article_files_model = 'Visualplus\Board\ArticleFiles';
๊ฒ์ํ ๊ธ์ ์ ์ฅํ ๋ชจ๋ธ๊ณผ, ์ฒจ๋ถํ์ผ์ ์ ์ฅํ ๋ชจ๋ธ์ด ํ์ํฉ๋๋ค. ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ ํ ์ด๋ธ๋ช ์ ๋ฐ๋ก ๊ธฐ์ฌํด์ฃผ์ค ํ์๊ฐ ์์ต๋๋ค. ( ๊ด๋ฆฌ์ํ์ด์ง์์ ํด๋น ๊ฒ์ํ์ ํ ์ด๋ธ์ ์ค์ ํฉ๋๋ค. ), (*16)
์์๋ก ๋ง๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ์ถ์ผ์๋ค๋ฉด ์ ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ์ธ์., (*17)
์ด๊ธฐ ๊ฒ์ํ ์คํจ์ ๊ธฐ๋ณธ ์คํจ์ด๋ฉฐ ๋ณ๋ก ์ด์์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๊ฐ์ ์คํ์ผ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์ง์ ํ์ ์ผ ํฉ๋๋ค. ๊ฒ์ํ์ ์คํจ์, (*18)
์ 3๊ฐ์ง ํ์ผ์ด ํ์ํ๋ฉฐ. ์คํจ์ ๋ง๋์ ํ ์ ๊ทผ๊ฐ๋ฅํ view ์์น๋ฅผ ์ง์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์๋ฅผ๋ค์ด 'board::'๋ ํจํค์ง ๋ด์ 'views' ๋๋ ํ ๋ฆฌ์ ๋งคํ๋์ด์์ผ๋ฉฐ, views์์ basic์ด๋ผ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก 'board::basic'์ 'vendor/visualplus/board/src/views/basic'์ ์ฐธ์กฐํ๋ฉฐ ์ด ๋๋ ํ ๋ฆฌ ์์ ์์ ๋์ดํ 3๊ฐ์ง ํ์ผ์ด ๋ชจ๋ ์์ด์ผ ํฉ๋๋ค., (*19)
์คํจ์ ๊ด๋ฆฌ์ ํ๋ฉด์์ ๊ฒ์ํ ์์ฑ์ ์ค์ ํ ์ ์์ต๋๋ค., (*20)
protected $itemsPerPage = 10;
๊ธฐ๋ณธ 10๊ฐ์ ๊ฒ์๊ธ์ ํ ํ์ด์ง์ ๋ฟ๋ ค์ค๋๋ค. ์ ๊ฐ์ ์๋ง๊ฒ ๋ณ๊ฒฝํ์ฌ ์ฌ์ฉํ์ธ์., (*21)
protected $uploadPath = '../storage/app/board/';
๊ฒ์๊ธ ์์ฑ์ ์ฒจ๋ถํ ํ์ผ์ ๊ธฐ๋ณธ์ผ๋ก storage/app/board ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค. ํ์ผ๋ช ์ ํ์ฌ timestamp + ์ฌ๋ฆฐ ํ์ผ ํ์ฅ์ ์ ๋๋ค., (*22)
์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ์ฒจ๋ถํ์ผ์ด ์ ์ฅ๋ ์์น๋ฅผ ์์ ํ์ธ์., (*23)
Route::resource('board/admin', '๊ฒ์ํ ๊ด๋ฆฌ์ ์ปจํธ๋กค๋ฌ');
Route::resource('board/{bo_id}/board', '๊ฒ์ํ ์ปจํธ๋กค๋ฌ');
์์ ๊ฐ์ด ์ค์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค., (*24)
์ ๊ทผ์, (*25)
board/[๊ฒ์ํ ์ค์ ์ ๋ฑ๋ก๋ ๊ฒ์ํ id๊ฐ]
์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค., (*26)
์ค๋งํธ ์๋ํฐ๋ฅผ ์ฌ์ฉํ ๋ทฐ์์ ์๋ ๋ด์ฉ์ ์ ๋ ฅํด์ฃผ์ธ์. textarea๊ฐ ๋ค์ด๊ฐ์ผ ํ ๊ณณ์์ includeํด์ฃผ์๋ฉด ๋ฉ๋๋ค., (*27)
basic/create.blade.php ์ฐธ์กฐ., (*28)
@include ('board::plugins.smart_editor.editor', ['name' => [์ปจํธ๋กค ๋ช
], 'value' => [์ด๊ธฐ๊ฐ]])