매뉴얼

친절한 상담, 빠른 답변

견적문의, 기능상담 등 모든 궁금증을 해결해 드립니다.

Page : Home 고객지원 매뉴얼

총 201건, 5/21 페이지

[디자인팜 1.0] [200% 활용방법] 자주 사용하는 레이아웃 및 디자인을 템플릿팜에 추가 하기

* 본 강좌는 프리미엄 라이센스가 있는 계정에서만 작동되는 기능이므로, 라이센스가 없는 계정은 안보셔도 됩니다.

 

이전 강좌에서 직접 만든 디자인을 기본 컨텐츠박스에 추가 하는 방법에 대해서 알아봤습니다.

사용해보시면서 느끼셨겠지만 기본컨텐츠박스는 하나의 레이아웃 또는 컨텐츠만 등록 가능하기 때문에 약간 제한이 있을수 있습니다.

 

예를 들어 홈페이지 만들다 보면 늘~ 똑같이 반복 작업 해야 하는 부분이  상단네비게이션 부분 입니다.

보통 상단 네비게이션은 아래와 같이 다양한 컨텐츠로 구성되어 있습니다.

 - 2칸짜리 레이아웃

 - "ㅏ" 형태의 레이아웃

 - 로고 이미지

 - 네비게이션 프로그램 호출

 - 간편 로그인 박스

 

컨텐츠가 최소 못해도 5가지이상 될겁니다. 이것을 컨텐츠 박스에 추가하려면 각각 등록 해야 하므로 5번 등록 해야 합니다.

반대로 사용할때도 5번 가져와서 위치 이동해줘야 하는 큰단점이 있죠.

 

이런점을 보안하기 위해 템플릿팜이라는 기능이 있습니다.

아래 예제를 통해 추가설명드리겠습니다.

 

1. 디자인팜을 통해 아래와 같이 네비게이션을 만듭니다.

만드는 방법에 대해서는 아래 매뉴얼을 참고 해서 직접 만들어 보시기 바랍니다.

- 컨텐츠을 원하는데로 직접 만들기 : http://wdev.good-web.co.kr/bbs/faq/4324

- 레이아웃을 원하는데로 직접 만들기 : http://wdev.good-web.co.kr/bbs/faq/4387

 

위 상단 네비게이션은 레이아웃안에 로고 및 네비게이션 프로그램이 들어가 있는데 이것을 [묶음A]라고 가정하고,

그 밑에 레이아웃1개 + 빨간선이 있는데 이것을 [묶음B]라고 가정 하겠습니다.

 

 

2. [묶음A]를 선택하고 옵션박스에서 "마스터 컨텐츠 관리" 버튼을 클릭 합니다.

 

아래와 같은 팝업창이 열리면, 컨텐츠유형을  "템플릿팜"으로 변경 후 등록 합니다.

 

방금 등록한 컨텐츠는 [묶음A]만 등록 했으며, 실제로는 [묶음B]는 등록 되지 않았습니다.

 

3. [묶음B]를 선택하고, 옵션 박스에서 "마스터 컨텐츠 관리" 버튼을 클릭 합니다.

 

그럼 아까봤던 템플릿팜 등록 화면이 다시 나타납니다.

여기서 유심히 보셔야 할 부분이 있습니다.

[묶음A] 등록할때는 새페이지로 추가 했지만, [묶음B]는 [묶음A] 뒤 쪽으로 붙어야 하므로 새페이지가 아니라 [묶음A에 추가]를 선택 해야 합니다.

 

이렇게 등록 하고 나면 템플릿 팜에 어떻게 등록 되었는지 확인해 봅시다.

 

4. 디자인팜에서 새페이지를 열어주세요.

 

왼쪽 메뉴바에서 "템플릿팜"을 클릭 합니다.

 

방금 등록한템플릿 팜이 보이네요.

템플릿 팜은 미리보기가 있어야 사용하기 편해지므로, 꼭 미리보기 화면을 캡쳐해서 첨부해주세요 ^^

 

[가져오기]버튼을 클릭 합니다.

위에서 작업했던 네비게이션이 똑같이 셋팅되는것을 알수 있습니다.

 

5. 이미 등록된 템플릿팜 수정/삭제 하는 방법에 대해서 알려드리겠습니다.

[템플릿팜]을 실행하면, 우측 상단에 [마스터 템플릿 관리] 버튼이 있습니다. 클릭하세요.

 

아래와 같이 새창이 열리며, 여기서 템플릿 정보 수정 및 삭제가 가능 합니다.

위에서 등록 했던 네비게이션이 보이시죠?

 


 

이렇게 해서 모든 계정이 템플릿팜을 통해서 쉽게 네이게이션을 만들수 있게 되었습니다.

필자는 네비게이션을 예를들어 설명 드렸으나, 사실 실무에서 필요로하는 컨텐츠가 정말 무궁무진하죠.

이런 컨텐츠를 모두 템플릿팜에 등록해 놓는다면, 차 후 홈페이지 제작은 마우스 클릭만으로 쉽고, 빠르게 제작 할수 있게 됩니다.

 

수고하셨습니다.

[디자인팜 1.0] [200% 활용방법] 자주 사용하는 페이지를 기본 페이지로 등록 하기

* 본 강좌는 프리미엄 라이센스가 있는 계정에서만 작동되는 기능이므로, 라이센스가 없는 계정은 안보셔도 됩니다.

 

홈페이지 만들다 보면 회사 소개, 오시는길, 약관, 회원가입등 매번 같은 페이지가 반복되는 경우가 많습니다.

이런 페이지를 기본 페이지로 등록 하는 방법에 대해서 알아 보겠습니다.

 

1. 디자인팜에서 빈페이지를 만듭니다.

 

 

2. 필자는 "오시는길"을 직접 만들어봤습니다.

만드는 방법에 대해서는 아래 매뉴얼을 참고 해서 직접 만들어 보시기 바랍니다.

- 컨텐츠을 원하는데로 직접 만들기 : http://wdev.good-web.co.kr/bbs/faq/4324

- 레이아웃을 원하는데로 직접 만들기 : http://wdev.good-web.co.kr/bbs/faq/4387

 

이렇게 제작한 페이지를 기본페이지로 등록해 보도록 하겠습니다.

페이지 우측/상단 부분에 [마스터 기본 페이지 등록] 버튼이 있습니다. 클릭하세요.

 

2. 아래와 같은 팝업 설정창에서 "기본페이지 등록"을 선택하고 [저장]버튼을 클릭 합니다.

 

 

그럼 실제 정상적으로 등록되었는지 확인해봐야 겠죠?

 

3. [메뉴 관리] > [메뉴추가] 버튼을 클릭 합니다.

화면을 유심히 보시면 방금등록한 "오시는길2"가 보일겁니다. 이 디자인을 선택 후 페이지를 만들면 이전 작업했던 페이지와 똑같이 복사된다는것을 알수 있습니다.

 

4. 등록된 기본 페이지를 수정/삭제 한는 방법에 대해서 알려드리겠습니다.

왼쪽 메뉴에서 하단부분에 [마스터기본페이지관리] 버튼이 있습니다. 클릭 하세요.

 

 

아래와 같이 등록된 페이지를 수정/삭제 할수 있습니다.

 

 


 

사용방법 매우 간단하죠? ^^

홈페이지 제작하면서 힘들게 만든 페이지를 한번 쓰고 버리는게 아니라 반드시 기본 페이지로 등록 해주세요.

새로운 홈페이지를 만들때 기본페이지를 활용하면 단 몇초만에 페이지가 셋팅되기 때문에,  향후 기본페이지를 얼마나 잘 관리하느냐에 따라 홈페이지 제작 속도가 많이 개선될수 있습니다.

 

수고하셨습니다.

 

[디자인팜 1.0] 일반홈페이지 메인 디자인팜으로 변경하기

일반 홈페이지의 메인에 디자인팜으로 작업하는 부분에 대해서 말씀드리겠습니다.

 

 

일반 코딩으로 작업된 홈페이지의 경우는 위와 같이 html코딩작업으로 되어있습니다.

이 부분을 그대로 두고 디자인팜으로 메인을 추가시키는 부분에 대해서 말씀드리겠습니다

먼저 좌측에 디자인팜 실행 버튼을 클릭을 해서 디자인팜을 실행 시킵니다.

 

 

 

디자인 팜을 실행시킨뒤 좌측 상단에 있는 테마관리를 클릭을 합니다.

 

 

 

테마관리를 클릭을 한뒤 테마추가 버튼을 클릭을 합니다.

 

 

테마추가 화면이 나왔으면 위와 같이 기재를 합니다.

일단 알아보기 쉽도록 제목은 디자인팜 메인이라고 기재를 하고, 테마 생성 방식을 직접 테마 만들기를 선택을 합니다.

그럼 아래 부분에 미리보기 이미지 및 페이지 선택이 나오는데요.. 미리보기 이미지는 뭐 등록을 하셔도 되고 안하셔도 무방합니다.

메이지 선택부분에는 현재 메인페이지를 새로 만드는거기 때무넹 메인 스킨만 기존에 사용하는 스킨으로 지정을 해주시면 됩니다.

이렇게 기재를 한뒤 만들기 버튼을 클릭을 해주시면 됩니다.

 

 

 

 

만들기 버튼을 클릭을 하고나면 저장되었다는 메시지와함께 위와 같은 화면이 나옵니다.

현재 우리는 메인화면을 작업을 하는거니까 테마쪽에서 메인화면을 클릭을 합니다.

 

 

 

 

 

메인을 클릭을 하면 이와 같이 디자인팜을 작업할 수 있는 페이지가 나옵니다.

여기서 좌측에 있는 내역을 토대로 메인화면을 꾸며주시면 됩니다.

필자는 간단하게 타이틀 텍스트를 하나 추가를 하였습니다.

 

 

 

 

이렇게 추가를 한 뒤 홈페이지 적용을 누르게 되면 비로소 메인페이지 디자인팜 작업이 마무리가 됩니다.

 

 

 

 

마지막으로 디자인 관리 페이지에 메인화면 디자인 쪽을 보시면 위와 같이 디자이팜으로 적용된 메인화면을 확인 하실 수 있습니다.

만약 다시 기존 소스로 돌아가고 싶으시다면 나만의 디자인에 기존소스를 선택을 하시면 다시 원래 대로 돌릴수도 있습니다.

 

 

감사합니다.

 

[기타] 네비게이션 가로형2
{@$program_set[start_code] = "00000000"; // 네비게이션 코드$nav = program_load(NAVI_CATEGORY_MENU);@}<load target="/img_up/shop_pds/wdev/design/css/pm_nav_h2.css"><load target="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"><load target="/img_up/shop_pds/wdev/design/js/pm_nav_h2.js"><div class="pm-nav_h2">	<!-- 1 Depth -->	<ul class="dep1">		<!--@foreach($nav[sub_menu] as $k=>$v)-->			<li cond="$v[visible]" class="on"|cond="$k==1">				<a href="javascript:content_link_chk('{$v[link_url]}')" targetx="{$v[link_target]}"|cond="$v[link_target]">					<!--@if($v[bt1_img_url])-->						<!--@if($v[bt2_img_url])-->							<img src="{$v[bt1_img_url]}" onmouseover="this.src='{$v[bt2_img_url]}'" onmouseout="this.src='{$v[bt1_img_url]}'" alt="{$v[subject]}" />						<!--@else-->							<img src="{$v[bt1_img_url]}" alt="{$v[subject]}"/>						<!--@end-->					<!--@else-->						{$v[subject]}					<!--@end-->				</a>				<div cond="$v[sub_menu]">					<!-- 2 Depth -->					<ul class="dep2">						<!--@foreach($v[sub_menu] as $k2=>$v2)-->							<li cond="$v2[visible]">								<a href="javascript:content_link_chk('{$v2[link_url]}')" targetx="{$v2[link_target]}"|cond="$v2[link_target]">									<!--@if($v2[bt1_img_url])-->										<!--@if($v2[bt2_img_url])-->											<img src="{$v2[bt1_img_url]}" onmouseover="this.src='{$v2[bt2_img_url]}'" onmouseout="this.src='{$v2[bt1_img_url]}'" alt="{$v2[subject]}" />										<!--@else-->											<img src="{$v2[bt1_img_url]}" alt="{$v2[subject]}"/>										<!--@end-->									<!--@else-->										{$v2[subject]}									<!--@end-->								</a>							</li>						<!--@end-->					</ul>					<!-- // 2 Depth -->				</div>			</li>		<!--@end-->	</ul>	<!-- // 1 Depth --></div><p>	<button type="button" role="navOff">네비게이션 기능끄기</button>	<button type="button" role="navOn">네비게이션 기능켜기</button></p><script>var navigationHorizon = new NavigationHorizon($('div.pm-nav_h2'));$('button[role=navOff]').on('click', function(){	navigationHorizon.off();});$('button[role=navOn]').on('click', function(){	navigationHorizon.on();});</script>


네비게이션 자바스크립트 이벤트 기능을 on/off 메서드를 제공한다.
위의 소스는 버튼을 눌러 롤오버 기능을 켰다 끌 수 있다. 이 기능을 제공한 이유는 반응형 사이트를 작업할 때 모바일 사이즈에서는 자바스크립트 이벤트가 필요없기 때문에 사이즈에 따라서 기능을 껐다켤수 있도록 기능을 제공했다.

서브페이지 활성화 클래스를 넣으려면 li엘리먼트에서 "on"클래스를 넣으면 됩니다.
<li cond="$v[visible]" class="on">


- Demo page
http://wdev.good-web.co.kr/shop_add_page/index.htm?page_code=pm_nav_h2

- Source link
http://wdev.good-web.co.kr/img_up/shop_pds/wdev/design/css/pm_nav_h2.css
http://wdev.good-web.co.kr/img_up/shop_pds/wdev/design/js/pm_nav_h2.js
[기타] 주소 URL 파라메터 팁
간단한 설명을 한다면 주소창에 붙는 파라메터를 붙이면 모드변경이나 옵션을 더할 수 있습니다.
예) http://domain.com/main?mobile_conn=on


mobile_conn (on, off)
ex) &mobile_conn=off
모바일 사이트와 PC사이트 모드변경. 한번정하면 그 설정이 고정됩니다.

me_popup (1, 0)
ex) &me_popup=1
자신이 팝업장치라는것을 알려주는 옵션. 값이 off라면 레이아웃 스킨같은 부분이 빠지고 알멩이 페이지만 출력됩니다.


또 다른 파라메터가 있으면 댓글로 적어주세요~
[기타] html 편집기에 이미지 첨부버튼 넣는 방법안내

우리 굿웹에이전시 솔루션에서 제공되는 게시판은 아래와 같이 [이미지첨부], [다중이미지첨부]기능이 포함되어 있습니다.

 

하지만 맞춤 게시판, 맞춤전송품, 1:1게시판등 대부분 html 편집창에서는 위와 같은 이미지 첨부기능이 지원되지 않고 있습니다.

만약 이런 추가하려면 해당 <textarea> 위쪽에 아래 소스를 추가 하시면 됩니다.


* 수정전

 

<textarea name="content" rows="12" style="width:100%"></textarea>

 

*수정후

 

<a href="javascript:editor_img_pop('content')" >이미지첨부</a><a href="javascript:editor_m_img_pop('content')" >다중이미지첨부</a><br><textarea name="content" rows="12" style="width:100%"></textarea>

 

 

 

 

[기타] 이미지 및 동영상 파일을 강제로 다운받는 방법

아래 소스와 같이 zip파일같은경우는 자동으로 파일 다운로드 받을수 있습니다.

 

<a href="파일경로.zip">다운로드</a>

 

하지만 이미지 같은경우에는 해당 이미지 보기 페이지로 이동 되는데, 다운로드 받게 하려면 아래와 같이 수정 하시면 됩니다.

 

<a href="javascript:img_download('이미지 경로')">이미지 다운로드</a>

 

 

실행 결과

 

 

이런기능은 보통 쿠폰 "이미지 다운받기"라든지 "디자인 시안 받기"등 이미지를 저장해야하는곳에서 사용하기 적합 합니다.

 

ps. 다운로드 가능한 파일 확장자는 아래와 같습니다.

*.zip
*.gif
*.jpg
*.jpeg
*.bmp
*.png
*.ico
*.mp4
*.mov
*.flv
*.ani
*.wma
*.mpg
*.mp3
*.wmv
*.pds
*.pdf
*.hwp
*.doc
*.docx
*.xls
*.xlsx
*.xml
*.txt

 

 

[기타] 모바일웹만 구축시 PC 버젼에도 모바일웹 나오게 하는방법

고객이  모바일웹만 구축 하고 PC웹 구축을 하지 않으려고 하는경우  아래와 같이 처리하세요.

 

1. 관리자 모드로 로그인 후  [PC웹디자인]을 선택 합니다.

 

 

 

2. [디자인관리 > 고급 디자인 관리 > 메인 화면 디자인] 에서 아래와 같이  스킨은 "없음" 으로 선택 하고 페이지는 "모바일 프레임"을 선택 합니다.

 

 

 

이렇게 하시면 아래와 같이 간단하게 PC버젼 홈페이지가 완성됩니다.

http://umobile11.good-web.co.kr/

원리는 PC버젼에서 선택한 "모바일 프레임"에는 핸드폰 디자인만 있고 안쪽으로는 iframe을 통해 모바일웹을 불러오는 방식으로 구현 되어 있습니다.

 

 

3. 스마트폰으로 접속시에는 핸드폰 디자인없어져야 하므로 아래와 같이 설정 해주세요.

 

 

4. [디자인관리 (모바일) > 모바일웹 사용 > 모바일웹 사용하기] 에서 "스마트폰으로 접속시 모바일웹으로  이동"으로 설정 하고 저장합니다.

 

 

수고하셨습니다.

 

 

 

[기타] 외부 데이타 베이스 Mysql 연동 방법

* 본 강좌는 php, mysql 을 다룰줄아는 개발자 위주로 작성 되었습니다.

 

굿웹에이전시 솔루션으로 홈페이지 운영시 불가피 하게 다른 프로그램을 개발해야하는 경우가 있습니다.

이때 굿웹에이전시 솔루션의 mysql에 접속 할수 없으므로 별도의 mysql DB를 셋팅해서 연동 및 개발을 할 수 있습니다.

 

예를들어 타사 쇼핑몰에서 운영하다 굿웹에이전시로 이전시 이전 주문서를 조회할수 없게 됩니다.

이런경우 이전 사이트의 DB를  연동하여 주문서를 볼수 있게 해줘야 한다든지,

굿웹에이전시에서 제공되지 않는 게시판이라든지 메모장 등을 직접  개발 할수 있습니다.

 

필자는 타사 DB의 주문서를 조회 하는 페이지를 만들어 보도록  하겠습니다.

 

1. 굿웹에이전시 솔루션의 관리자모드로 로그인 후 [프로그램 샵]에서 "외부 DB 연동 모듈"을 설치 합니다.

 

 

 

2. [프로그램 SHOP > 프로그램 환경설정 > 외부 DB 연동]에서  mysql DB 정보를 입력 합니다.

 

 

3. mysql DB 에서 아래와 같이 접근 권한을 열어줘야 합니다.

이때 접근 가능한 IP주소는 위 도움말에서 제공되는 IP주소로 설정해줘야 합니다.

이렇게 IP 대역을 다 열어줘야 하는 이유는 굿웹에이전시 솔루션 자체에서 부하 분산 시스템으로 인해서 IP주소가 바뀌기 때문입니다.

 

User, DB 모두 위와 같이 권한을 열어주시기 바랍니다.

 

4. 이렇게 mysql 을 추가 했다면 정상적으로 연동 되는지 테스트 해야 합니다.

[디자인관리 > 고급 디자인 관리 > 추가 페이지 관리 ] 에서  페이지를 생성 합니다.

 

외부 DB 연동 <Br>{@outside_mysql_connect();@}

 

 

실제 페이지로 접속해보면 아무런 응답이 없다면 정상적으로 연동이 된겁니다.

만약 에러가 있다면 에러메세지가 출력 되고 소스는 더이상 출력 되지 않고 exit 처리 됩니다.

 

 

5.  해당 데이타 베이스에 어떤  DB가 있는지 확인해보겠습니다.

 

외부 DB 연동

{@outside_mysql_connect();

 


$query = "show tables";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
      echo "$row[0] <br>";
}

@}

 

 

데이타 베이스에 있는 테이블이 모두 출력 될것 입니다.

이렇게 해서 mysql DB 접속이 되므로 이후 개발작업은 원하는데로 직접 개발해보시기 바랍니다.

 

 

6. 주의사항

굿웹에이전시 솔루션에서는 보안상 모든 php문법과, mysql 명령어가 지원 되지 않습니다.

사용가능한 php 함수는  http://manual.good-web.co.kr/page/p_all 에서 확인 바랍니다.

사용가능한 mysql 함수는 아래와 같습니다.

- mysql_query()

- mysql_fetch_array()

- mysql_fetch_row()

- mysql_fetch_assoc()

- mysql_num_rows()

- mysql_insert_id()

 

 

 

7. 아래는 실제 외부 mysql DB 에서 주문서 내역을 가져오는 소스 입니다.

제공되는 기능은 아래와 같습니다.

- 페이징 기능

- 리스트 출력

- 검색 기능 (관리자로 로그인되어 있다면 전체 검색, 회원으로 로그인되어 있다면 자신 id로  데이타만 검색)

- 페이지 블럭

 

참고 하세요 ^^

 

{@// 외부 mysql DB에 연결 합니다.utside_mysql_connect();

 


// 검색 조건
$add_query_arr = array();

if($admin_conn_yn){
 //관리자로 로그인되어 있는 경우, 전체 검색 할 수 있습니다.
 if($_GET[mem_id]) $add_query_arr[] = "  mem_id like '%$_GET[mem_id]%' ";
}else{

// 관리자가 아닌경우 세션 아이디로 강제 검색 합니다.
 $add_query_arr[] = "  mem_id = '$_SESSION[mem_id]' ";
}

if($_GET[mem_name]) $add_query_arr[] = "  mem_name like '%$_GET[mem_name]%' ";
if($_GET[contents]) $add_query_arr[] = "  contents like '%$_GET[contents]%' ";

$add_query_str = "";
if(count($add_query_arr)){
 $add_query_str = "where ".implode(' and ',$add_query_arr);
}

// 전체 갯수 구하기
$query = "select count(idx) from old_order_info $add_query_str ";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$total_record = $row[0];

// 페이징 설정
$num_per_page = 15;
$page = $_GET[page];
$page *= 1;
if(!$page)$page = 1;
$page = round($page);

$num_per_page *= 1;
$num_per_page = round($num_per_page);

if($page < 1) $page = 1;
if($num_per_page < 1) $num_per_page = 15;
$total_page = ceil($total_record/$num_per_page);

if($total_record == 0) {
   $first = 1;
   $last = 0;
} else {
   $first = $num_per_page*($page-1);
   $last = $num_per_page;
}

$numbering= $total_record - $num_per_page*($page-1);

if(!$top_page_per_block){
 if($mobile_web_yn){
  $top_page_per_block = 4;
 }else{
  $top_page_per_block = 10;
 }
}

$total_block = ceil($total_page/$top_page_per_block);
$block = ceil($page/$top_page_per_block);

$first_page = ($block-1)*$top_page_per_block;
$last_page = $block*$top_page_per_block;
if($total_block <= $block)$last_page = $total_page;
@}
총 주문수 : {$total_record|number}, {$page} / {$total_page|number} page
<script>
function goods_info_view(idx){
 var obj = document.getElementById("tr_info_"+idx);
 if(obj.style.display == 'none'){
  obj.style.display = 'table-row';
 }else{
  obj.style.display = 'none';
 }
}
</script>

<table border=1 width=100%>
<tr>
 <td>no</td>
 <td>주문번호</td>
 <td>주문자명</td>
 <td>주소</td>
 <td>연락처</td>
 <td>총금액</td>
 <td>날짜</td>
 <td>상세보기</td>
</tr>
{@
$query = "select * from old_order_info $add_query_str order by reg_time desc limit $first,$last";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
 @}
 <tr>
  <td>{$numbering}</td>
  <td>{$row[order_num]}</td>
  <td>{$row[mem_name]}</td>
  <td>{$row[addr1_info]}</td>
  <td>{$row[tel1]}</td>
  <td>{$row[t_price]}</td>
  <td>{$row[date_str]}</td>
  <td><a href="javascript:goods_info_view({$row[idx]})">상세보기</a></td>
 </tr>
 <tr id="tr_info_{$row[idx]}" style="display:none">
  <td colspan='8'>
   {$row[contents]}
  </td>
 </tr>
 {@
$numbering--;
}
@}
</table>

 

{@

// 페이지 블럭을 만듭니다.
$var_page = '';
foreach($_GET as $key => $value){
 if($key=='page') continue;

 $value = str_replace(' ','+',$value);
 $var_page .= "&$key=$value";

}

$sp_block_str = "<div class='ui-pagenate'>";
if($block > 1) {
 $my_page = $first_page;
 if($fn_name){
  $sp_block_str .= "<a href=javascript:$fn_name('$_SERVER[PHP_SELF]?page=$my_page$var_page$add_value') class='txt dir prev2' target='_self'><span></span>&lt;&lt;</a>";
 }else{
  $sp_block_str .= "<a href='$_SERVER[PHP_SELF]?page=$my_page$var_page$add_value' class='txt dir prev2' target='_self'><span></span>&lt;&lt;</a>";
 }
}

if ($page > 1) {
 $sp_num = $page - 1;
 if($fn_name){
  $sp_block_str .= "<a href=javascript:$fn_name('$_SERVER[PHP_SELF]?page=$sp_num$var_page$add_value') class='dir prev1' target='_self'><span></span>이전</a>";
 }else{
  $sp_block_str .= "<a href='$_SERVER[PHP_SELF]?page=$sp_num$var_page$add_value' class='dir prev1' target='_self'><span></span>이전</a>";
 }
}

for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) {
   if($page == $direct_page) {
  $sp_block_str .="<strong>$direct_page</strong>";
   } else {
  if($fn_name){
   $sp_block_str .= "<a href=javascript:$fn_name('$_SERVER[PHP_SELF]?page=$direct_page$var_page$add_value') target='_self'>$direct_page</a>";
  }else{
   $sp_block_str .= "<a href='$_SERVER[PHP_SELF]?page=$direct_page$var_page$add_value' target='_self'>$direct_page</a>";
  }
   }
}

if ($total_page > $page) {
 $page_num = $page + 1;
 if($fn_name){
  $sp_block_str .= "<a href=javascript:$fn_name('$_SERVER[PHP_SELF]?page=$page_num$var_page$add_value') class='dir next1' target='_self'><span></span>다음</a>";
 }else{
  $sp_block_str .= "<a href='$_SERVER[PHP_SELF]?page=$page_num$var_page$add_value' class='dir next1' target='_self'><span></span>다음</a>";
 }
}

if($block < $total_block) {
 $my_page = $last_page+1;
 if($fn_name){
  $sp_block_str .= "<a href=javascript:$fn_name('$_SERVER[PHP_SELF]?page=$my_page$var_page$add_value') class='txt dir next2' target='_self'><span></span>&gt;&gt;</a>";
 }else{
  $sp_block_str .= "<a href='$_SERVER[PHP_SELF]?page=$my_page$var_page$add_value' class='txt dir next2' target='_self'><span></span>&gt;&gt;</a>";
 }
}

$sp_block_str .= "</div>";
@}


{$sp_block_str}

 

<form action="{$_SERVER[PHP_SELF]}">
{@
foreach($_GET as $key => $value){
 if($key=='page') continue;
 if($key=='mem_id') continue;
 if($key=='mem_name') continue;
 if($key=='contents') continue;
 echo "<input type='hidden' name='$key' value='$value'>";
}
@}
<!--@if($admin_conn_yn)-->
회원아이디 : <input type='text' name="mem_id" value="{$_GET[mem_id]}">
<!--@end-->
주문자명 : <input type='text' name="mem_name" value="{$_GET[mem_name]}">
상품명 : <input type='text' name="contents" value="{$_GET[contents]}">
<input type='submit' value="검색">
</form>

 

 

만약 글작성, 수정, 삭제 기능을 추가하고자 한다면  [디자인관리 > 고급 디자인 관리 > 추가 페이지 관리]에서 처리페이지를 하나만들고 아래와 같이 개발하시면 됩니다.

 

{@// 외부 mysql DB에 연결 합니다.outside_mysql_connect();if($_POST[mode] == 'add'){   // DB 에 각종 정보를 insert 처리 합니다.}else if($_POST[mode] == 'edit'){   // DB 에 각종 정보를 update 처리 합니다.}else if($_POST[mode] == 'del'){   // DB  해당 레코드를 삭제 합니다.}@}

 

 

이렇듯 필요에 따라  직접 개발도 가능 합니다.

 

수고 많으셨습니다. ^^

[기타] 회원별 바코드 및 임의의 바코드 생성 방법 안내.

매장 pos 기기에서  온라인 회원인지 인증 후 포인트 사용 및 쿠폰을 사용해야 하는 경우가 있습니다.

 

이번 강좌에서는 회원인증에 필요한 바코드를 생성해보도록 하겠습니다.

 

로그인한 회원의 바코드 생성 방법

 

{@ $mem_bar_code_url_small = ''; $mem_bar_code_url_big = '';if($_SESSION[mem_id]){ $program_set[mem_id] = $_SESSION[mem_id]; // 회원아이디를 입력하세요. $_SESSION[mem_id] 입력시 현재 로그인 되어 있는 회원의 정보를 가져 옵니다. $mem_info_row = program_load(MEM_INFO); // 프로그램 호출하여 배열변수에 저장 한다. (항상 마지막에 실행 해야 합니다.) $mem_bar_code_url_small = $mem_info_row[bar_code_s]; $mem_bar_code_url_big = $mem_info_row[bar_code_b];}@}<img src="{$mem_bar_code_url_small}"><img src="{$mem_bar_code_url_big}">


회원정보 같은 경우 MEM_INFO 모듈을 통해서 바코드 정보를 불러올수 있지만  쇼핑몰 상품인 경우 별도 제공되고 있지 않기 때문에 직접 바코드를 생성 해줘야 합니다.

 

바코드 크기 (중형)

<img src="/API/barcodegen_v2.2.0/html/image.php?code=code128&o=1&dpi=72&t=30&r=3&rot=0&text=s{$goods_idx}&f1=Arial.ttf&f2=12&a1=&a2=&a3=s{$goods_idx}">

미리보기 : http://wdev.good-web.co.kr/API/barcodegen_v2.2.0/html/image.php?code=code128&o=1&dpi=72&t=30&r=3&rot=0&text=s123456&f1=Arial.ttf&f2=12&a1=&a2=&a3=s123456



바코드 크기 (대형)
<img src="/API/barcodegen_v2.2.0/html/image.php?code=code128&o=1&dpi=72&t=30&r=4&rot=0&text=s{$goods_idx}&f1=Arial.ttf&f2=12&a1=&a2=&a3=s{$goods_idx}">

미리보기 : http://wdev.good-web.co.kr/API/barcodegen_v2.2.0/html/image.php?code=code128&o=1&dpi=72&t=30&r=4&rot=0&text=s123456&f1=Arial.ttf&f2=12&a1=&a2=&a3=s123456


 

 

위 소스를 유심히 보시면, text, a3 값에 원하는 값을 넣으면 자동으로 바코드가 생성되기때문에 사실 쇼핑몰에 국한 된게 아니라 어떤 유형든 상관없이 바코드를 생성 할 수 있도록 되어 있습니다.

주의 해야 할 점은 바코드를 임의로 생성할때 다른 상품과 중복되지 않도록 설정해줘야 합니다.

예를들어 제품소개 솔루션 + 쇼핑몰 솔루션을 동시에 사용중이라면,

제품 고유번호와, 쇼핑몰 고유번호가 중복될수 있습니다.

이런경우 바코드가 동일할수 있으므로,  (문자+고유번호) 혼용해서 사용하시기 바랍니다.

예를들어 제품소개 솔루션인경우  "pro{$idx}" 이렇게 입력하고 쇼핑몰은  "shop{$goods_idx}" 이렇게 하시면 바코드가 중복되는 일은 없을 겁니다.

또 다른 예를 들어 운영중인 쇼핑몰이 10개이고 각 쇼핑몰마다 다른 바코드로 생성하고자 한다면  "{$mall_id}{$goods_idx}" 이렇게 설정해서 바코드를 생성하면 모든 쇼핑몰 상품이 어디에도 중복되지 않습니다.


 

[주의 사항]

바코드 이미지는 강제로 사이즈를 변경하면 인식이 안되므로 절대 사이즈를 넣지 않도록 합니다.

(0) <img src="/바코드 이미지 경로">
(X) <img src="/바코드 이미지 경로" width="200">


 

바코드는 보통 POS기기에서 많이 사용하고 있습니다.

바코드 스캐너를 통해 알아낸 값은 다시 서버를 통해 정보를 가져와야 합니다.

예를들어 회원정보 바코드를 스캔한경우 회원정보를 가져와야하는데 이때  굿웹에이전시 내부 API를 통해 가져와야 합니다.

내부관리자모드 로그인 후 [프로그램샵 > 프로그램 환경설정 > API 개발센터]에서 확인 할 수 있습니다.