first commit 2
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
/**
|
||||
* newproduct :: config.php
|
||||
* '신제품' 게시판 전용 설정 파일
|
||||
*/
|
||||
|
||||
$board_config = array(
|
||||
'list' => array(
|
||||
'default_view_mode' => 'card',
|
||||
),
|
||||
'write' => array(
|
||||
'use_summary' => true,
|
||||
'summary_label' => '제품 요약',
|
||||
'summary_placeholder' => '목록에 표시될 신제품의 핵심 요약 내용을 입력하세요.',
|
||||
|
||||
'file_labels' => array(
|
||||
1 => '썸네일 이미지 (필수)',
|
||||
2 => '본문 이미지 #1',
|
||||
3 => '본문 이미지 #2',
|
||||
4 => '본문 이미지 #3',
|
||||
5 => '본문 이미지 #4',
|
||||
),
|
||||
'file_texts' => array(
|
||||
1 => '목록 페이지의 카드형 뷰에 표시될 대표 이미지입니다.',
|
||||
),
|
||||
),
|
||||
'view' => array(
|
||||
'core_type' => 'coverage', // 💡 [핵심] 'coverage' 타입의 뷰 코어를 사용
|
||||
),
|
||||
);
|
||||
|
||||
$board['bo_upload_count'] = 5; // 썸네일 1 + 본문 이미지 4
|
||||
$board['bo_use_dhtml_editor'] = 1;
|
||||
// newproduct 스킨 광고 영역 설정
|
||||
$newproduct_skin_config = [
|
||||
'left_ad' => false, // 좌측 광고 사용 안함
|
||||
'right_ad' => false, // 우측 광고 사용 안함
|
||||
];
|
||||
?>
|
||||
@@ -0,0 +1,183 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
/**
|
||||
* newproduct :: style.css
|
||||
* 💡 [수정] 고유 ID 선택자를 #newproduct-board로 변경합니다.
|
||||
*/
|
||||
|
||||
/* ==========================================================================
|
||||
Board Common Styles
|
||||
========================================================================== */
|
||||
#newproduct-board .board-container,
|
||||
#newproduct-board .board-write-container,
|
||||
#newproduct-board .board-view-container {
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 6px 30px rgba(0, 0, 0, 0.08);
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* 이하 모든 #coverage-board 선택자를 #newproduct-board로 변경 */
|
||||
|
||||
#newproduct-board .board-header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 20px;
|
||||
padding-bottom: 25px;
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
#newproduct-board .board-total { font-size: 1.2rem; color: #555; font-weight: 500; text-align: left; }
|
||||
#newproduct-board .board-total .text-primary { color: #0056b3; font-weight: 700; }
|
||||
#newproduct-board .board-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
|
||||
#newproduct-board .view-mode-switcher { display: flex; border: 1px solid #ddd; border-radius: 8px; overflow: hidden; }
|
||||
#newproduct-board .btn-view-mode { background: #fff; border: none; padding: 10px 15px; cursor: pointer; color: #888; font-size: 1.2rem; line-height: 1; transition: all 0.2s ease; }
|
||||
#newproduct-board .btn-view-mode.active { background: #0056b3; color: #fff; }
|
||||
#newproduct-board .btn-view-mode:hover:not(.active) { background: #f0f0f0; color: #333; }
|
||||
#newproduct-board .board-search { flex-grow: 1; }
|
||||
#newproduct-board .board-search .input-group { display: flex; align-items: center; width: 100%; max-width: 400px; margin-left: auto; }
|
||||
#newproduct-board .board-search select,
|
||||
#newproduct-board .board-search input[type="text"] { border: 1px solid #ddd; padding: 0 15px; height: 42px; font-size: 1rem; background: #fff; border-radius: 8px; transition: border-color 0.2s ease; }
|
||||
#newproduct-board .board-search select { border-radius: 8px 0 0 8px; border-right: none; }
|
||||
#newproduct-board .board-search input[type="text"]:focus { border-color: #0056b3; outline: none; box-shadow: 0 0 0 2px rgba(0, 86, 179, 0.2); }
|
||||
#newproduct-board .board-search .btn { border-radius: 0 8px 8px 0; height: 42px; padding: 0 20px; background: #0056b3; color: #fff; border: none; transition: background-color 0.2s ease; }
|
||||
#newproduct-board .board-search .btn:hover { background-color: #003d82; }
|
||||
|
||||
#newproduct-board .list-separator { text-align: center; padding: 40px 20px; margin: 40px 0; border-top: 1px solid #e0e0e0; border-bottom: 1px solid #e0e0e0; background-color: #f9f9f9; }
|
||||
#newproduct-board .list-separator p { font-size: 1.1rem; color: #666; font-weight: 500; }
|
||||
|
||||
/* 💡 [최종 수정] 뷰 전환이 올바르게 동작하도록 선택자를 .board-list-wrapper 로 수정합니다. */
|
||||
#newproduct-board .board-list-wrapper[data-view-mode="card"] .card-list-view { display: block; }
|
||||
#newproduct-board .board-list-wrapper[data-view-mode="list"] .list-view { display: block; }
|
||||
#newproduct-board .board-list-wrapper .card-list-view,
|
||||
#newproduct-board .board-list-wrapper .list-view { display: none; }
|
||||
|
||||
#newproduct-board .empty-list { padding: 100px 20px; text-align: center; color: #888; font-size: 1.6rem; font-weight: 600; }
|
||||
|
||||
/* 💡 [수정] 카드형 리스트 가로 4개 고정 */
|
||||
#newproduct-board .card-list {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr); /* 4개 고정 */
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
#newproduct-board .card-item { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 25px rgba(0,0,0,0.08); transition: transform 0.3s ease, box-shadow 0.3s ease; border: none; }
|
||||
#newproduct-board .card-item:hover { transform: translateY(-7px); box-shadow: 0 12px 35px rgba(0,0,0,0.15); }
|
||||
#newproduct-board .card-link { display: block; text-decoration: none; color: inherit; }
|
||||
#newproduct-board .card-thumbnail { position: relative; width: 100%; padding-top: 70%; background-color: #f0f0f0; }
|
||||
#newproduct-board .card-thumbnail img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
|
||||
#newproduct-board .badge-pdf, #newproduct-board .badge-link, #newproduct-board .badge-featured { position: absolute; top: 15px; right: 15px; padding: 8px 15px; border-radius: 20px; font-size: 0.85rem; font-weight: 700; color: #fff; text-transform: uppercase; letter-spacing: 0.5px; }
|
||||
#newproduct-board .badge-pdf { background-color: #e74c3c; }
|
||||
#newproduct-board .badge-link { background-color: #3498db; }
|
||||
#newproduct-board .badge-featured { background-color: #9b59b6; }
|
||||
#newproduct-board .card-content { padding: 25px; }
|
||||
#newproduct-board .card-category { display: inline-block; font-size: 0.9rem; font-weight: 700; color: #0056b3; margin-bottom: 10px; }
|
||||
#newproduct-board .card-title { font-size: 1.5rem; font-weight: 800; margin: 0 0 15px 0; line-height: 1.4; min-height: 2.8em; color: #222; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
|
||||
#newproduct-board .card-summary { font-size: 1rem; color: #666; line-height: 1.7; height: 5.1em; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
|
||||
#newproduct-board .card-meta { margin-top: 20px; padding-top: 15px; border-top: 1px solid #f0f0f0; font-size: 0.9rem; color: #888; }
|
||||
#newproduct-board .card-item.is-featured { border: 2px solid #9b59b6; box-shadow: 0 8px 25px rgba(155, 89, 182, 0.2); }
|
||||
#newproduct-board .list-group { border-top: 2px solid #333; }
|
||||
#newproduct-board .list-group-header, #newproduct-board .list-group-item { display: flex; align-items: center; padding: 18px 10px; border-bottom: 1px solid #f0f0f0; }
|
||||
#newproduct-board .list-group-header { font-weight: 700; background-color: #f9f9f9; font-size: 1.05rem; }
|
||||
#newproduct-board .list-group-item:hover { background-color: #f5f5f5; }
|
||||
#newproduct-board .list-cell { padding: 0 10px; text-align: center; color: #555; }
|
||||
#newproduct-board .list-cell.num { flex: 0 0 80px; }
|
||||
#newproduct-board .list-cell.title { flex: 1; text-align: left; }
|
||||
#newproduct-board .list-cell.title a { color: #333; text-decoration: none; font-weight: 500; }
|
||||
#newproduct-board .list-group-item.is-featured { background-color: #fdf8ff; }
|
||||
#newproduct-board .badge-featured-list { color: #9b59b6; margin-right: 8px; }
|
||||
|
||||
#newproduct-board .view-header { padding-bottom: 20px; border-bottom: 1px solid #e0e0e0; margin-bottom: 30px; }
|
||||
#newproduct-board .view-header h1 { font-size: 2.5rem; font-weight: 800; margin-bottom: 15px; line-height: 1.3; }
|
||||
#newproduct-board .view-meta { display: flex; flex-wrap: wrap; gap: 10px 20px; color: #888; font-size: 0.95rem; }
|
||||
#newproduct-board .view-meta .meta-item i { margin-right: 5px; color: #aaa; }
|
||||
#newproduct-board .view-content { padding: 30px 0; }
|
||||
#newproduct-board .view-body-images { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px; margin-top: 40px; padding-top: 30px; border-top: 1px solid #eee; justify-items: center; }
|
||||
#newproduct-board .view-body-images .body-image-item { max-width: 100%; text-align: center; background-color: #fcfcfc; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,0.08); transition: transform 0.2s ease; }
|
||||
#newproduct-board .view-body-images .body-image-item:hover { transform: translateY(-5px); }
|
||||
#newproduct-board .view-body-images .body-image-item img { max-width: 100%; height: auto; display: block; margin: 0 auto; object-fit: contain; border-bottom: 1px solid #eee; }
|
||||
#newproduct-board .view-body-images .body-image-item figcaption { padding: 15px; font-size: 0.9rem; color: #666; line-height: 1.5; }
|
||||
#newproduct-board .view-detail-content { margin-top: 40px; font-size: 1.1rem; line-height: 1.8; color: #333; }
|
||||
#newproduct-board .view-detail-content p { margin-bottom: 1.5em; }
|
||||
#newproduct-board .view-detail-content h1, #newproduct-board .view-detail-content h2, #newproduct-board .view-detail-content h3, #newproduct-board .view-detail-content h4, #newproduct-board .view-detail-content h5, #newproduct-board .view-detail-content h6 { margin-top: 2em; margin-bottom: 0.8em; font-weight: 700; line-height: 1.3; color: #222; }
|
||||
#newproduct-board .view-detail-content h2 { font-size: 2rem; }
|
||||
#newproduct-board .view-detail-content h3 { font-size: 1.7rem; }
|
||||
#newproduct-board .view-detail-content h4 { font-size: 1.4rem; }
|
||||
#newproduct-board .view-detail-content ul, #newproduct-board .view-detail-content ol { margin-left: 20px; margin-bottom: 1.5em; }
|
||||
#newproduct-board .view-detail-content ul li { list-style: disc; margin-bottom: 0.5em; }
|
||||
#newproduct-board .view-detail-content ol li { list-style: decimal; margin-bottom: 0.5em; }
|
||||
#newproduct-board .view-detail-content blockquote { border-left: 4px solid #0056b3; padding: 10px 20px; margin: 1.5em 0; background-color: #f8f8f8; color: #555; font-style: italic; }
|
||||
#newproduct-board .download-box { margin-top: 30px; padding-top: 30px; border-top: 1px solid #eee; }
|
||||
#newproduct-board .download-box h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: 15px; color: #333; }
|
||||
#newproduct-board .download-list { list-style: none; padding: 0; margin: 0; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; }
|
||||
#newproduct-board .download-list li { border-bottom: 1px solid #e0e0e0; }
|
||||
#newproduct-board .download-list li:last-child { border-bottom: none; }
|
||||
#newproduct-board .download-list a { display: flex; align-items: center; padding: 15px 20px; text-decoration: none; color: #555; transition: background-color 0.2s ease; }
|
||||
#newproduct-board .download-list a:hover { background-color: #f9f9f9; }
|
||||
#newproduct-board .download-list .file-icon { font-size: 1.5rem; color: #888; margin-right: 15px; width: 25px; text-align: center; }
|
||||
#newproduct-board .download-list .fa-file-pdf-o { color: #e74c3c; }
|
||||
#newproduct-board .download-list .fa-file-image-o { color: #3498db; }
|
||||
#newproduct-board .download-list .fa-file-archive-o { color: #f39c12; }
|
||||
#newproduct-board .download-list .file-name { flex-grow: 1; font-weight: 500; }
|
||||
#newproduct-board .download-list .file-size { font-size: 0.9rem; color: #888; }
|
||||
#newproduct-board .view-footer { margin-top: 40px; padding-top: 30px; border-top: 1px solid #e0e0e0; display: flex; justify-content: space-between; align-items: center; }
|
||||
#newproduct-board .btn-group-left, #newproduct-board .btn-group-right { display: flex; gap: 10px; }
|
||||
|
||||
#newproduct-board .board-footer { margin-top: 40px; display: flex; justify-content: space-between; align-items: center; }
|
||||
#newproduct-board .pagination-wrapper, #newproduct-board .load-more-wrapper { flex-grow: 1; text-align: center; }
|
||||
#newproduct-board .board-footer .btn-group { display: flex; gap: 10px; margin-left: auto; }
|
||||
#newproduct-board .board-footer .btn, #newproduct-board .view-footer .btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; border-radius: 8px; font-size: 1.1rem; text-align: center; font-weight: 700; transition: all 0.2s ease; border: none; }
|
||||
#newproduct-board .board-footer .btn:hover, #newproduct-board .view-footer .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
|
||||
#newproduct-board .board-footer .btn-secondary, #newproduct-board .view-footer .btn-secondary { background-color: #6c757d; color: #fff; }
|
||||
#newproduct-board .board-footer .btn-primary, #newproduct-board .view-footer .btn-primary { background-color: #0056b3; color: #fff; }
|
||||
|
||||
#newproduct-board .write-form-group { margin-bottom: 25px; }
|
||||
#newproduct-board .form-divider { margin: 40px 0; border: 0; border-top: 1px solid #e0e0e0; }
|
||||
#newproduct-board .admin-options-group { background-color: #fcfcfc; padding: 25px; border-radius: 8px; margin-top: 30px; border: 1px solid #e0e0e0; }
|
||||
#newproduct-board .form-section-title { font-size: 1.3rem; font-weight: 700; margin: 0 0 20px 0; color: #333; }
|
||||
#newproduct-board .form-check-label { display: flex; align-items: center; gap: 10px; font-size: 1.1rem; cursor: pointer; }
|
||||
#newproduct-board .form-check-label input[type="checkbox"] { -webkit-appearance: checkbox; -moz-appearance: checkbox; appearance: checkbox; width: 18px; height: 18px; opacity: 1; position: static; }
|
||||
#newproduct-board .write-form-footer { margin-top: 40px; display: flex; justify-content: flex-end; gap: 10px; }
|
||||
#newproduct-board .write-form-footer .btn { text-decoration: none; border-radius: 8px; font-size: 1.1rem; font-weight: 700; border: none; transition: all 0.2s ease; }
|
||||
#newproduct-board .write-form-footer .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
|
||||
#newproduct-board .write-form-footer .btn-secondary { background-color: #6c757d; color: #fff; }
|
||||
#newproduct-board .write-form-footer .btn-primary { background-color: #0056b3; color: #fff; }
|
||||
|
||||
#newproduct-board .three-column-layout { display: flex; gap: 30px; }
|
||||
#newproduct-board .layout-sidebar-left, #newproduct-board .layout-sidebar-right { flex: 0 0 240px; position: sticky; top: 100px; }
|
||||
#newproduct-board .layout-main-content { flex: 1; min-width: 0; }
|
||||
@media (max-width: 1024px) {
|
||||
#newproduct-board .three-column-layout { flex-direction: column; }
|
||||
#newproduct-board .layout-sidebar-left, #newproduct-board .layout-sidebar-right { position: static; flex-basis: 100%; }
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
#newproduct-board .board-container, #newproduct-board .board-write-container, #newproduct-board .board-view-container { padding: 15px; }
|
||||
#newproduct-board .board-controls { flex-direction: column-reverse; align-items: stretch; gap: 15px; }
|
||||
/* 💡 [수정] 모바일에서는 1열로 */
|
||||
#newproduct-board .card-list { grid-template-columns: 1fr; }
|
||||
#newproduct-board .list-cell.category, #newproduct-board .list-cell.name, #newproduct-board .list-cell.hit { display: none; }
|
||||
#newproduct-board .view-footer { flex-direction: column; gap: 15px; }
|
||||
#newproduct-board .btn-group-left, #newproduct-board .btn-group-right { justify-content: center; width: 100%; }
|
||||
#newproduct-board .view-header h1 { font-size: 1.8rem; }
|
||||
#newproduct-board .view-meta { flex-direction: column; gap: 5px; }
|
||||
}
|
||||
|
||||
/* 💡 [추가] 태블릿 등 중간 화면에서는 3열, 2열로 조정 */
|
||||
@media (min-width: 769px) and (max-width: 1200px) {
|
||||
#newproduct-board .card-list { grid-template-columns: repeat(3, 1fr); }
|
||||
}
|
||||
@media (min-width: 576px) and (max-width: 768px) {
|
||||
#newproduct-board .card-list { grid-template-columns: repeat(2, 1fr); }
|
||||
}
|
||||
|
||||
.sub-page-container {
|
||||
padding-top: 0px; !important;
|
||||
padding-bottom: 0px; !important;
|
||||
/*background: #fff;*/
|
||||
/*min-height: 500px;*/
|
||||
}
|
||||
.layout-main-content {
|
||||
padding-top: 0px; !important;
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<dwsync>
|
||||
<file name="btn_close.gif" server="happyjung.com:5001/www/" local="131979082007552031" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_1.gif" server="happyjung.com:5001/www/" local="131979082006962424" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_10.gif" server="happyjung.com:5001/www/" local="131979082006772542" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_11.gif" server="happyjung.com:5001/www/" local="131979082006232877" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_12.gif" server="happyjung.com:5001/www/" local="131979082005803143" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_13.gif" server="happyjung.com:5001/www/" local="131979082005253594" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_14.gif" server="happyjung.com:5001/www/" local="131979082004743798" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_15.gif" server="happyjung.com:5001/www/" local="131979082003824369" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_16.gif" server="happyjung.com:5001/www/" local="131979082003684453" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_17.gif" server="happyjung.com:5001/www/" local="131979082003164776" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_18.gif" server="happyjung.com:5001/www/" local="131979082002515176" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_19.gif" server="happyjung.com:5001/www/" local="131979082002055462" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_2.gif" server="happyjung.com:5001/www/" local="131979082001565747" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_20.gif" server="happyjung.com:5001/www/" local="131979082001026095" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_21.gif" server="happyjung.com:5001/www/" local="131979082000586371" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_22.gif" server="happyjung.com:5001/www/" local="131979082000106668" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_23.gif" server="happyjung.com:5001/www/" local="131979081999616945" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_24.gif" server="happyjung.com:5001/www/" local="131979081998767473" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_25.gif" server="happyjung.com:5001/www/" local="131979081998677552" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_26.gif" server="happyjung.com:5001/www/" local="131979081998177863" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_27.gif" server="happyjung.com:5001/www/" local="131979081997628202" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_28.gif" server="happyjung.com:5001/www/" local="131979081997108523" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_29.gif" server="happyjung.com:5001/www/" local="131979081996478914" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_3.gif" server="happyjung.com:5001/www/" local="131979081996059173" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_30-1.gif" server="happyjung.com:5001/www/" local="131979081995559497" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_30.gif" server="happyjung.com:5001/www/" local="131979081995109763" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_4.gif" server="happyjung.com:5001/www/" local="131979081994650045" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_5.gif" server="happyjung.com:5001/www/" local="131979081994130368" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_6.gif" server="happyjung.com:5001/www/" local="131979081993300882" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_7.gif" server="happyjung.com:5001/www/" local="131979081993250910" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_8.gif" server="happyjung.com:5001/www/" local="131979081992281511" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_9.gif" server="happyjung.com:5001/www/" local="131979081992191568" remote="131980119000000000" Dst="0" />
|
||||
<file name="bull_a.gif" server="happyjung.com:5001/www/" local="131979081991262143" remote="131980119000000000" Dst="0" />
|
||||
<file name="cal.gif" server="happyjung.com:5001/www/" local="131979081991202152" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon.gif" server="happyjung.com:5001/www/" local="131979081990362720" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_file.gif" server="happyjung.com:5001/www/" local="131979081990302736" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_hot.gif" server="happyjung.com:5001/www/" local="131979081989483215" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_img.gif" server="happyjung.com:5001/www/" local="131979081989433276" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_link.gif" server="happyjung.com:5001/www/" local="131979081988553808" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_mobile.gif" server="happyjung.com:5001/www/" local="131979081988503855" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_movie.gif" server="happyjung.com:5001/www/" local="131979081987634370" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_new.gif" server="happyjung.com:5001/www/" local="131979081987584419" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_reply.gif" server="happyjung.com:5001/www/" local="131979081986765031" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_secret.gif" server="happyjung.com:5001/www/" local="131979081986715074" remote="131980119000000000" Dst="0" />
|
||||
<file name="icon_sound.gif" server="happyjung.com:5001/www/" local="131979081985855489" remote="131980119000000000" Dst="0" />
|
||||
<file name="m_next.gif" server="happyjung.com:5001/www/" local="131979081985805519" remote="131980119000000000" Dst="0" />
|
||||
<file name="m_prev.gif" server="happyjung.com:5001/www/" local="131979081985035998" remote="131980119000000000" Dst="0" />
|
||||
<file name="point.gif" server="happyjung.com:5001/www/" local="131979081984896083" remote="131980119000000000" Dst="0" />
|
||||
<file name="y_next.gif" server="happyjung.com:5001/www/" local="131979081984436368" remote="131980119000000000" Dst="0" />
|
||||
<file name="y_prev.gif" server="happyjung.com:5001/www/" local="131979081983207101" remote="131980119000000000" Dst="0" />
|
||||
</dwsync>
|
||||
|
After Width: | Height: | Size: 211 B |
|
After Width: | Height: | Size: 136 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 191 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 857 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 97 B |
|
After Width: | Height: | Size: 107 B |
|
After Width: | Height: | Size: 155 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 381 B |
|
After Width: | Height: | Size: 206 B |
|
After Width: | Height: | Size: 324 B |
|
After Width: | Height: | Size: 323 B |
|
After Width: | Height: | Size: 102 B |
|
After Width: | Height: | Size: 73 B |
|
After Width: | Height: | Size: 80 B |
|
After Width: | Height: | Size: 102 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 76 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 305 B |
|
After Width: | Height: | Size: 100 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 931 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 91 B |
|
After Width: | Height: | Size: 107 B |
|
After Width: | Height: | Size: 97 B |
|
After Width: | Height: | Size: 145 B |
|
After Width: | Height: | Size: 104 B |
|
After Width: | Height: | Size: 62 B |
|
After Width: | Height: | Size: 110 B |
|
After Width: | Height: | Size: 71 B |
|
After Width: | Height: | Size: 77 B |
|
After Width: | Height: | Size: 97 B |
|
After Width: | Height: | Size: 113 B |
|
After Width: | Height: | Size: 908 B |
|
After Width: | Height: | Size: 909 B |
|
After Width: | Height: | Size: 67 B |
|
After Width: | Height: | Size: 77 B |
|
After Width: | Height: | Size: 78 B |
@@ -0,0 +1,81 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const boardWrapper = document.getElementById('newproduct-board');
|
||||
if (!boardWrapper) return;
|
||||
|
||||
const boardListWrapper = boardWrapper.querySelector('.board-list-wrapper');
|
||||
if (!boardListWrapper) return;
|
||||
|
||||
const viewModeButtons = document.querySelectorAll('.btn-view-mode');
|
||||
const paginationWrapper = document.querySelector('.pagination-wrapper');
|
||||
const loadMoreWrapper = document.querySelector('.load-more-wrapper');
|
||||
|
||||
viewModeButtons.forEach(button => {
|
||||
button.addEventListener('click', function() {
|
||||
const mode = this.dataset.mode;
|
||||
viewModeButtons.forEach(btn => btn.classList.remove('active'));
|
||||
this.classList.add('active');
|
||||
|
||||
boardListWrapper.dataset.viewMode = mode;
|
||||
|
||||
set_cookie('board_newproduct_view_mode', mode, 365, '/', '');
|
||||
|
||||
if (paginationWrapper) paginationWrapper.style.display = (mode === 'list') ? 'block' : 'none';
|
||||
if (loadMoreWrapper) loadMoreWrapper.style.display = (mode === 'card') ? 'block' : 'none';
|
||||
});
|
||||
});
|
||||
|
||||
const loadMoreButton = document.getElementById('btn-load-more');
|
||||
if (loadMoreButton) {
|
||||
loadMoreButton.addEventListener('click', function() {
|
||||
let currentPage = parseInt(this.dataset.page, 10);
|
||||
this.textContent = '로딩 중...';
|
||||
this.disabled = true;
|
||||
|
||||
const url = new URL(window.location.href);
|
||||
url.searchParams.set('page', currentPage);
|
||||
|
||||
fetch(url)
|
||||
.then(response => response.text())
|
||||
.then(html => {
|
||||
const parser = new DOMParser();
|
||||
const doc = parser.parseFromString(html, 'text/html');
|
||||
|
||||
const newItems = doc.querySelectorAll('.board-list-wrapper .card-item');
|
||||
const cardList = boardListWrapper.querySelector('.card-list');
|
||||
|
||||
if (newItems.length > 0 && cardList) {
|
||||
newItems.forEach(item => {
|
||||
cardList.appendChild(item);
|
||||
});
|
||||
|
||||
currentPage++;
|
||||
this.dataset.page = currentPage;
|
||||
this.textContent = '더보기';
|
||||
this.disabled = false;
|
||||
|
||||
const nextLoadMoreButton = doc.getElementById('btn-load-more');
|
||||
if (!nextLoadMoreButton) {
|
||||
this.style.display = 'none';
|
||||
}
|
||||
} else {
|
||||
this.textContent = '마지막 페이지입니다.';
|
||||
this.disabled = true;
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error loading more items:', error);
|
||||
this.textContent = '오류 발생';
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function set_cookie(name, value, time, domain, path) {
|
||||
let expires = "";
|
||||
if (time) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() + (time * 24 * 60 * 60 * 1000));
|
||||
expires = "; expires=" + date.toUTCString();
|
||||
}
|
||||
document.cookie = name + "=" + (value || "") + expires + "; path=" + path + "; domain=" + domain;
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
/**
|
||||
* newproduct :: list.skin.php
|
||||
*/
|
||||
|
||||
// 0. 중앙 광고 설정 파일을 로드합니다.
|
||||
include_once(G5_THEME_PATH . '/skin/board/board_ad_config.php');
|
||||
|
||||
$config_path = __DIR__ . '/config.php';
|
||||
if (file_exists($config_path)) {
|
||||
include_once($config_path);
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/css/style.css?ver='.G5_SERVER_TIME.'">', 0);
|
||||
add_javascript('<script src="'.$board_skin_url.'/js/script.js?ver='.G5_SERVER_TIME.'"></script>', 0);
|
||||
|
||||
$default_view_mode = isset($board_config['list']['default_view_mode']) ? $board_config['list']['default_view_mode'] : 'card';
|
||||
$view_mode = get_cookie('board_' . $bo_table . '_view_mode') ?: $default_view_mode;
|
||||
?>
|
||||
|
||||
<div id="newproduct-board">
|
||||
<div class="three-column-layout container">
|
||||
<?php if (isset($board_ad_config['list_ad']['left']) && $board_ad_config['list_ad']['left'] === true): ?>
|
||||
<aside class="layout-sidebar-left">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">좌측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_l" data-layout="newproduct-list-left"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
<main class="layout-main-content1">
|
||||
<?php
|
||||
$core_skin_path = G5_THEME_PATH . '/skin/board/rb.board.core.coverage/list.skin.php';
|
||||
if (file_exists($core_skin_path)) {
|
||||
include($core_skin_path);
|
||||
} else {
|
||||
echo '<div class="empty-list">코어 게시판 스킨 파일을 찾을 수 없습니다.</div>';
|
||||
}
|
||||
?>
|
||||
<div class="board-footer">
|
||||
<!-- 💡 [수정] 더보기 버튼 복구 -->
|
||||
<?php if ($page < $total_page): ?>
|
||||
<div class="load-more-wrapper" style="display: <?php echo ($view_mode === 'card') ? 'block' : 'none'; ?>;">
|
||||
<button type="button" id="btn-load-more" class="btn btn-primary" data-page="<?php echo $page + 1; ?>">더보기</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- 페이지네이션은 리스트형일 때만 표시 -->
|
||||
<div class="pagination-wrapper" style="display: <?php echo ($view_mode === 'list') ? 'block' : 'none'; ?>;">
|
||||
<?php echo $write_pages; ?>
|
||||
</div>
|
||||
|
||||
<div class="btn-group">
|
||||
<?php if ($list_href) { ?><a href="<?php echo $list_href ?>" class="btn btn-secondary">목록</a><?php } ?>
|
||||
<?php if ($write_href) { ?><a href="<?php echo $write_href ?>" class="btn btn-primary">글쓰기</a><?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<?php if (isset($board_ad_config['list_ad']['right']) && $board_ad_config['list_ad']['right'] === true): ?>
|
||||
<aside class="layout-sidebar-right">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">우측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_r" data-layout="newproduct-list-right"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
/**
|
||||
* newproduct :: view.skin.php
|
||||
*/
|
||||
|
||||
// 0. 중앙 광고 설정 파일을 로드합니다.
|
||||
include_once(G5_THEME_PATH . '/skin/board/board_ad_config.php');
|
||||
|
||||
$config_path = __DIR__ . '/config.php';
|
||||
if (file_exists($config_path)) {
|
||||
include_once($config_path);
|
||||
}
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/css/style.css?ver='.G5_SERVER_TIME.'">', 0);
|
||||
add_javascript('<script src="'.$board_skin_url.'/js/script.js?ver='.G5_SERVER_TIME.'"></script>', 0);
|
||||
?>
|
||||
|
||||
<div id="newproduct-board">
|
||||
<div class="three-column-layout container">
|
||||
<?php if ((isset($board_ad_config['view_ad']['left']) && $board_ad_config['view_ad']['left'] === true) || (isset($newproduct_skin_config['left_ad']) && $newproduct_skin_config['left_ad'] === true)): ?>
|
||||
<aside class="layout-sidebar-left">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">좌측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_l" data-layout="newproduct-view-left"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
<main class="layout-main-content">
|
||||
<?php
|
||||
$core_skin_path = G5_THEME_PATH . '/skin/board/rb.board.core.coverage/view.skin.php';
|
||||
if (file_exists($core_skin_path)) {
|
||||
include($core_skin_path);
|
||||
} else {
|
||||
echo '<div class="empty-list">코어 게시판 스킨 파일을 찾을 수 없습니다.</div>';
|
||||
}
|
||||
?>
|
||||
</main>
|
||||
<?php if ((isset($board_ad_config['view_ad']['right']) && $board_ad_config['view_ad']['right'] === true) || (isset($newproduct_skin_config['right_ad']) && $newproduct_skin_config['right_ad'] === true)): ?>
|
||||
<aside class="layout-sidebar-right">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">우측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_r" data-layout="newproduct-view-right"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
/**
|
||||
* newproduct :: write.skin.php
|
||||
*/
|
||||
|
||||
// 0. 중앙 광고 설정 파일을 로드합니다.
|
||||
include_once(G5_THEME_PATH . '/skin/board/board_ad_config.php');
|
||||
|
||||
$config_path = __DIR__ . '/config.php';
|
||||
if (file_exists($config_path)) {
|
||||
include_once($config_path);
|
||||
}
|
||||
|
||||
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/css/style.css?ver='.G5_SERVER_TIME.'">', 0);
|
||||
add_javascript('<script src="'.$board_skin_url.'/js/script.js?ver='.G5_SERVER_TIME.'"></script>', 0);
|
||||
?>
|
||||
|
||||
<div id="newproduct-board">
|
||||
<div class="three-column-layout container">
|
||||
<?php if (isset($board_ad_config['write_ad']['left']) && $board_ad_config['write_ad']['left'] === true): ?>
|
||||
<aside class="layout-sidebar-left">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">좌측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_l" data-layout="newproduct-write-left"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
<main class="layout-main-content">
|
||||
<?php
|
||||
$core_skin_path = G5_THEME_PATH . '/skin/board/rb.board.core.coverage/write.skin.php';
|
||||
if (file_exists($core_skin_path)) {
|
||||
include($core_skin_path);
|
||||
} else {
|
||||
echo '<div class="empty-list">코어 게시판 스킨 파일을 찾을 수 없습니다.</div>';
|
||||
}
|
||||
?>
|
||||
</main>
|
||||
<?php if (isset($board_ad_config['write_ad']['right']) && $board_ad_config['write_ad']['right'] === true): ?>
|
||||
<aside class="layout-sidebar-right">
|
||||
<div class="sidebar-inner">
|
||||
<?php if($is_admin) { ?> <h3 class="sidebar-title">우측 광고 영역</h3> <?php } ?>
|
||||
<div class="flex_box flex_box_r" data-layout="newproduct-write-right"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||