first commit 2
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
$g5['title'] = '인사말';
|
||||
$greeting_skin_config = [
|
||||
'left_ad' => false, // 좌측 광고 사용 안함
|
||||
'right_ad' => false, // 우측 광고 사용 안함
|
||||
];
|
||||
@@ -0,0 +1,159 @@
|
||||
/*
|
||||
* greeting 정보형 페이지 전용 스타일
|
||||
*/
|
||||
|
||||
.info-page-container {
|
||||
background-color: #fff;
|
||||
padding: 40px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
/* 페이지 헤더 */
|
||||
.info-page-header {
|
||||
text-align: center;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.info-page-title {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 900;
|
||||
color: #222;
|
||||
line-height: 1.3;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.info-page-subtitle {
|
||||
font-size: 1.3rem;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
/* 본문 콘텐츠 래퍼 */
|
||||
.greeting-content-wrapper {
|
||||
display: flex;
|
||||
gap: 40px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
/* 대표 이미지 */
|
||||
.greeting-figure {
|
||||
flex: 0 0 250px; /* 이미지 너비 고정 */
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.greeting-image {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 8px;
|
||||
object-fit: cover;
|
||||
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
/* 본문 스타일 */
|
||||
.prose {
|
||||
flex: 1; /* 남은 공간을 모두 차지 */
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.8;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.prose h3 {
|
||||
font-size: 1.6rem;
|
||||
font-weight: 700;
|
||||
color: #0056b3; /* 테마 메인 컬러 */
|
||||
margin-top: 20px;
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 2px solid #f0f0f0;
|
||||
}
|
||||
.prose h3:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.prose h3 .fas {
|
||||
margin-right: 10px;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
.prose p {
|
||||
margin-bottom: 1.5em;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.prose strong {
|
||||
color: #0056b3;
|
||||
}
|
||||
|
||||
/* 서명 */
|
||||
.signature {
|
||||
margin-top: 40px;
|
||||
text-align: right;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
.signature strong {
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
color: #222;
|
||||
}
|
||||
.signature span {
|
||||
display: block;
|
||||
color: #666;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
/* 반응형 스타일 */
|
||||
@media (max-width: 992px) {
|
||||
.greeting-content-wrapper {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.greeting-figure {
|
||||
margin-bottom: 30px;
|
||||
max-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.info-page-container {
|
||||
padding: 20px;
|
||||
}
|
||||
.info-page-title {
|
||||
font-size: 2rem;
|
||||
}
|
||||
.prose {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 3단 레이아웃 스타일 (기존 코드 유지)
|
||||
*/
|
||||
.three-column-layout {
|
||||
display: flex;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
.layout-sidebar-left {
|
||||
flex: 0 0 240px;
|
||||
}
|
||||
|
||||
.layout-main-content {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.layout-sidebar-right {
|
||||
flex: 0 0 240px;
|
||||
}
|
||||
|
||||
@media all and (max-width: 1024px) {
|
||||
.three-column-layout {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.layout-sidebar-left,
|
||||
.layout-main-content,
|
||||
.layout-sidebar-right {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
// 1. 현재 스킨 폴더명 정의 (config.php 로드 전에 설정)
|
||||
|
||||
|
||||
// 2. 통합 설정 파일 로드
|
||||
$config_path = G5_THEME_PATH . '/skin/page/config.php';
|
||||
if (file_exists($config_path)) {
|
||||
include_once($config_path);
|
||||
} else {
|
||||
// 통합 설정 파일이 없을 경우 기본값 설정
|
||||
$page_skin_config = array('left_ad' => false, 'right_ad' => false);
|
||||
}
|
||||
|
||||
// 3. 스킨 경로 정의
|
||||
$current_page_skin = 'greeting';
|
||||
$page_skin_url = G5_THEME_URL . '/skin/page/' . $current_page_skin;
|
||||
$page_skin_path = G5_THEME_PATH . '/skin/page/' . $current_page_skin;
|
||||
|
||||
|
||||
// 4. CSS/JS 로드
|
||||
add_stylesheet('<link rel="stylesheet" href="' . $page_skin_url . '/css/style.css?ver=' . G5_SERVER_TIME . '">', 0);
|
||||
add_javascript('<script src="' . $page_skin_url . '/js/script.js?ver=' . G5_SERVER_TIME . '"></script>', 0);
|
||||
|
||||
// 5. 기본 데이터 정의
|
||||
$page_data = array(
|
||||
'title' => '신뢰와 전문성으로, 산업의 미래를 함께 만듭니다',
|
||||
'subtitle' => '대표 발행인 박준성',
|
||||
'content' => '
|
||||
<h3><i class="fas fa-hands-helping"></i> 환영의 인사</h3>
|
||||
<p>월간 레이저기술과 금형공구(舊. 금형저널)를 아껴주시는 독자 여러분, 그리고 (주)레이저월드 홈페이지를 찾아주신 모든 분들께 진심으로 환영의 인사를 드립니다.</p>
|
||||
<h3><i class="fas fa-rocket"></i> 미디어의 역할과 비전</h3>
|
||||
<p>(주)레이저월드(LW, Laser World)는 (주)한국산업정보센타가 오랜 기간 축적해온 레이저 전문 콘텐츠와 산업 네트워크를 기반으로 새롭게 설립된 레이저 기술 전문 미디어 기업입니다. 저희는 <strong>월간 레이저기술</strong>을 중심으로 단행본 발간, 세미나 개최 등 다양한 지식 플랫폼을 통해 국내외 레이저산업의 발전을 함께 만들어가고자 합니다. 불필요한 공백을 제거했습니다.</p>
|
||||
<p>1993년 창간한 월간 레이저기술은 30년 넘게 산업의 변화를 기록해온 국내 유일의 레이저 전문지로서, 앞으로도 깊이 있고 정확한 정보로 산업 발전의 중심에서 역할을 다하겠습니다.</p>
|
||||
<h3><i class="fas fa-gem"></i> 우리의 다짐</h3>
|
||||
<p>(주)레이저월드는 금형과 레이저라는 두 분야에 깊이 뿌리내린 전문성을 토대로, 산업 종사자에게 가장 신뢰할 수 있는 정보를 제공하는 것을 목표로 합니다. 정제된 콘텐츠, 현장 중심 취재, 그리고 산업과 함께 성장하겠다는 마음가짐으로 늘 한결같이 노력하겠습니다.</p>',
|
||||
'image_url' => $page_skin_url . '/images/caricature.jpg',
|
||||
'image_alt' => '대표 캐리커처',
|
||||
'sign_name' => '박준성 / 대표 발행인',
|
||||
'sign_company' => '(주)레이저월드'
|
||||
);
|
||||
|
||||
// 6. 모듈 설정 연동
|
||||
if (!isset($module_config) && isset($md_id) && $md_id) {
|
||||
$module_config = sql_fetch(" SELECT * FROM rb_module WHERE md_id = '{$md_id}' ");
|
||||
}
|
||||
|
||||
if (isset($module_config) && $module_config['md_type'] == 'page') {
|
||||
$target_bo_table = $module_config['md_bo_table_page'];
|
||||
$target_wr_id = $module_config['md_wr_id_page'];
|
||||
|
||||
if ($target_bo_table && $target_wr_id) {
|
||||
$write_table = $g5['write_prefix'] . $target_bo_table;
|
||||
$view = sql_fetch(" SELECT * FROM {$write_table} WHERE wr_id = '{$target_wr_id}' ");
|
||||
//var_dump($view);
|
||||
if ($view) {
|
||||
// $page_data['title'] = $view['wr_subject'];
|
||||
// $page_data['subtitle'] = $view['wr_1']; // 여분필드 1: 부제목
|
||||
$page_data['content'] = conv_content($view['wr_content'], 1);
|
||||
|
||||
// 첨부파일 (이미지)
|
||||
$sql_file = " select bf_file, bf_source from {$g5['board_file_table']} where bo_table = '$target_bo_table' and wr_id = '$target_wr_id' order by bf_no limit 1 ";
|
||||
$row_file = sql_fetch($sql_file);
|
||||
if ($row_file['bf_file']) {
|
||||
$page_data['image_url'] = G5_DATA_URL.'/file/'.$target_bo_table.'/'.$row_file['bf_file'];
|
||||
$page_data['image_alt'] = $row_file['bf_source'];
|
||||
} else {
|
||||
// 본문 내 이미지 추출 시도
|
||||
$matches = get_editor_image($view['wr_content'], false);
|
||||
if($matches) {
|
||||
$img_src = $matches[1][0];
|
||||
// 💡 [수정] 이미지 경로가 상대 경로인 경우 전체 URL로 변환
|
||||
if (!preg_match("/^(http|https):/i", $img_src)) {
|
||||
// /data/ 로 시작하면 G5_URL을 붙여줌 (그누보드 에디터 이미지 경로 특성 고려)
|
||||
// 만약 이미 도메인이 포함되어 있지 않다면 추가
|
||||
$page_data['image_url'] = G5_URL . $img_src;
|
||||
} else {
|
||||
$page_data['image_url'] = $img_src;
|
||||
}
|
||||
$page_data['image_alt'] = $view['wr_subject'];
|
||||
} else {
|
||||
$page_data['image_url'] = ''; // 이미지가 없으면 빈 값
|
||||
}
|
||||
}
|
||||
|
||||
$page_data['sign_name'] = $view['wr_2']; // 여분필드 2: 서명 이름
|
||||
$page_data['sign_company'] = $view['wr_3']; // 여분필드 3: 서명 소속
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="three-column-layout container">
|
||||
<?php if (isset($page_skin_config['left_ad']) && $page_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="<?php echo $current_page_skin; ?>-left"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="layout-main-content">
|
||||
<div class="info-page-container">
|
||||
|
||||
<header class="info-page-header">
|
||||
<h2 class="info-page-title"><?php echo $page_data['title']; ?></h2>
|
||||
<?php if($page_data['subtitle']): ?>
|
||||
<p class="info-page-subtitle"><?php echo $page_data['subtitle']; ?></p>
|
||||
<?php endif; ?>
|
||||
</header>
|
||||
<div class="greeting-content-wrapper">
|
||||
<?php if($page_data['image_url']): ?>
|
||||
<figure class="greeting-figure">
|
||||
<img src="<?php echo $page_data['image_url']; ?>" alt="<?php echo $page_data['image_alt']; ?>" class="greeting-image">
|
||||
</figure>
|
||||
<?php endif; ?>
|
||||
<article class="prose">
|
||||
<?php echo $page_data['content']; ?>
|
||||
<?php if($page_data['sign_name'] || $page_data['sign_company']): ?>
|
||||
<div class="signature">
|
||||
<?php if($page_data['sign_name']): ?><strong><?php echo $page_data['sign_name']; ?></strong><?php endif; ?>
|
||||
<?php if($page_data['sign_company']): ?><span><?php echo $page_data['sign_company']; ?></span><?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<?php if (isset($page_skin_config['right_ad']) && $page_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="<?php echo $current_page_skin; ?>-right"></div>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -0,0 +1,12 @@
|
||||
// 이 페이지 전용 커스텀 자바스크립트
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// 예: 특정 요소에 애니메이션 추가 등
|
||||
// const title = document.querySelector('.section-title');
|
||||
// if(title) {
|
||||
// title.style.opacity = 0;
|
||||
// setTimeout(() => {
|
||||
// title.style.transition = 'opacity 0.5s';
|
||||
// title.style.opacity = 1;
|
||||
// }, 100);
|
||||
// }
|
||||
});
|
||||
Reference in New Issue
Block a user