diff --git a/app/Config/Constants.php b/app/Config/Constants.php
index 99bf708..7d97d9b 100644
--- a/app/Config/Constants.php
+++ b/app/Config/Constants.php
@@ -161,7 +161,7 @@ define('CATEGORY_ROLE_FIELDS', [
'WRITE' => 'iswrite',
'REPLY' => 'isreply',
'UPLOAD' => 'isupload',
- 'DOWNLOAD' => 'isdownload',
+ 'DONWLOAD' => 'isdownload',
]);
//인증 관련
@@ -183,7 +183,7 @@ define('AUTH_ADAPTERS', [
define('PATHS', [
'EXCEL' => WRITEPATH . "excel/",
'UPLOAD' => WRITEPATH . "uploads/",
- 'UPLOAD_PHOTO' => FCPATH . 'upload_images/',
+ 'UPLOAD_IMAGE' => FCPATH . 'upload_images/',
'DOWNLOAD' => WRITEPATH . "download/",
'API' => WRITEPATH . "api/",
]);
diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 0409b07..bf4af24 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -42,8 +42,8 @@ $routes->get('/logout', 'AuthController::logout');
$routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes) {
});
$routes->group('ecommerce', ['namespace' => 'App\Controllers'], function ($routes) {
- $routes->post('/addCart', 'EcommerceController::addCart');
- $routes->get('/cancelCart', 'EcommerceController::cancelCart');
+ $routes->post('addCart', 'EcommerceController::addCart');
+ $routes->get('cancelCart', 'EcommerceController::cancelCart');
});
// authGuard는 App\Config\Filters.php의 $aliases에 선언한 이름이어야 함
$routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:master,director,cloudflare,manager'], static function ($routes) {
diff --git a/app/Config/Routes_Shoppinmall.php b/app/Config/Routes_Shoppinmall.php
index b4e086d..bf4af24 100644
--- a/app/Config/Routes_Shoppinmall.php
+++ b/app/Config/Routes_Shoppinmall.php
@@ -42,8 +42,8 @@ $routes->get('/logout', 'AuthController::logout');
$routes->group('cli', ['namespace' => 'App\Controllers\CLI'], function ($routes) {
});
$routes->group('ecommerce', ['namespace' => 'App\Controllers'], function ($routes) {
- $routes->post('/addCart', 'EcommerceController::addCart');
- $routes->get('/cancelCart', 'EcommerceController::cancelCart');
+ $routes->post('addCart', 'EcommerceController::addCart');
+ $routes->get('cancelCart', 'EcommerceController::cancelCart');
});
// authGuard는 App\Config\Filters.php의 $aliases에 선언한 이름이어야 함
$routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'authFilter:master,director,cloudflare,manager'], static function ($routes) {
@@ -141,7 +141,6 @@ $routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($rou
$routes->get('', 'ProductController::index');
$routes->get('excel', 'ProductController::excel/$1');
$routes->get('view/(:uuid)', 'ProductController::view/$1');
- $routes->get('download/(:any)/(:uuid)', 'ProductController::download/$1/$2');
});
$routes->group('order', static function ($routes) {
$routes->get('', 'OrderController::index');
diff --git a/app/Controllers/Admin/BoardController.php b/app/Controllers/Admin/BoardController.php
index 80eb3c3..86d5791 100644
--- a/app/Controllers/Admin/BoardController.php
+++ b/app/Controllers/Admin/BoardController.php
@@ -6,11 +6,11 @@ use App\Models\BoardModel;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
-use App\Controllers\Trait\UploadTrait;
+use App\Controllers\Trait\UpDownloadTrait;
class BoardController extends AdminController
{
- use UploadTrait;
+ use UpDownloadTrait;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
$this->_model = new BoardModel();
diff --git a/app/Controllers/Admin/ProductController.php b/app/Controllers/Admin/ProductController.php
index aca946a..3515353 100644
--- a/app/Controllers/Admin/ProductController.php
+++ b/app/Controllers/Admin/ProductController.php
@@ -6,11 +6,11 @@ use App\Models\ProductModel;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
-use App\Controllers\Trait\UploadTrait;
+use App\Controllers\Trait\UpDownloadTrait;
class ProductController extends AdminController
{
- use UploadTrait;
+ use UpDownloadTrait;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
$this->_model = new ProductModel();
@@ -20,11 +20,11 @@ class ProductController extends AdminController
public function getFields(string $action = ""): array
{
- $fields = ["category_uid", 'name', "photo", "cost", "price", "sale", "stock", "view_cnt", "status", "content",];
+ $fields = ["category_uid", 'name', "photo", "cost", "sale", "stock", "view_cnt", "status", "content",];
switch ($action) {
case "index":
case "excel":
- return ["category_uid", "user_uid", 'name', "photo", "cost", "price", "sale", "stock", "view_cnt", "status", "created_at"];
+ return ["category_uid", "user_uid", 'name', "photo", "cost", "sale", "price", "stock", "view_cnt", "status", "created_at"];
break;
case "view":
return [...$fields, "created_at"];
@@ -55,4 +55,19 @@ class ProductController extends AdminController
}
return $this->_viewDatas['fieldDatas'];
}
+
+ protected function insert_process()
+ {
+ if ($this->_viewDatas['fieldDatas']['cost'] < $this->_viewDatas['fieldDatas']['sale']) {
+ throw new \Exception(sprintf(
+ "%s가[%s] %s[%s]보다 작습니다.",
+ lang($this->_model->getClassName() . '.label.cost'),
+ number_format($this->_viewDatas['fieldDatas']['cost']),
+ lang($this->_model->getClassName() . '.label.sale'),
+ number_format($this->_viewDatas['fieldDatas']['sale']),
+ ));
+ }
+ $this->_viewDatas['fieldDatas']['price'] = $this->_viewDatas['fieldDatas']['cost'] - $this->_viewDatas['fieldDatas']['sale'];
+ return parent::insert_process();
+ }
}
diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php
index d8f95f0..436dbc2 100644
--- a/app/Controllers/BaseController.php
+++ b/app/Controllers/BaseController.php
@@ -582,11 +582,11 @@ abstract class BaseController extends Controller
throw new \Exception("첨부파일이 확인되지 않습니다.");
}
$entity = $this->download_process($entity);
- list($origin_filename, $filename) = explode(DEFAULTS['DELIMITER_FILE'], $entity->$field);
- if (is_file(WRITEPATH . PATHS['UPLOAD'] . "/" . $origin_filename)) {
- throw new \Exception("파일이 확인되지 않습니다.");
+ list($filename, $uploaded_filename) = explode(DEFAULTS['DELIMITER_FILE'], $entity->$field);
+ if (!is_file(PATHS['UPLOAD'] . "/" . $uploaded_filename)) {
+ throw new \Exception("파일이 확인되지 않습니다.\n" . PATHS['UPLOAD'] . "/" . $uploaded_filename);
}
- return $this->response->download(WRITEPATH . PATHS['UPLOAD'] . "/" . $filename, null)->setFileName(date("YmdHms") . '_' . $origin_filename);
+ return $this->response->download(PATHS['UPLOAD'] . "/" . $uploaded_filename, null)->setFileName(date("Ymd") . '_' . $filename);
} catch (\Exception $e) {
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage());
}
diff --git a/app/Controllers/EcommerceController.php b/app/Controllers/EcommerceController.php
index 7c83020..99c1755 100644
--- a/app/Controllers/EcommerceController.php
+++ b/app/Controllers/EcommerceController.php
@@ -89,7 +89,7 @@ class EcommerceController extends Controller
throw new \Exception("구매수량이 너무 많습니다.\n구매수량:{$this->_viewDatas['fieldDatas']['quantity']}개, 남은 재고수량:{$product->getStock()}개");
}
//구매 금액 비교
- $price = ($product->getPrice() - $product->getSale()) * $this->_viewDatas['fieldDatas']['quantity'];
+ $price = $product->getPrice() * $this->_viewDatas['fieldDatas']['quantity'];
if ($price != $this->_viewDatas['fieldDatas']['price']) {
throw new \Exception("실 상품금액{$price} 와 구매금액{$this->_viewDatas['fieldDatas']['price']}이 서로 다릅니다.");
}
diff --git a/app/Controllers/Front/BoardController.php b/app/Controllers/Front/BoardController.php
index 8b0b7f2..a3b02e5 100644
--- a/app/Controllers/Front/BoardController.php
+++ b/app/Controllers/Front/BoardController.php
@@ -131,7 +131,7 @@ class BoardController extends FrontController
public function download_process($entity)
{
//권한체크
- $this->isRole('download');
- return $entity;
+ $this->isRole('download', $entity);
+ return parent::download_process($entity);
}
}
diff --git a/app/Controllers/Front/ProductController.php b/app/Controllers/Front/ProductController.php
index 1d2f451..9c78bac 100644
--- a/app/Controllers/Front/ProductController.php
+++ b/app/Controllers/Front/ProductController.php
@@ -66,7 +66,7 @@ class ProductController extends FrontController
public function download_process($entity)
{
//권한체크
- $this->isRole('download');
- return $entity;
+ $this->isRole('download', $entity);
+ return parent::download_process($entity);
}
}
diff --git a/app/Controllers/Trait/UploadTrait.php b/app/Controllers/Trait/UpDownloadTrait.php
similarity index 69%
rename from app/Controllers/Trait/UploadTrait.php
rename to app/Controllers/Trait/UpDownloadTrait.php
index f561efb..982265d 100644
--- a/app/Controllers/Trait/UploadTrait.php
+++ b/app/Controllers/Trait/UpDownloadTrait.php
@@ -4,21 +4,21 @@ namespace App\Controllers\Trait;
use CodeIgniter\HTTP\Files\UploadedFile;
-trait UploadTrait
+trait UpDownloadTrait
{
//Upload FIle관련
- private function upload_file_process(UploadedFile $upfile): string
+ private function upDownload_file_process(UploadedFile $upfile): string
{
- $name = null;
$filename = null;
+ $uploaded_filename = null;
if ($upfile->isValid() && !$upfile->hasMoved()) {
- $name = $upfile->getName();
- $filename = $upfile->getRandomName();
- $upfile->move(PATHS['UPLOAD'], $filename);
- //move시 중복된파일명이 있다면 파일명이 바뀌므로 여기서 한번더 파일명 확인 필요
$filename = $upfile->getName();
+ $uploaded_filename = $upfile->getRandomName();
+ $upfile->move(PATHS['UPLOAD'], $uploaded_filename);
+ //move시 중복된파일명이 있다면 파일명이 바뀌므로 여기서 한번더 파일명 확인 필요
+ $uploaded_filename = $upfile->getName();
}
- return $name . DEFAULTS['DELIMITER_FILE'] . $filename;
+ return $filename . DEFAULTS['DELIMITER_FILE'] . $uploaded_filename;
}
public function upload_file_procedure(string $field): string
{
@@ -39,29 +39,29 @@ trait UploadTrait
return $files;
}
- private function image_resize_process(UploadedFile $upfile, $filename, $x = 25, $y = 25)
+ private function image_resize_process(UploadedFile $upfile, $uploaded_filename, $x = 25, $y = 25)
{
$image = \Config\Services::image();
$image->withFile($upfile)
->resize($x, $y, true, 'height')
- ->save(PATHS['UPLOAD_PHOTO'] . $filename);
+ ->save(PATHS['UPLOAD_IMAGE'] . $uploaded_filename);
}
private function upload_image_process(UploadedFile $upfile): string
{
//참고:https://www.positronx.io/codeigniter-resize-image-with-image-manipulation-tutorial/
- $name = null;
$filename = null;
+ $uploaded_filename = null;
if ($upfile->isValid() && !$upfile->hasMoved()) {
- $name = $upfile->getName();
- $filename = $upfile->getRandomName();
- $this->image_resize_process($upfile, "small_" . $filename);
- $this->image_resize_process($upfile, "middle_" . $filename, 50, 50);
- $this->image_resize_process($upfile, "large_" . $filename, 100, 100);
- $upfile->move(PATHS['UPLOAD_PHOTO'], $filename);
- //move시 중복된파일명이 있다면 파일명이 바뀌므로 여기서 한번더 파일명 확인 필요
$filename = $upfile->getName();
+ $uploaded_filename = $upfile->getRandomName();
+ $this->image_resize_process($upfile, "small_" . $uploaded_filename);
+ $this->image_resize_process($upfile, "middle_" . $uploaded_filename, 50, 50);
+ $this->image_resize_process($upfile, "large_" . $uploaded_filename, 100, 100);
+ $upfile->move(PATHS['UPLOAD_IMAGE'], $uploaded_filename);
+ //move시 중복된파일명이 있다면 파일명이 바뀌므로 여기서 한번더 파일명 확인 필요
+ $uploaded_filename = $upfile->getName();
}
- return $name . DEFAULTS['DELIMITER_FILE'] . $filename;
+ return $filename . DEFAULTS['DELIMITER_FILE'] . $uploaded_filename;
}
public function upload_image_procedure(string $field): string
@@ -72,7 +72,7 @@ trait UploadTrait
{
//Multiple파일의경우 html에서는 필드명[]를 넣어야하며
//rule에서 "uploaded[필드명.0]|is_image[필드명]~~" 이런식으로 넣어야함
- $names = array();
+ $filenames = array();
if ($upfiles = $this->request->getFiles()) {
foreach ($upfiles[$field] as $upfile) {
if ($upfile->isValid() && !$upfile->hasMoved()) {
@@ -80,6 +80,6 @@ trait UploadTrait
}
}
}
- return $names;
+ return $filenames;
}
}
diff --git a/app/Entities/BoardEntity.php b/app/Entities/BoardEntity.php
index 4dd4f26..a459f73 100644
--- a/app/Entities/BoardEntity.php
+++ b/app/Entities/BoardEntity.php
@@ -39,4 +39,12 @@ class BoardEntity extends BaseHierarchyEntity
{
return $this->attributes['view_cnt'];
}
+ public function getBoardFile()
+ {
+ return $this->attributes['board_file'];
+ }
+ public function getBoardFileName()
+ {
+ return explode(DEFAULTS['DELIMITER_FILE'], $this->getBoardFile())[1];
+ }
}
diff --git a/app/Entities/CategoryEntity.php b/app/Entities/CategoryEntity.php
index 3941df8..8f92b43 100644
--- a/app/Entities/CategoryEntity.php
+++ b/app/Entities/CategoryEntity.php
@@ -2,6 +2,8 @@
namespace App\Entities;
+use App\Entities\Trait\HierarchyTrait;
+
class CategoryEntity extends BaseHierarchyEntity
{
protected $datamap = [];
diff --git a/app/Entities/ProductEntity.php b/app/Entities/ProductEntity.php
index b667f59..9fef019 100644
--- a/app/Entities/ProductEntity.php
+++ b/app/Entities/ProductEntity.php
@@ -49,9 +49,8 @@ class ProductEntity extends BaseEntity
}
public function getPhotoFileName($size = 'small')
{
- return $size . '_' . explode(DEFAULTS['DELIMITER_FILE'], $this->attributes['photo'])[1];
+ return $size . '_' . explode(DEFAULTS['DELIMITER_FILE'], $this->getPhoto())[1];
}
-
public function getContent()
{
return $this->attributes['content'];
diff --git a/app/Helpers/Board_helper.php b/app/Helpers/Board_helper.php
index 5e46a53..b0abf09 100644
--- a/app/Helpers/Board_helper.php
+++ b/app/Helpers/Board_helper.php
@@ -64,13 +64,14 @@ function getFieldView_BoardHelper($field, $entity, array $viewDatas)
$value = $entity->$field ?: DEFAULTS['EMPTY'];
switch ($field) {
case 'category_uid':
- $categorys = array();
- foreach (array_values($viewDatas['fieldFormOptions'][$field]) as $category_2depth) {
- foreach ($category_2depth as $key => $label) {
- $categorys[$key] = $label;
+ foreach (array_values($viewDatas['fieldFormOptions'][$field]) as $category_2depths) {
+ foreach ($category_2depths as $key => $label) {
+ if ($key == $value) {
+ return $label;
+ }
}
}
- return $categorys[$value];
+ return $value;
break;
case 'title':
case 'name':
diff --git a/app/Helpers/Product_helper.php b/app/Helpers/Product_helper.php
index b6923c5..f2e4752 100644
--- a/app/Helpers/Product_helper.php
+++ b/app/Helpers/Product_helper.php
@@ -69,6 +69,16 @@ function getFieldView_ProductHelper($field, $entity, array $viewDatas)
{
$value = $entity->$field ?: DEFAULTS['EMPTY'];
switch ($field) {
+ case 'category_uid':
+ foreach (array_values($viewDatas['fieldFormOptions'][$field]) as $category_2depths) {
+ foreach ($category_2depths as $key => $label) {
+ if ($key == $value) {
+ return $label;
+ }
+ }
+ }
+ return $value;
+ break;
case 'title':
case 'name':
return anchor(
diff --git a/app/Models/BoardModel.php b/app/Models/BoardModel.php
index cbf1cc6..a3164fb 100644
--- a/app/Models/BoardModel.php
+++ b/app/Models/BoardModel.php
@@ -39,7 +39,7 @@ class BoardModel extends BaseHierarchyModel
$rules[$field] = "required|string";
break;
case "board_file": //uploaded[{$field}] == requried와 같은의미
- $rules[$field] = !$action ? "if_exist|string" : "is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},100]|max_dims[{$field},1024,768]";
+ $rules[$field] = "if_exist|string";
break;
case "view_cnt":
$rules[$field] = "if_exist|numeric";
diff --git a/app/Models/ProductModel.php b/app/Models/ProductModel.php
index b5b51ff..2a6848c 100644
--- a/app/Models/ProductModel.php
+++ b/app/Models/ProductModel.php
@@ -41,15 +41,13 @@ class ProductModel extends BaseModel
$rules[$field] = "required|trim|string";
break;
case 'photo':
- $rules[$field] = !$action ? "if_exist|string" : "is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},100]|max_dims[{$field},1024,768]";
+ $rules[$field] = !$action ? "if_exist|string" : "uploaded[$field]|is_image[{$field}]|mime_in[{$field},image/jpg,image/jpeg,image/gif,image/png,image/webp]|max_size[{$field},100]|max_dims[{$field},1024,768]";
break;
case 'cost':
case 'price':
- $rules[$field] = "required|numeric";
- break;
case 'sale':
case 'stock':
- $rules[$field] = "if_exist|numeric";
+ $rules[$field] = "required|numeric";
break;
case "content":
$rules[$field] = "required|string";
diff --git a/app/Views/admin/board/insert.php b/app/Views/admin/board/insert.php
index 3f6857e..aa4f729 100644
--- a/app/Views/admin/board/insert.php
+++ b/app/Views/admin/board/insert.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/board/reply.php b/app/Views/admin/board/reply.php
index 9f7367c..a1fd37c 100644
--- a/app/Views/admin/board/reply.php
+++ b/app/Views/admin/board/reply.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/board/update.php b/app/Views/admin/board/update.php
index 9f7367c..a1fd37c 100644
--- a/app/Views/admin/board/update.php
+++ b/app/Views/admin/board/update.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/category/insert.php b/app/Views/admin/category/insert.php
index d33f387..7ecc181 100644
--- a/app/Views/admin/category/insert.php
+++ b/app/Views/admin/category/insert.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/category/reply.php b/app/Views/admin/category/reply.php
index 0a4f0fd..fa34d5a 100644
--- a/app/Views/admin/category/reply.php
+++ b/app/Views/admin/category/reply.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/category/update.php b/app/Views/admin/category/update.php
index 0a4f0fd..fa34d5a 100644
--- a/app/Views/admin/category/update.php
+++ b/app/Views/admin/category/update.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/product/insert.php b/app/Views/admin/product/insert.php
index 92dd634..9d78fdc 100644
--- a/app/Views/admin/product/insert.php
+++ b/app/Views/admin/product/insert.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/product/update.php b/app/Views/admin/product/update.php
index dc11a74..aae2c9a 100644
--- a/app/Views/admin/product/update.php
+++ b/app/Views/admin/product/update.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/user/insert.php b/app/Views/admin/user/insert.php
index 3074c50..9e7d34f 100644
--- a/app/Views/admin/user/insert.php
+++ b/app/Views/admin/user/insert.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/admin/user/update.php b/app/Views/admin/user/update.php
index 62b90d4..8ae37e6 100644
--- a/app/Views/admin/user/update.php
+++ b/app/Views/admin/user/update.php
@@ -16,6 +16,6 @@
= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?> |
+ = form_close(); ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/front/board/insert.php b/app/Views/front/board/insert.php
index c0ab506..682524b 100644
--- a/app/Views/front/board/insert.php
+++ b/app/Views/front/board/insert.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>
= html_entity_decode($viewDatas['category']->getHead()) ?>
diff --git a/app/Views/front/board/reply.php b/app/Views/front/board/reply.php
index 9886faf..6edfa6d 100644
--- a/app/Views/front/board/reply.php
+++ b/app/Views/front/board/reply.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>
= html_entity_decode($viewDatas['category']->getHead()) ?>
diff --git a/app/Views/front/board/update.php b/app/Views/front/board/update.php
index 9886faf..6edfa6d 100644
--- a/app/Views/front/board/update.php
+++ b/app/Views/front/board/update.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>
= html_entity_decode($viewDatas['category']->getHead()) ?>
diff --git a/app/Views/front/board/view.php b/app/Views/front/board/view.php
index 7676c61..2359541 100644
--- a/app/Views/front/board/view.php
+++ b/app/Views/front/board/view.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>
= html_entity_decode($viewDatas['category']->getHead()) ?>
diff --git a/app/Views/front/order/view.php b/app/Views/front/order/view.php
index b3ae6fb..2063aec 100644
--- a/app/Views/front/order/view.php
+++ b/app/Views/front/order/view.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>
-= form_close(); ?>
= $this->endSection() ?>
\ No newline at end of file
diff --git a/app/Views/front/user/view.php b/app/Views/front/user/view.php
index 32e5ef6..0ce7ff0 100644
--- a/app/Views/front/user/view.php
+++ b/app/Views/front/user/view.php
@@ -1,4 +1,4 @@
-= $this->extend('layouts/admin') ?>
+= $this->extend('layouts/front') ?>
= $this->section('content') ?>