그누보드 글 쓰기 간트 라이브러리 업로드 질문... 채택완료
</p>
<p><?php</p>
<p>if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p>include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php');</p>
<p> </p>
<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨</p>
<p>add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);</p>
<p> </p>
<p>add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/dhtmlxgantt.css">', 0);</p>
<p>add_javascript('<script src="'.$board_skin_url.'/dhtmlxgantt.js"><script>', 0);</p>
<p>?></p>
<p><article id="bo_v" style="width:100%;"></p>
<p><section id="bo_w"></p>
<p> <h2 class="sound_only"><?php echo $g5['title'] ?></h2></p>
<p> </p>
<p> <!-- 게시물 작성/수정 시작 { --></p>
<p> <form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>"></p>
<p> <input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>"></p>
<p> <input type="hidden" name="w" value="<?php echo $w ?>"></p>
<p> <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>"></p>
<p> <input type="hidden" name="wr_id" value="<?php echo $wr_id ?>"></p>
<p> <input type="hidden" name="sca" value="<?php echo $sca ?>"></p>
<p> <input type="hidden" name="sfl" value="<?php echo $sfl ?>"></p>
<p> <input type="hidden" name="stx" value="<?php echo $stx ?>"></p>
<p> <input type="hidden" name="spt" value="<?php echo $spt ?>"></p>
<p> <input type="hidden" name="sst" value="<?php echo $sst ?>"></p>
<p> <input type="hidden" name="sod" value="<?php echo $sod ?>"></p>
<p> <input type="hidden" name="page" value="<?php echo $page ?>"></p>
<p> <?php</p>
<p> $option = '';</p>
<p> $option_hidden = '';</p>
<p> if ($is_notice || $is_html || $is_secret || $is_mail) {</p>
<p> $option = '';</p>
<p> if ($is_notice) {</p>
<p> $option .= PHP_EOL.'<li class="chk_box"><input type="checkbox" id="notice" name="notice" class="selec_chk" value="1" '.$notice_checked.'>'.PHP_EOL.'<label for="notice"><span></span>공지</label></li>';</p>
<p> }</p>
<p> if ($is_html) {</p>
<p> if ($is_dhtml_editor) {</p>
<p> $option_hidden .= '<input type="hidden" value="html1" name="html">';</p>
<p> } else {</p>
<p> $option .= PHP_EOL.'<li class="chk_box"><input type="checkbox" id="html" name="html" onclick="html_auto_br(this);" class="selec_chk" value="'.$html_value.'" '.$html_checked.'>'.PHP_EOL.'<label for="html"><span></span>html</label></li>';</p>
<p> }</p>
<p> }</p>
<p> if ($is_secret) {</p>
<p> if ($is_admin || $is_secret==1) {</p>
<p> $option .= PHP_EOL.'<li class="chk_box"><input type="checkbox" id="secret" name="secret" class="selec_chk" value="secret" '.$secret_checked.'>'.PHP_EOL.'<label for="secret"><span></span>비밀글</label></li>';</p>
<p> } else {</p>
<p> $option_hidden .= '<input type="hidden" name="secret" value="secret">';</p>
<p> }</p>
<p> }</p>
<p> if ($is_mail) {</p>
<p> $option .= PHP_EOL.'<li class="chk_box"><input type="checkbox" id="mail" name="mail" class="selec_chk" value="mail" '.$recv_email_checked.'>'.PHP_EOL.'<label for="mail"><span></span>답변메일받기</label></li>';</p>
<p> }</p>
<p> }</p>
<p> echo $option_hidden;</p>
<p> ?></p>
<p> </p>
<p> <?php if ($is_category) { ?></p>
<p> <div class="bo_w_select write_div"></p>
<p> <label for="ca_name" class="sound_only">분류<strong>필수</strong></label></p>
<p> <select name="ca_name" id="ca_name" required></p>
<p> <option value="">분류를 선택하세요</option></p>
<p> <?php echo $category_option ?></p>
<p> </select></p>
<p> </div></p>
<p> <?php } ?></p>
<p> </p>
<p><div class="mc mc-write mc-write-gantt"></p>
<p> <div class="mc-control-row mc-control-row-required"></p>
<p> <span class="mc-control-label">프로젝트 기간</span></p>
<p> <div class="date_flex"></p>
<p> <div class="mc-controls" data-name="wr_1" data-type="date" data-root="" data-multiple="0" data-mode="write" data-input="input" data-required="1"></p>
<p> <input type="text" name="wr_1" value="<?php echo $write["wr_1"]; ?>" id="date_wr_1" required class="frm_input" size="11" readonly="readonly"></p>
<p> </div></p>
<p> <span>~</span></p>
<p> <div class="mc-controls" data-name="wr_2" data-type="date" data-root="" data-multiple="0" data-mode="write" data-input="input" data-required="1"></p>
<p> <input type="text" name="wr_2" value="<?php echo $write["wr_2"]; ?>" id="date_wr_2" required class="frm_input" size="11" readonly="readonly"></p>
<p> </div></p>
<p> </div> </p>
<p> </div></p>
<p> <div class="mc-control-row mc-control-row-required"></p>
<p> <span class="mc-control-label">프로젝트 기간</span></p>
<p> <div class="mc-controls" data-name="wr_3" data-type="category" data-root="53" data-multiple="" data-mode="write" data-input="checkbox" data-required="1"></p>
<p> <script type="text/json">{"column":"path"}</script><input type="hidden" name="wr_3" value="" title="프로젝트 기간" class="required"><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="1" onchange="mc.handle(this)">1</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="2" onchange="mc.handle(this)">2</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="3" onchange="mc.handle(this)">3</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="4" onchange="mc.handle(this)">4</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="5" onchange="mc.handle(this)">5</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="6" onchange="mc.handle(this)">6</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="7" onchange="mc.handle(this)">7</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="8" onchange="mc.handle(this)">8</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="9" onchange="mc.handle(this)">9</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="10" onchange="mc.handle(this)">10</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="11" onchange="mc.handle(this)">11</label><label class="mc-control-radio"><input type="checkbox" data-name="wr_3" value="12" onchange="mc.handle(this)">12</label></div></p>
<p> </div></p>
<p> <div class="mc-control-row mc-control-row-required w_full"></p>
<p> <span class="mc-control-label">간트 URL</span><div class="mc-controls" data-name="wr_4" data-type="text" data-root="" data-multiple="0" data-mode="write" data-input="input" data-required="1"><input type="text" name="wr_4" value="" data-name="wr_4" required=""></div></p>
<p> </div></p>
<p> </p>
<p> <div class="mc-control-row mc-control-row-required w_full"></p>
<p> <span class="mc-control-label">프로젝트 명</span></p>
<p> <div class="mc-controls" data-name="wr_subject" data-type="text" data-root="" data-multiple="0" data-mode="write" data-input="input" data-required="1"><input type="text" name="wr_subject" value="" data-name="wr_subject" required="" ize="50" maxlength="255" placeholder="프로젝트 명"></div></p>
<p> </div></p>
<p></div></p>
<p> </p>
<p> <div class="bo_w_info write_div"></p>
<p> <?php if ($is_name) { ?></p>
<p> <label for="wr_name" class="sound_only">이름<strong>필수</strong></label></p>
<p> <input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="frm_input half_input required" placeholder="이름"></p>
<p> <?php } ?></p>
<p> </p>
<p> <?php if ($is_password) { ?></p>
<p> <label for="wr_password" class="sound_only">비밀번호<strong>필수</strong></label></p>
<p> <input type="password" name="wr_password" id="wr_password" <?php echo $password_required ?> class="frm_input half_input <?php echo $password_required ?>" placeholder="비밀번호"></p>
<p> <?php } ?></p>
<p> </p>
<p> <?php if ($is_email) { ?></p>
<p> <label for="wr_email" class="sound_only">이메일</label></p>
<p> <input type="text" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input half_input email " placeholder="이메일"></p>
<p> <?php } ?></p>
<p> </p>
<p> </p>
<p> <?php if ($is_homepage) { ?></p>
<p> <label for="wr_homepage" class="sound_only">홈페이지</label></p>
<p> <input type="text" name="wr_homepage" value="<?php echo $homepage ?>" id="wr_homepage" class="frm_input half_input" size="50" placeholder="홈페이지"></p>
<p> <?php } ?></p>
<p> </div></p>
<p> </p>
<p> </p>
<p> <div class="write_div"></p>
<p> <div class="html"></p>
<p> <div class="body"></p>
<p> <div id="gantt_here" style="height:500px;"></div></p>
<p> </div></p>
<p> </div></p>
<p> </p>
<p> <script></p>
<p> // Document ready function to ensure the DOM is fully loaded before executing the script</p>
<p> $(document).ready(function() {</p>
<p> // Configuration and initialization of Gantt chart</p>
<p> gantt.config.min_column_width = 50;</p>
<p> gantt.config.scale_height = 90;</p>
<p> gantt.config.scales = [</p>
<p> {unit: "year", step: 1, format: "%Y"},</p>
<p> {unit: "month", step: 1, format: "%M"}</p>
<p> ];</p>
<p> gantt.init("gantt_here");</p>
<p> </p>
<p> // Modify the Gantt chart data here</p>
<p> gantt.parse({</p>
<p> data: [</p>
<p> {"id": 11, "text": "프로젝트1", "start_date": "01-07-2023", "end_date": "31-12-2023", "progress": 0.4, "open": true},</p>
<p> {"id": 12, "text": "기획", "start_date": "01-07-2023", "end_date": "31-12-2023", "parent": "11", "progress": 0.6, "open": true},</p>
<p> {"id": 13, "text": "디자인", "start_date": "01-07-2023", "end_date": "31-12-2023", "parent": "11", "progress": 0.2, "open": true},</p>
<p> {"id": 14, "text": "퍼블리싱", "start_date": "01-07-2023", "end_date": "31-12-2023", "parent": "11", "progress": 0.1, "open": true},</p>
<p> {"id": 15, "text": "개발", "start_date": "01-07-2023", "end_date": "31-12-2023", "parent": "11", "progress": 0.8, "open": true} </p>
<p> ],</p>
<p> links: [ </p>
<p> {"id": "10", "source": "11", "target": "12", "type": "1"},</p>
<p> {"id": "11", "source": "12", "target": "13", "type": "1"},</p>
<p> {"id": "12", "source": "13", "target": "14", "type": "1"}</p>
<p> ]</p>
<p> });</p>
<p> </p>
<p> // Other Gantt chart customization, if needed</p>
<p> </p>
<p> // 월별 스케일의 날짜 형식을 수정합니다.</p>
<p> gantt.templates.scale_cell_class = function(date) {</p>
<p> if (date.getMonth() === 0) {</p>
<p> return "january_scale";</p>
<p> }</p>
<p> return "";</p>
<p> };</p>
<p> </p>
<p> // 월별 스케일의 콘텐츠를 수정합니다.</p>
<p> gantt.templates.scale_cell_label = function(date) {</p>
<p> return (date.getMonth() + 1).toString();</p>
<p> };</p>
<p> </p>
<p> // 창 크기 조정 시 스케일의 날짜 형식을 다시 수정합니다.</p>
<p> window.addEventListener("resize", function() {</p>
<p> gantt.render();</p>
<p> });</p>
<p> </p>
<p> $('.btn_pdf').on('click', function() {</p>
<p> gantt.exportToPDF();</p>
<p> });</p>
<p> </p>
<p> $('.btn_png').on('click', function() {</p>
<p> gantt.exportToPNG();</p>
<p> });</p>
<p> </p>
<p> $('.btn_json').on('click', function() {</p>
<p> gantt.exportToJSON({</p>
<p> name: "gantt.json"</p>
<p> });</p>
<p> });</p>
<p>});</p>
<p></script></p>
<p> </p>
<p> </p>
<p> <label for="wr_content" class="sound_only">내용<strong>필수</strong></label></p>
<p> <div class="wr_content <?php echo $is_dhtml_editor ? $config['cf_editor'] : ''; ?>"></p>
<p> <?php if($write_min || $write_max) { ?></p>
<p> <!-- 최소/최대 글자 수 사용 시 --></p>
<p> <p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p></p>
<p> <?php } ?></p>
<p> <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?></p>
<p> <?php if($write_min || $write_max) { ?></p>
<p> <!-- 최소/최대 글자 수 사용 시 --></p>
<p> <div id="char_count_wrap"><span id="char_count"></span>글자</div></p>
<p> <?php } ?></p>
<p> </div></p>
<p> </p>
<p> </div></p>
<p> </p>
<p> <?php for ($i=1; $is_link && $i<=G5_LINK_COUNT; $i++) { ?></p>
<p> </p>
<p> <?php } ?></p>
<p> </p>
<p> <?php for ($i=0; $is_file && $i<$file_count; $i++) { ?></p>
<p> <div class="bo_w_flie write_div"></p>
<p> <div class="file_wr write_div"></p>
<p> <label for="bf_file_<?php echo $i+1 ?>" class="lb_icon"><i class="fa fa-folder-open" aria-hidden="true"></i><span class="sound_only"> 파일 #<?php echo $i+1 ?></span></label></p>
<p> <input type="file" name="bf_file[]" id="bf_file_<?php echo $i+1 ?>" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file "></p>
<p> </div></p>
<p> <?php if ($is_file_content) { ?></p>
<p> <input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="full_input frm_input" size="50" placeholder="파일 설명을 입력해주세요."></p>
<p> <?php } ?></p>
<p> </p>
<p> <?php if($w == 'u' && $file[$i]['file']) { ?></p>
<p> <span class="file_del"></p>
<p> <input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i; ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')'; ?> 파일 삭제</label></p>
<p> </span></p>
<p> <?php } ?></p>
<p> </p>
<p> </div></p>
<p> <?php } ?></p>
<p>
</p>
<p> <?php if ($is_use_captcha) { //자동등록방지 ?></p>
<p> <div class="write_div"></p>
<p> <?php echo $captcha_html ?></p>
<p> </div></p>
<p> <?php } ?></p>
<p> </p>
<p> <div class="btn_confirm write_div"></p>
<p> <a href="<?php echo get_pretty_url($bo_table); ?>" class="btn_cancel btn">취소</a></p>
<p> <button type="submit" id="btn_submit" accesskey="s" class="btn_submit btn">작성완료</button></p>
<p> </div></p>
<p> </form></p>
<p> </p>
<p> <script></p>
<p> <?php if($write_min || $write_max) { ?></p>
<p> // 글자수 제한</p>
<p> var char_min = parseInt(<?php echo $write_min; ?>); // 최소</p>
<p> var char_max = parseInt(<?php echo $write_max; ?>); // 최대</p>
<p> check_byte("wr_content", "char_count");</p>
<p> </p>
<p> $(function() {</p>
<p> $("#wr_content").on("keyup", function() {</p>
<p> check_byte("wr_content", "char_count");</p>
<p> });</p>
<p> });</p>
<p> </p>
<p> <?php } ?></p>
<p> function html_auto_br(obj)</p>
<p> {</p>
<p> if (obj.checked) {</p>
<p> result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을
태그로 변환하는 기능입니다.");</p>
<p> if (result)</p>
<p> obj.value = "html2";</p>
<p> else</p>
<p> obj.value = "html1";</p>
<p> }</p>
<p> else</p>
<p> obj.value = "";</p>
<p> }</p>
<p> </p>
<p> function fwrite_submit(f)</p>
<p> {</p>
<p> <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?></p>
<p> </p>
<p> var subject = "";</p>
<p> var content = "";</p>
<p> $.ajax({</p>
<p> url: g5_bbs_url+"/ajax.filter.php",</p>
<p> type: "POST",</p>
<p> data: {</p>
<p> "subject": f.wr_subject.value,</p>
<p> "content": f.wr_content.value</p>
<p> },</p>
<p> dataType: "json",</p>
<p> async: false,</p>
<p> cache: false,</p>
<p> success: function(data, textStatus) {</p>
<p> subject = data.subject;</p>
<p> content = data.content;</p>
<p> }</p>
<p> });</p>
<p> </p>
<p> if (subject) {</p>
<p> alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");</p>
<p> f.wr_subject.focus();</p>
<p> return false;</p>
<p> }</p>
<p> </p>
<p> if (content) {</p>
<p> alert("내용에 금지단어('"+content+"')가 포함되어있습니다");</p>
<p> if (typeof(ed_wr_content) != "undefined")</p>
<p> ed_wr_content.returnFalse();</p>
<p> else</p>
<p> f.wr_content.focus();</p>
<p> return false;</p>
<p> }</p>
<p> </p>
<p> if (document.getElementById("char_count")) {</p>
<p> if (char_min > 0 || char_max > 0) {</p>
<p> var cnt = parseInt(check_byte("wr_content", "char_count"));</p>
<p> if (char_min > 0 && char_min > cnt) {</p>
<p> alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");</p>
<p> return false;</p>
<p> }</p>
<p> else if (char_max > 0 && char_max < cnt) {</p>
<p> alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");</p>
<p> return false;</p>
<p> }</p>
<p> }</p>
<p> }</p>
<p> </p>
<p> <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?></p>
<p> </p>
<p> document.getElementById("btn_submit").disabled = "disabled";</p>
<p> </p>
<p> return true;</p>
<p> }</p>
<p> </p>
<p> $(function(){</p>
<p> </p>
<p>$("#date_wr_1").datepicker({ changeMonth: true, changeYear: true, dateFormat: "mm-dd", showButtonPanel: true, yearRange: "c-99:c+99", minDate: "+3d;", maxDate: "+365d;" });</p>
<p> </p>
<p>});</p>
<p> </p>
<p>$(function(){</p>
<p> </p>
<p>$("#date_wr_2").datepicker({ changeMonth: true, changeYear: true, dateFormat: "mm-dd", showButtonPanel: true, yearRange: "c-99:c+99", minDate: "+3d;", maxDate: "+365d;" });</p>
<p> </p>
<p>});</p>
<p> </script></p>
<p></section></p>
<p><!-- } 게시물 작성/수정 끝 --></p>
<p></article></p>
<p> </p>
<p>
여기에서 저 부분을 글쓰기 페이지에서 날짜 추가, 프로젝트 인원 추가 등 라이브러리 기능을 사용하여 수정 후 상세페이제에서 수정한 간트가 그대로 나오게 할 수 있을까요..?

댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
2년 전
뷰파일에 위의 쓰기파일에서 적용한거처럼 간트적용해서 설정하면 나오지 않을까요? ^^?
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택