게시글 등록 시 내용관리에 등록된 내용 불러오기
본문
안녕하세요. 개발자가 아니다 보니 하나하나 찾아보면서 하는데 쉽지 않네요ㅠ
원하는건
게시판에서 게시글 등록 시 셀렉트박스를 만들어 내용관리에서 등록한 페이지를 선택하고
등록이 완료되면 그 선택한 페이지가 해당 게시글에 출력되게 하는것입니다.
다시 설명하면
1. 게시글 등록 버튼 클릭
2. 제목, 내용 등 입력
3. 셀렉트박스(내용관리에 등록된 내용 목록)
4. 등록 완료 시 등록한 게시내용과 함께 위의 선택한 내용관리의 컨텐츠도 출력
--------------------------------
제목 날짜 등등
--------------------------------
게시글내용
--------------------------------
선택한 내용관리의 컨텐츠
---------------------------------
이렇게 하려고 할때 간단한 방법이 없을까요?
답변 2
* [게시판 스킨]/write.skin.php
<?php
// 내용관리 목록 가져오기
$content_sql = "SELECT co_id, co_subject FROM {$g5['content_table']} ORDER BY co_subject ASC";
$content_result = sql_query($content_sql);
?>
<!-- 적당한 위치에 추가 -->
<tr>
<th scope="row"><label for="content_select">연결할 내용관리</label></th>
<td>
<select name="wr_1" id="content_select" class="frm_input">
<option value="">선택하세요</option>
<?php
while ($content_row = sql_fetch_array($content_result)) {
$selected = '';
// 수정 모드일 때 기존 선택값 복원
if ($w == 'u' && $write['wr_1'] == $content_row['co_id']) {
$selected = ' selected';
}
echo '<option value="'.$content_row['co_id'].'"'.$selected.'>'.get_text($content_row['co_subject']).'</option>';
}
?>
</select>
<p style="margin-top:5px; color:#666; font-size:12px;">게시글과 함께 출력할 내용관리 페이지를 선택하세요.</p>
</td>
</tr>
* [게시판 스킨]/view.skin.php
<!-- 연결된 내용관리 출력 -->
<?php
// 여분필드 wr_1에 내용관리 ID가 저장되어 있는 경우
if ($view['wr_1']) {
$content_id = $view['wr_1'];
// 내용관리 테이블에서 해당 내용 가져오기
$sql = "SELECT co_subject, co_content
FROM {$g5['content_table']}
WHERE co_id = '{$content_id}'";
$content_result = sql_fetch($sql);
if ($content_result) {
?>
<div id="attached_content" style="margin-top: 30px; padding: 20px; background-color: #f8f9fa; border-left: 4px solid #007bff; border-radius: 5px;">
<h4 style="margin: 0 0 15px 0; color: #495057; font-size: 16px; border-bottom: 2px solid #007bff; padding-bottom: 8px;">
? 연결된 내용: <?php echo get_text($content_result['co_subject']); ?>
</h4>
<div style="line-height: 1.6;">
<?php
// HTML 태그 허용하여 출력 (내용관리는 보통 HTML 에디터로 작성됨)
echo conv_content($content_result['co_content'], 1);
?>
</div>
</div>
<?php
}
}
?>
동일한 내용을 게시판에 저장할 필요는 없습니다
해당 내용관리 게시물의 co_id를 여분필드 wr_1에 저장하고 이것을 이용해서 내용을 출력하면 됩니다
1. select 만들기
$result = sql_query("select * from {$g5['content_table']} order by co_subject ");
$content_opt="<option value=''>선택</option>";
while($row=sql_fetch_array($result)){
$content_opt.="<option value='{$row['co_id']}>{$row['co_subject']}</option>";
}
2. select box
내용관리 선택 <select name='wr_1'><?php echo $content_opt;?></select>
3. view페이지 출력
$row = sql_fetch(" select * from {$g5['content_table']} where co_id = '{$view['wr_1']}' ");
echo $row['co_content'];
등록시 선택한 내용을 보이게 한다든지 수정시 선택한 내용 제목이 선택 되도록 하는 부분도
있어야겠네요