first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
@@ -0,0 +1,11 @@
<?php
if (!defined('_GNUBOARD_')) exit;
$g5['title'] = '금형저널';
// moldjournal_new 페이지 스킨 광고 영역 설정
$moldjournal_new_skin_config = [
'left_ad' => false, // 좌측 광고 사용 안함
'right_ad' => false, // 우측 광고 사용 안함
];
?>
@@ -0,0 +1,182 @@
/*
* greeting 정보형 페이지 전용 스타일
*/
.sub-page-container {
padding-top: 0px; !important;
padding-bottom: 80px;
background: #fff;
min-height: 500px;
}
.container {
/* max-width: 1200px; !important; */ /* 💡 [수정] 고정 너비 제거 */
width: 90%; !important; /* 💡 [추가] 화면 너비의 90% 사용 (좌우 5% 여백) */
max-width: 1600px; /* 💡 [추가] 너무 넓어지는 것 방지 (선택 사항) */
margin: 0 auto;
padding: 0 var(--spacing-md);
}
.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;
}
/* =====================================================
🔥 [수정 핵심]
이미지 | (한글 위 / 영어 아래) 2컬럼 구성
기존 flex → grid 로 변경
===================================================== */
.greeting-content-wrapper {
display: grid; /* [변경] */
grid-template-columns: 250px 1fr; /* 이미지 | 텍스트 */
column-gap: 40px;
align-items: start;
}
/* 대표 이미지 */
.greeting-figure {
flex: 0 0 250px; /* [유지] */
margin: 0;
grid-row: 1 / 3; /* 🔥 한글+영문 전체 높이 차지 */
}
.greeting-image {
width: 100%;
height: auto;
border-radius: 8px;
object-fit: cover;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
margin-bottom: 40px;
}
/* =====================================================
🔥 [수정 핵심]
오른쪽 컬럼 내부 정렬
===================================================== */
.prose {
font-size: 1.1rem;
line-height: 1.8;
color: #333;
}
/* 한글 콘텐츠 */
.greeting-content-wrapper .prose:first-of-type {
grid-column: 2;
grid-row: 1;
}
/* 영문 콘텐츠 */
.greeting-content-wrapper .prose:last-of-type {
grid-column: 2;
grid-row: 2;
}
/* 제목 스타일 */
.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: #000000;
}
/* =====================================================
📱 모바일 대응 (기존 유지 + grid 대응 추가)
===================================================== */
@media (max-width: 768px) {
.greeting-content-wrapper {
grid-template-columns: 1fr; /* 세로 스택 */
}
.greeting-figure {
grid-row: auto;
max-width: 300px;
margin: 0 auto 30px;
}
.prose {
font-size: 1rem;
}
}
@media (max-width: 768px) {
.info-page-container {
padding: 20px;
}
.info-page-title {
font-size: 2rem;
}
}
/*
* 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: 768px) {
.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: 349 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

@@ -0,0 +1,167 @@
<?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);
}
$current_page_skin = 'moldjournal_new';
// 3. 스킨 경로 정의
$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-history"></i> 한국 금형산업 발전의 역사</h3>
<p>
1984년 창간한 <strong>월간 금형공구</strong>는 금형·공구 산업의 국내외 동향, 신기술, 신제품, 기술개발 정보를 체계적으로 전하며 한국 금형산업 발전을 이끌어 온 전문지입니다.<br>산업 변화와 기술 패러다임 전환을 가장 가까운 자리에서 기록하며 주요 이슈를 신뢰도 높은 분석과 함께 소개해 왔습니다.
</p>
<h3><i class="fas fa-industry"></i> 제조업의 기반, 핵심 산업</h3>
<p>
금형산업은 완구에서 우주항공까지 전 제조업의 기반을 이루는 기술집약적 핵심 산업으로, 제품 품질 향상과 공정 고도화를 좌우하는 국가 전략 분야입니다.<br> 이에 따라 정교한 기술 정보와 최신 산업 동향 파악이 무엇보다 중요합니다.
</p>
<h3><i class="fas fa-hands-helping"></i> 신뢰의 약속</h3>
<p>
(주)한국산업정보센터는 한국금형공업협동조합 설립 이후 조합원에게 전문 정보를 제공하고자 창간된 월간 금형·공구의 이념을 이어 발전시켜 왔습니다.<br>오늘날 월간 금형공구는 국내 금형 분야에서 가장 오랜 전통과 권위를 보유한 매체로 자리매김하고 있습니다.<br>앞으로도 산업 현장의 목소리를 담아 유용한 기술 정보와 통찰을 제공하며 금형산업의 미래를 함께 열어가겠습니다.
</p>
<hr class="info-page-divider">
<h3><i class="fas fa-globe-americas"></i> Monthly Mold & Tooling: Our Story</h3>
<p>
First published in 1984, <strong>Monthly Mold & Tooling</strong> has delivered structured and reliable coverage of domestic and global trends, new technologies, product developments, and technical advancements within the mold and tooling industry.
</p>
<p>
The mold industry is a technology-intensive foundation for nearly all manufacturing—from toys to aerospace—and a strategic national field that drives product quality and advanced production processes. Accurate and up-to-date technical information is therefore essential.
</p>
<p>
Today, it stands as Koreas oldest and most authoritative magazine in the mold sector. Moving forward, Monthly Mold & Tooling will continue delivering practical insights and industry-focused knowledge, serving as a reliable partner for the future of mold technology.
</p>',
'images' => array( // 💡 [수정] 이미지 배열로 변경
array('url' => $page_skin_url . '/images/img.png', 'alt' => '저금형기술'),
array('url' => $page_skin_url . '/images/img1.jpg', '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}' ");
if ($view) {
$page_data['title'] = $view['wr_subject'];
$page_data['subtitle'] = $view['wr_1'];
$page_data['content'] = conv_content($view['wr_content'], 1);
$page_data['images'] = array(); // 이미지 배열 초기화
// 💡 [수정] 모든 첨부파일을 이미지 배열에 추가
$sql_files = " 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 ";
$result_files = sql_query($sql_files);
while($row_file = sql_fetch_array($result_files)) {
if ($row_file['bf_file']) {
$page_data['images'][] = array(
'url' => G5_DATA_URL.'/file/'.$target_bo_table.'/'.$row_file['bf_file'],
'alt' => $row_file['bf_source']
);
}
}
// 첨부파일이 없을 경우 본문에서 이미지 추출
if (empty($page_data['images'])) {
$matches = get_editor_image($view['wr_content'], false);
if($matches) {
foreach($matches[1] as $img_src) {
if (!preg_match("/^(http|https):/i", $img_src)) {
$img_url = G5_URL . $img_src;
} else {
$img_url = $img_src;
}
$page_data['images'][] = array(
'url' => $img_url,
'alt' => $view['wr_subject']
);
}
}
}
$page_data['sign_name'] = $view['wr_2'];
$page_data['sign_company'] = $view['wr_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-content1">
<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(!empty($page_data['images'])): ?>
<figure class="greeting-figure">
<?php foreach($page_data['images'] as $image): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="greeting-image">
<?php endforeach; ?>
</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);
// }
});