<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>그누위즈 - 웹 사이트 제작 전문 &amp;gt; 커뮤니티 &amp;gt; 정보공유</title>
<link>https://gnuwiz.com/tip_tech</link>
<language>ko</language>
<description>정보공유 (2025-08-07 09:32:29)</description>

<item>
<title>Google 도구상자 Dig를 활용한 도메인 CNAME확인</title>
<link>https://gnuwiz.com/tip_tech/353</link>
<description><![CDATA[<p><span style="font-family:'Noto Sans KR';font-size:12pt;">Email로 도메인 소유인증이 불가할 때 DNS 방식으로 소유인증을 진행할 수 있습니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">DNS 소유인증방식은 해당 도메인의 네임서버에 CNAME 레코드를 추가하여 인증받는 방식입니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">* AWS Route 53 기준으로 작성된 가이드 입니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">네임서버의 설정방법은 모두 다르므로 해당 네임서버 담당자에게 문의하시길 바랍니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">우선 해당 도메인 DNS CNAME 레코드 정보를 확인합니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">CNAME 내용중 파란색 영역이 레코드 이름, 빨간색 영역이 값 입니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><img src="https://gnuwiz.com/data/editor/2508/0b51e69116241f2caa5c34489a3977f9_1754526912_9962.png" title="0b51e69116241f2caa5c34489a3977f9_1754526912_9962.png" alt="0b51e69116241f2caa5c34489a3977f9_1754526912_9962.png" /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">CNAME 레코드를 설정하셨다면 제대로 설정이 되었는지 확인을 해봅니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">CNAME 확인을 위해 Google 도구상자 Dig를 이용합니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><a href="https://toolbox.googleapps.com/apps/dig/#CNAME/" rel="nofollow">https://toolbox.googleapps.com/apps/dig/#CNAME/</a></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">* 네임서버의 TTL 설정에 의해 확인까지 최대 48시간까지도 소요될 수 있습니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">Dig의 이름 입력하는 곳에 위 파란색 영역 + 도메인까지 복사하여 입력합니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">만약 적용이 안되었다면 Record not found! 라는 메시지가 표시됩니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><img src="https://gnuwiz.com/data/editor/2508/0b51e69116241f2caa5c34489a3977f9_1754526926_8911.png" title="0b51e69116241f2caa5c34489a3977f9_1754526926_8911.png" alt="0b51e69116241f2caa5c34489a3977f9_1754526926_8911.png" /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">만약 적용이 정상적으로 완료되었다면 TARGET 값에 정상적으로 표시됩니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><img src="https://gnuwiz.com/data/editor/2508/0b51e69116241f2caa5c34489a3977f9_1754526940_6458.png" title="0b51e69116241f2caa5c34489a3977f9_1754526940_6458.png" alt="0b51e69116241f2caa5c34489a3977f9_1754526940_6458.png" /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">이제 기다리시면 발급이 진행됩니다. 대부분 1시간 이내에 도메인 소유인증이 완료됩니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">하지만 위와 같이 설정했지만 도메인 소유인증이 안되는 경우가 있습니다.</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;"><br /></span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">도메인 소유인증이 안될 때 확인</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">1. 혹시 CNAME 레코드가 아닌 A 또는 TXT 레코드에 설정되어 있나요?</span></p><p><span style="font-family:'Noto Sans KR';font-size:12pt;">2. TTL이 커서 갱신이 오래 걸릴 수 있어요. (권장: TTL 600)</span></p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2025-08-07T09:32:29+09:00</dc:date>
</item>


<item>
<title>[기능] HOOK을 사용하여 사이드 뷰의 항목을 추가하는 방법</title>
<link>https://gnuwiz.com/tip_tech/352</link>
<description><![CDATA[<p>그누보드에서는 관리자의 회원관리 페이지, 게시판 등에서</p><p>작성자를 클릭하면, 사이드 뷰가 나타납니다.</p><p><img src="https://gnuwiz.com/data/editor/2505/3f105dd3d13392d6eb9307600924c811_1747701552_722.png" title="3f105dd3d13392d6eb9307600924c811_1747701552_722.png" alt="3f105dd3d13392d6eb9307600924c811_1747701552_722.png" /><br style="clear:both;" /> </p><p>이때 나타나는 사이드 뷰를 원본 코드 수정없이 항목을 추가하는 방법입니다.</p><p><br /></p><p>/extend/user.config.php 파일에 아래의 내용을 추가합니다.</p><p>[code]</p><p>// 사이드 뷰 후킹</p><p>add_replace('member_sideview_items', 'member_sideview_item', 1, 2);</p><p><br /></p><p>if(!function_exists('member_sideview_item')){</p><p>    function member_sideview_item($sideview, $data = []){</p><p>        global $is_admin;</p><p><br /></p><p>        if ($is_admin &amp;&amp; isset($data['mb_id'])) {</p><p>            $sideview['menus']['service'] = '&lt;a href="'.G5_PAY_ADMIN_URL.'/servicelist.php?sfl=mb_id&amp;stx='.$data['mb_id'].'"&gt;이용내역확인&lt;/a&gt;';</p><p>            $sideview['menus']['ip_check'] = '&lt;a href="'.G5_ADMIN_URL.'/view.php?call=login_history_list&amp;ltype=&amp;sfl=login_id&amp;stx='.$data['mb_id'].'" target="_blank"&gt;IP내역확인&lt;/a&gt;';</p><p>        }</p><p><br /></p><p>        return $sideview;</p><p>    }</p><p>}</p><p>[/code]</p><p><br /></p><p>위와 같이 코드를 추가하면, 사이드 뷰에 항목이 추가됩니다.</p><p><img src="https://gnuwiz.com/data/editor/2505/3f105dd3d13392d6eb9307600924c811_1747701654_7468.png" title="3f105dd3d13392d6eb9307600924c811_1747701654_7468.png" alt="3f105dd3d13392d6eb9307600924c811_1747701654_7468.png" /><br style="clear:both;" /> </p><p><br /></p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2025-05-20T09:40:58+09:00</dc:date>
</item>


<item>
<title>[기능] HOOK을 사용하여 게시판 정렬을 여분필드로 하는 방법</title>
<link>https://gnuwiz.com/tip_tech/351</link>
<description><![CDATA[<p>기존의 그누보드의 게시판 리스트 정렬 필드는 아래와 같이 일부 한정으로 되어있습니다.</p><p><img src="https://gnuwiz.com/data/editor/2505/3f105dd3d13392d6eb9307600924c811_1747701347_245.png" title="3f105dd3d13392d6eb9307600924c811_1747701347_245.png" alt="3f105dd3d13392d6eb9307600924c811_1747701347_245.png" /></p><p><br /></p><p>이 정렬 필드를 확장 해야할 경우</p><p>/extend/user.config.php 파일에 아래의 내용을 추가해줍니다.</p><p>[code]</p><p>add_replace('get_board_sort_fields', 'add_board_sort_fields', 1, 1);</p><p><br /></p><p>function add_board_sort_fields($sorting) {</p><p>    $sorting[] = array('wr_1 asc, wr_num, wr_reply', '여분필드 1 오름차순');</p><p>    $sorting[] = array('wr_1 desc, wr_num, wr_reply', '여분필드 1 내림차순');</p><p>    $sorting[] = array('wr_2 asc, wr_num, wr_reply', '여분필드 2 오름차순');</p><p>    $sorting[] = array('wr_2 desc, wr_num, wr_reply', '여분필드 2 내림차순');</p><p>    $sorting[] = array('wr_3 asc, wr_num, wr_reply', '여분필드 3 오름차순');</p><p>    $sorting[] = array('wr_3 desc, wr_num, wr_reply', '여분필드 3 내림차순');</p><p>    $sorting[] = array('wr_4 asc, wr_num, wr_reply', '여분필드 4 오름차순');</p><p>    $sorting[] = array('wr_4 desc, wr_num, wr_reply', '여분필드 4 내림차순');</p><p>    $sorting[] = array('wr_5 asc, wr_num, wr_reply', '여분필드 5 오름차순');</p><p>    $sorting[] = array('wr_5 desc, wr_num, wr_reply', '여분필드 5 내림차순');</p><p>    $sorting[] = array('wr_6 asc, wr_num, wr_reply', '여분필드 6 오름차순');</p><p>    $sorting[] = array('wr_6 desc, wr_num, wr_reply', '여분필드 6 내림차순');</p><p>    $sorting[] = array('wr_7 asc, wr_num, wr_reply', '여분필드 7 오름차순');</p><p>    $sorting[] = array('wr_7 desc, wr_num, wr_reply', '여분필드 7 내림차순');</p><p>    $sorting[] = array('wr_8 asc, wr_num, wr_reply', '여분필드 8 오름차순');</p><p>    $sorting[] = array('wr_8 desc, wr_num, wr_reply', '여분필드 8 내림차순');</p><p>    $sorting[] = array('wr_9 asc, wr_num, wr_reply', '여분필드 9 오름차순');</p><p>    $sorting[] = array('wr_9 desc, wr_num, wr_reply', '여분필드 9 내림차순');</p><p>    $sorting[] = array('wr_10 asc, wr_num, wr_reply', '여분필드 10 오름차순');</p><p>    $sorting[] = array('wr_10 desc, wr_num, wr_reply', '여분필드 10 내림차순');</p><p>    $sorting[] = array('wr_comment_reply asc, wr_num, wr_reply', 'wr_co_re 오름차순');</p><p>    $sorting[] = array('wr_comment_reply desc, wr_num, wr_reply', 'wr_co_re 내림차순');</p><p>    $sorting[] = array('wr_parent asc', 'wr_parent 오름차순');</p><p>    $sorting[] = array('wr_parent desc', 'wr_parent 내림차순');</p><p>    $sorting[] = array('wr_datetime asc, wr_parent', '부모날짜 이전것 부터');</p><p>    $sorting[] = array('wr_datetime desc, wr_parent', '부모날짜 최근것 부터');</p><p><br /></p><p>    return $sorting;</p><p>}</p><p>[/code]</p><p><br /></p><p>위와 같이 코드를 추가하면, 새롭게 정렬할 필드가 추가됩니다.</p><p><img src="https://gnuwiz.com/data/editor/2505/3f105dd3d13392d6eb9307600924c811_1747701417_0062.png" title="3f105dd3d13392d6eb9307600924c811_1747701417_0062.png" alt="3f105dd3d13392d6eb9307600924c811_1747701417_0062.png" /><br style="clear:both;" /> </p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2025-05-20T09:37:00+09:00</dc:date>
</item>


<item>
<title>IP를 기반으로 국가 정보 무료 API</title>
<link>https://gnuwiz.com/tip_tech/350</link>
<description><![CDATA[<p>[code]</p><p>/**</p><p> * ip2c.org API를 이용해 IP 주소로 국가 정보를 조회합니다.</p><p> *</p><p> * @param string $ip 조회할 IP 주소</p><p> * @return array 결과 배열 (성공 시 country_code2, country_code3, country_name 포함 / 실패 시 status = 0)</p><p> */</p><p>function ip2c_get_country_info($ip) {</p><p>    $url = "<a href="https://ip2c.org/%7B$ip%7D" rel="nofollow">https://ip2c.org/{$ip}</a>";</p><p><br /></p><p>    $ch = curl_init();</p><p>    curl_setopt($ch, CURLOPT_URL, $url);</p><p>    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p><p>    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 타임아웃 설정</p><p>    curl_setopt($ch, CURLOPT_TIMEOUT, 5);</p><p>    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL 인증 무시</p><p><br /></p><p>    $response = curl_exec($ch);</p><p>    curl_close($ch);</p><p><br /></p><p>    if (!$response) {</p><p>        return [</p><p>            'status' =&gt; 0,</p><p>            'country_code2' =&gt; '',</p><p>            'country_code3' =&gt; '',</p><p>            'country_name' =&gt; '',</p><p>            'raw' =&gt; ''</p><p>        ];</p><p>    }</p><p><br /></p><p>    $parts = explode(';', trim($response));</p><p>    return [</p><p>        'status' =&gt; (int)($parts[0] ?? 0),</p><p>        'country_code2' =&gt; $parts[1] ?? '',</p><p>        'country_code3' =&gt; $parts[2] ?? '',</p><p>        'country_name' =&gt; $parts[3] ?? '',</p><p>        'raw' =&gt; $response</p><p>    ];</p><p>}</p><p><br /></p><p>$ip = $_SERVER['REMOTE_ADDR']; // 또는 테스트용: '8.8.8.8'</p><p>$info = ip2c_get_country_info($ip);</p><p>print_r2($info);</p><p>if ($info['status'] === 1) {</p><p>    echo "국가: {$info['country_name']} ({$info['country_code2']})";</p><p>} else {</p><p>    echo "국가 정보 조회 실패";</p><p>}</p><p>[/code]</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2025-05-13T11:14:46+09:00</dc:date>
</item>


<item>
<title>국내 패널사이트들 진실들과 해외패널사이트정보들</title>
<link>https://gnuwiz.com/tip_tech/349</link>
<description><![CDATA[<div class="ABA-view-body ABA-article-contents">
<h5><span style="font-size:12px;font-family:'돋움', Dotum;">패널사이트란</span></h5><p><span style="font-family:'돋움', Dotum;">인스타 유튜브 등 다양한 서비스들을 판매하는 사이트를</span></p><p><span style="font-family:'돋움', Dotum;">'패널사이트' 라고 부르며 많은 소비자들이 사용하고있다.</span></p><p><br /></p><h5><b><span style="font-family:'돋움', Dotum;">국내 패널사이트 마진폭리 진실들</span></b></h5><p><span style="font-family:'돋움', Dotum;">일반소비자들은 대부분 한국에 패널사이트를 사용한다.</span></p><p><span style="font-family:'돋움', Dotum;">접근성이 쉽거나 또는 정보가 없기에 비싼값에 서비스를 구매한다.</span></p><p><span style="font-family:'돋움', Dotum;">국내패널사이트 구조는 저렴하게 서비스를 판매하는 해외패널사이트에서</span></p><p><span style="font-family:'돋움', Dotum;">본인 패널사이트로 API를 연동해 마진을 붙여 고객에게 판매하는 방식이다</span></p><p><br /></p><p><b><span style="font-family:'돋움', Dotum;">위 말은 서비스품질이나 A/S 이탈율과 같은 부분들을 해결할 능력이 없다</span></b></p><p><b><span style="font-family:'돋움', Dotum;"> 자체서비스가 아닌 물건을 가져다 파는 대행서비스업에 고질적인 문제이기도하다</span></b></p><p><b><br /></b></p><p><b><span style="font-family:'돋움', Dotum;">[SMMKING]</span></b><b><span style="font-family:'돋움', Dotum;"> </span></b><a href="https://smmkings.com/" target="_blank" rel="nofollow noreferrer noopener"><b><span style="font-family:'돋움', Dotum;">https://smmkings.com/</span></b></a></p><p><img src="https://gnuwiz.com/data/editor/2411/376afdcd7542e69f187873f13683a551_1732602050_4042.png" title="376afdcd7542e69f187873f13683a551_1732602050_4042.png" alt="376afdcd7542e69f187873f13683a551_1732602050_4042.png" /><br style="clear:both;" /><br /></p><pre><span style="font-family:'돋움', Dotum;">대표적으로 많이 알려져있는 해외패널사이트들중에서 'SMMKING' 한국인팔로워는</span><b><span style="font-family:'돋움', Dotum;"> 1,000명 당 평균 13,000원</span></b><span style="font-family:'돋움', Dotum;">이다</span><br /><span style="font-family:'돋움', Dotum;">국내에서는 </span><b><span style="font-family:'돋움', Dotum;">한국인팔로워 1,000명 당 100,000원부터 180,000원까지</span></b><span style="font-family:'돋움', Dotum;"> 1000% 이상에 마진폭리를 취하고 있는 현실이다</span></pre><p><span style="font-family:'돋움', Dotum;">인스타그램 외에 유튜브 틱톡 페이스북 트래픽 등 다양한 서비스들이 위와 비슷한 마진률로 국내에서 팔리며</span></p><p><span style="font-family:'돋움', Dotum;">해외정보가 없거나 어려움을 느끼는 소비자들은 마케팅예산에 70% 이상을 대행사들 용돈으로 챙겨주는 샘이다</span></p><p><br /></p><p><b><span style="font-family:'돋움', Dotum;">'나는 모든걸 알고있다' l ' 그런건 존재하지않는다' l '내가 아는선에서는 말도안된다' l '사기다' l '해외는 어렵다'</span></b></p><p><b><span style="font-family:'돋움', Dotum;">이러한 생각들과 고집들이 어쩌면 소비자들이 접근성이 쉬운 국내사이트들에서 알면서도 당하는 이유일 것이다</span></b></p><p><b><span style="font-family:'돋움', Dotum;">내가 지금까지 모르고 당했던것들을 인정하기 싫은 심리 또는 알더라도 접근성이 편해 사용할수도 있다고 생각한다</span></b></p><p><br /></p><p><b><span style="font-family:'돋움', Dotum;">[SMMSAVE] </span></b><a href="https://smmsave.com/" target="_blank" rel="nofollow noreferrer noopener"><b><span style="font-family:'돋움', Dotum;">https://smmsave.com/</span></b></a></p><p><img src="https://gnuwiz.com/data/editor/2411/376afdcd7542e69f187873f13683a551_1732602068_2814.png" title="376afdcd7542e69f187873f13683a551_1732602068_2814.png" alt="376afdcd7542e69f187873f13683a551_1732602068_2814.png" /><br style="clear:both;" /><br /></p><pre><span style="font-family:'돋움', Dotum;">리워드방식이 막히면서 소수에 플레이스 업체들이 사용하는 패널사이트로 알려져있는 'SMMSAVE' </span><b><span style="font-family:'돋움', Dotum;">1페이지 상단노출         1페이지 보장이 45만원정도에</span></b><span style="font-family:'돋움', Dotum;"> 형성되어있다 하지만 위 또한 국내업체들은 </span><b><span style="font-family:'돋움', Dotum;">200%</span></b><span style="font-family:'돋움', Dotum;"> 그 이상에 마진을 남겨판매하고있다</span></pre><p><b><br /></b></p><p><b><span style="font-family:'돋움', Dotum;">'그렇다면 국내패널사이트를 사용하는것이 바보인가'</span></b></p><p><span style="font-family:'돋움', Dotum;">나는 전혀 그렇게 생각하지않는다 실제로 많은 소비자들은 해외패널사이트 정보를</span></p><p><span style="font-family:'돋움', Dotum;">알고 사용하는 소비자들도 있으나 알고도 국내패널사이트들을 이용하는 고객들이 많다</span></p><p><span style="font-family:'돋움', Dotum;">접근성과 간편한 인터페이스 세금처리 편리한 포인트충전 등을 뽑을 수 있으며 그렇기에</span></p><p><span style="font-family:'돋움', Dotum;">나는 어떤걸 사용하는것이 맞다 아니다가 아닌 소비자가 알고 직접 선택할 수 있는 기회를</span></p><p><span style="font-family:'돋움', Dotum;">제공하고 싶었다 모르고 쓰는것과 알고 쓰는것은 천차만별이고 여러분들이 선택하길 바란다</span></p><div>
</div>
</div>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-11-26T15:22:12+09:00</dc:date>
</item>


<item>
<title>이메일 셀렉트 박스 선택</title>
<link>https://gnuwiz.com/tip_tech/348</link>
<description><![CDATA[<p> <br /></p><p><br /></p><p>[code]</p><p>&lt;?php</p><p>// PHP의 전체 이메일 변수를 가공한다.</p><p>$wr_email = 'test@naver.com';</p><p>$email_parts = explode('@', $wr_email);</p><p>$email_local = $email_parts[0];</p><p>$email_domain = isset($email_parts[1]) ? $email_parts[1] : '';</p><p>?&gt;</p><p><br /></p><p>&lt;label for="wr_email" class="sound_only"&gt;이메일&lt;/label&gt;</p><p>&lt;div class="email-group"&gt;</p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>&lt;input type="text" id="wr_email1" name="wr_email1" placeholder="이메일을 입력하세요." value="&lt;?php echo $email_local; ?&gt;" required&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>&lt;input type="text" id="wr_email2" name="wr_email2" placeholder="메일주소를 입력하세요." value="&lt;?php echo $email_domain; ?&gt;" required&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>&lt;div class="sel-wrap"&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>&lt;select id="email_select"&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="" &lt;?php echo get_selected($email_domain, ""); ?&gt;&gt;메일계정 선택&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="gmail.com" &lt;?php echo get_selected($email_domain, "gmail.com"); ?&gt;&gt;gmail.com&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="naver.com" &lt;?php echo get_selected($email_domain, "naver.com"); ?&gt;&gt;naver.com&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="daum.net" &lt;?php echo get_selected($email_domain, "daum.net"); ?&gt;&gt;daum.net&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="hanmail.net" &lt;?php echo get_selected($email_domain, "hanmail.net"); ?&gt;&gt;hanmail.net&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="nate.com" &lt;?php echo get_selected($email_domain, "nate.com"); ?&gt;&gt;nate.com&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>&lt;option value="custom"&gt;직접 입력&lt;/option&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>&lt;/select&gt;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>&lt;/div&gt;</span></p><p>&lt;/div&gt;</p><p><br /></p><p>&lt;script&gt;</p><p>// 이메일 셀렉트</p><p>document.addEventListener('DOMContentLoaded', function() {</p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>var emailDomain = document.getElementById('wr_email2');</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>var select = document.getElementById('email_select');</span></p><p><br /></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>// 선택된 옵션에 따라 초기 읽기 전용 상태 설정</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>if (select.value === 'custom' || select.value === '') {</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>emailDomain.readOnly = false;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>} else {</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>emailDomain.readOnly = true;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>}</span></p><p><br /></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>// 셀렉트 박스 변경 시 이벤트 리스너 추가</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>select.addEventListener('change', function() {</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>if (this.value === 'custom' || this.value === '') {</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>emailDomain.value = '';</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>emailDomain.readOnly = false;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>} else {</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>emailDomain.value = this.value;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">			</span>emailDomain.readOnly = true;</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">		</span>}</span></p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>});</span></p><p>});</p><p>&lt;/script&gt;</p><p>[/code]</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-08-07T16:20:29+09:00</dc:date>
</item>


<item>
<title>Nas에서 웹 서버와 Rsync를 사용하여 소스코드 동기화 설정(centos7)</title>
<link>https://gnuwiz.com/tip_tech/346</link>
<description><![CDATA[<p>/etc/rsyncd.conf 파일을 다음과 같이 설정한다.<br /></p><p>[code]</p><p># /etc/rsyncd: configuration file for rsync daemon mode</p><p><br /></p><p># See rsyncd.conf man page for more options.</p><p><br /></p><p># configuration example:</p><p><br /></p><p># uid = nobody</p><p># gid = nobody</p><p># use chroot = yes</p><p># max connections = 4</p><p># pid file = /var/run/rsyncd.pid</p><p># exclude = lost+found/</p><p># transfer logging = yes</p><p># timeout = 900</p><p># ignore nonreadable = yes</p><p># dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2</p><p><br /></p><p># [ftp]</p><p>#        path = /home/ftp</p><p>#        comment = ftp export area</p><p><br /></p><p># 그누위즈 홈페이지 소스를 nas와 동기화 하려고함.</p><p>uid = FTP유저명</p><p>gid = FTP유저명</p><p>use chroot = yes</p><p>max connections = 4</p><p>pid file = /var/run/rsyncd.pid</p><p>[mymodule]</p><p>    path = /home/FTP유저의 디렉터리명</p><p>    comment = Your Rsync Module</p><p>    read only = no</p><p>    list = yes</p><p>    auth users = FTP유저명</p><p>    secrets file = /etc/rsyncd.secrets</p><p>[/code]<br /></p><p><br /></p><p>/etc/rsyncd.secrets 파일을 아래와 같이 설정한다.</p><p>[code]</p><p>FTP유저명:FTP접속 패스워드<br /></p><p>[/code]</p><p><br /></p><p>이후 rsyncd.secrets 파일의 커미션을 600으로 변경한다</p><p>[code]</p><p>chmod 600 rsyncd.secrets<br /></p><p>[/code]</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-05-17T13:57:12+09:00</dc:date>
</item>


<item>
<title>홈페이지 디자인 참고 사이트</title>
<link>https://gnuwiz.com/tip_tech/345</link>
<description><![CDATA[<p>1. 디비컷 : <a href="https://www.dbcut.com/" rel="nofollow">https://www.dbcut.com/</a></p><p>웹사이트 평가 서비스</p><p><br /></p><p>2. 굿디자인웹 : <a href="https://www.gdweb.co.kr/main/" rel="nofollow">https://www.gdweb.co.kr/main/</a></p><p>웹 사이트 디자인 모음 서비스</p><p><br /></p><p>3. 반응형 웹DB : <a href="http://rwdb.kr/" rel="nofollow">http://rwdb.kr/</a></p><p>반응형 홈페이지 웹사이트만 모은 서비스</p><p><br /></p><p>4. 핀터레스트 디자인 : <a href="https://www.pinterest.co.kr/search/pins/?q=hamepage&amp;rs=typed" rel="nofollow">https://www.pinterest.co.kr/search/pins/?q=hamepage&amp;rs=typed</a></p><p>이미지 SNS 서비스 중 웹디자인 모음</p><p><br /></p><p>5. 비핸스 : <a href="https://www.behance.net/" rel="nofollow">https://www.behance.net/</a></p><p>타 프리랜서 작업물 열람 및 공유 서비스</p><p><br /></p><p>6. 드리블 : <a href="https://dribbble.com/" rel="nofollow">https://dribbble.com/</a></p><p>타 프리랜서 작업물 열람 및 공유 서비스</p><p><br /></p><p>7. 어우워드 : <a href="https://www.awwwards.com/" rel="nofollow">https://www.awwwards.com/</a></p><p>CSS가 잘 활용된 홈페이지 모음 서비스</p><p><br /></p><p>8. 콜렉튜아이 : <a href="https://collectui.com/" rel="nofollow">https://collectui.com/</a></p><p>페이지별, 기능별, 서비스별 디자인을 따로 모아 보여줌</p><p><br /></p><p>9. 씨에스에스 디자인 어워드 : <a href="https://www.cssdesignawards.com/" rel="nofollow">https://www.cssdesignawards.com/</a></p><p>CSS 활용 홈페이지 모음 서비스</p><p><br /></p><p>10. 사이트인스파이어 : <a href="https://www.siteinspire.com/" rel="nofollow">https://www.siteinspire.com/</a></p><p>홈페이지 타입과 스타일별로 분류해서 모아 놓음</p><p><br /></p><p>11. 에스5 스타일 : <a href="https://bm.s5-style.com/" rel="nofollow">https://bm.s5-style.com/</a></p><p>콘셉트 별로 여러 형태 홈페이지 모음</p><p><br /></p><p>12. 씨에스에스위너 : <a href="https://www.csswinner.com/" rel="nofollow">https://www.csswinner.com/</a></p><p>CSS 활용이 잘 된 사이트 평가 및 순위</p><p><br /></p><p>13. 코디하우스 : <a href="https://codyhouse.co/" rel="nofollow">https://codyhouse.co/</a></p><p>웹디자인과 어울린 콤퍼넌트 프레임워크 등 모음</p><p><br /></p><p>14. 노트폴리오 : <a href="https://notefolio.net/" rel="nofollow">https://notefolio.net/</a></p><p>각종 새로운 스타일의 포트폴리오 레퍼런스 서비스</p><p><br /></p><p>15. 라우스 : <a href="https://www.loud.kr/contest/list/end" rel="nofollow">https://www.loud.kr/contest/list/end</a></p><p>디자인별 공모전을 통해 보는 다른 디자이너들 아이디어</p><p><br /></p><p>16. 나이스에브리나이스 : <a href="https://www.niceverynice.com/" rel="nofollow">https://www.niceverynice.com/</a></p><p>UI나 UX 등 레퍼런스가 많은 컬렉션 서비스</p><p><br /></p><p>17. 디지털실크 : <a href="https://www.digitalsilk.com/" rel="nofollow">https://www.digitalsilk.com/</a></p><p>각종 에이전시 브랜드 디자인을 보는 컬렉션</p><p><br /></p><p>18. 닷틀로직 : <a href="https://www.dotlogics.com/" rel="nofollow">https://www.dotlogics.com/</a></p><p>해외 쇼핑몰 디자인 전문 회사 포트폴리오</p><p><br /></p><p>19. 스카이디아 : <a href="https://skydea.co/" rel="nofollow">https://skydea.co/</a></p><p>UI 배치별, 콘셉트별 디자인을 하는 회사 포트폴리오</p><p><br /></p><p>20. 더퐈 : <a href="https://thefwa.com/" rel="nofollow">https://thefwa.com/</a></p><p>각종 사이트 디자인 수집 및 어워드, 평가, 순위</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-05-14T09:01:14+09:00</dc:date>
</item>


<item>
<title>[기능] 게시판 목록 정렬방법 추가하기 (Hook버전)</title>
<link>https://gnuwiz.com/tip_tech/344</link>
<description><![CDATA[<p><img src="https://gnuwiz.com/data/editor/2405/2b24fd4c3abdfe74b797131640bf6cc5_1715060258_0088.png" title="2b24fd4c3abdfe74b797131640bf6cc5_1715060258_0088.png" alt="2b24fd4c3abdfe74b797131640bf6cc5_1715060258_0088.png" /></p><p><br /></p><p>여분필드로 정렬을 할 필요가 있어, 기존엔 [ 그누보드/lib/get_data.lib.php ]를 직접 수정해서 쓰다가,</p><p>Hook을 사용하여 코어를 건드리지 않는 방법으로 바꾸었습니다.</p><p><br /></p><p>[ 그누보드/extend/ ] 디렉토리 안에 다음 내용으로 php 파일을 추가하시면 됩니다.</p><p>[code]</p><p>&lt;?php if (!defined('_GNUBOARD_')) exit;</p><p><br /></p><p>add_replace('get_board_sort_fields', function( $sorting ){</p><p>    $sorting[] = array('wr_1+0 asc', '여분필드 1 오름차순');</p><p>    $sorting[] = array('wr_1+0 desc', '여분필드 1 내림차순');</p><p>    //같은 방식으로 계속 추가 가능</p><p><br /></p><p>    return $sorting;</p><p>}, G5_HOOK_DEFAULT_PRIORITY, 1);</p><p>[/code]</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-05-07T14:38:26+09:00</dc:date>
</item>


<item>
<title>[관리] 게시판에서 셀렉트박스로 게시물 더보기 기능</title>
<link>https://gnuwiz.com/tip_tech/343</link>
<description><![CDATA[<p><img src="https://gnuwiz.com/data/editor/2404/5830b9ab467084f25155125a3773cbc7_1713838617_3876.png" title="5830b9ab467084f25155125a3773cbc7_1713838617_3876.png" alt="5830b9ab467084f25155125a3773cbc7_1713838617_3876.png" /><br style="clear:both;" /> </p><p><br /></p><p>// user.config.php 파일에 추가</p><p>[code]</p><p>&lt;?php</p><p>define('BBS_PAGE_ROWS_ARR', array(15, 30, 50, 100, 200)); // 게시물 더보기 배열</p><p>?&gt;</p><p>[/code]</p><p><br /></p><p>// 게시판 스킨/list.skin.php 파일에 추가</p><p>[code]</p><p>&lt;select id="items_per_page"&gt;</p><p>    &lt;?php foreach(BBS_PAGE_ROWS_ARR as $value){ ?&gt;</p><p><span style="white-space:normal;"><span style="white-space:pre;">	</span>&lt;option value='&lt;?php echo $value; ?&gt;' &lt;?php echo get_selected($bo_page_rows, $value)?&gt;&gt;&lt;?php echo $value; ?&gt; 개씩 보기&lt;/option&gt;</span></p><p>    &lt;?php } ?&gt;</p><p>&lt;/select&gt;</p><p><br /></p><p>&lt;script&gt;</p><p>document.getElementById('items_per_page').addEventListener('change', function() {</p><p>    const selected = this.value;</p><p>    const urlParams = new URLSearchParams(window.location.search);</p><p>    urlParams.set('bo_page_rows', selected);</p><p>    window.location.href = window.location.pathname + '?' + urlParams.toString();</p><p>});</p><p>&lt;/script&gt;</p><p>[/code]</p><p><br /></p><p>// bbs/list.php 파일에 추가</p><p>[code]</p><p>&lt;?php</p><p>// 기존 코드 부분</p><p>if(G5_IS_MOBILE) {</p><p>    $page_rows = $board['bo_mobile_page_rows'];</p><p>    $list_page_rows = $board['bo_mobile_page_rows'];</p><p>} else {</p><p>    $page_rows = $board['bo_page_rows'];</p><p>    $list_page_rows = $board['bo_page_rows'];</p><p>}</p><p><br /></p><p>// 게시물 더보기 (gnuwiz)</p><p>if (isset($bo_page_rows) &amp;&amp; $bo_page_rows) {</p><p>    $page_rows = $bo_page_rows;</p><p>    $list_page_rows = $bo_page_rows;</p><p>}</p><p>[/code]</p>]]></description>
<dc:creator>그누위즈</dc:creator>
<dc:date>2024-04-23T11:17:00+09:00</dc:date>
</item>

</channel>
</rss>
