티스토리 뷰

https://posty.pe/e7xbiq

 

아보카도 에디션 - 스티커 플러그인: 디자인컴션

20,000원 기본 상시배포지만 문제가 생기거나 부끄러워진다면.. 배포 중단할 수 있습니다. 이미지들을 원하는 곳에 다꾸, 마이룸처럼 꾸며둘 수 있는 플러그인입니다. 다른 분들이 배포해주신 굿

www.postype.com

 

다음과 같은 플러그인을 봤다.

만들어 보겠다.

 

 

기능

  • 사용자
    • 스티커 설정에 따라 위치, 크기 조절이 가능할 것
  • 관리자
    • 스티커 등록
      • 스티커가 들어갈 페이지를 설정할 수 있을 것
      • 이미지 외부링크(https://imgur.com/)를 사용할 수 있을 것
    • 스티커 리스트
      • 스티커 목록을 보여줄 것 (미리보기, 설정)
      • 사용하는지 안하는지 체크로 설정
      • 수정모드, 외부인 수정가능을 설정할 것

 

사용자 기능 구현

 

 

기능 구현

  • 위치와 크기 웹브라우저에 저장
  • 스티커 위치, 크기정보 가져오기
  • 윈도우 리사이즈 시 위치 재적용
  • 너비 1000px이하 시 스티커 레이어 숨김
  • 스티커 위치 초기화 버튼

 

아직 관리자 스티커 관리기능이 만들어지지않아

하드코딩으로 이미지url 를 넣고있다.

 

지금은 main.php에서 작성중인데

관리자가 만들어지는대로 분리해야겠다.

 

커밋 : 

 

관리자 기능 구현 - 메뉴만들기

스티커 관리 메뉴를 관리자에 추가해줬다.

 

//admin.menu200.php

<?php
$menu['menu200'] = array (
    array('200000', '게시판/페이지관리', ''.G5_ADMIN_URL.'/board_list.php', 'board'), 
    array('200200', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'bbs_board'),
    array('200300', '페이지관리', G5_ADMIN_URL.'/contentlist.php', 'scf_contents', 1),
	array('200600', '이모티콘관리', G5_ADMIN_URL.'/emoticon_list.php', 'mmb_emoticon', 1),
    array('200700', '스티커 관리', G5_ADMIN_URL.'/emoticon_list.php', 'mmb_emoticon', 1) //추가된 부분
);
?>

 

//sticker_list.php

<?php
$sub_menu = "200700"; //수정
include_once('./_common.php');

...

 

admin.menu200.php에 추가될 메뉴 파라미터를 넣어주고

emoticon_list.php를 복사해 이름을 sticker_list.php로 바꾸고 $sub_menu 만 수정해주었다. 

 

커밋 : 

 

+ 메뉴는 어디서 생성되는걸까?

더보기

admin.head.php 에서 메뉴가 출력된다.

//admin.head,php

<?php
		$gnb_str = "<ul>";
		foreach($amenu as $key=>$value) {
			$href1 = $href2 = '';
			if ($menu['menu'.$key][0][2]) {
				$href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da" data-text="'. $menu['menu'.$key][0][1].'">';
				$href2 = '</a>';
			} else {
				continue;
			}
			$current_class = "";
			if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
				$current_class = " gnb_1dli_air";
			$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
			$gnb_str .=  $href1 . $menu['menu'.$key][0][1] . $href2;
			$gnb_str .=  print_menu1('menu'.$key, 1);
			$gnb_str .=  "</li>";
		}
		$gnb_str .= "</ul>";
		echo $gnb_str;
		?>
  • foreach($amenu as $key=>$value)
    • $amenu크기만큼 키와 값으로 나눠 반복문을 돌린다
  • $href1 = $href2 = '';
    • $href1 와 $href2 값을 빈값으로 초기화한다.
  • if ($menu['menu'.$key][0][2]) ...
if ($menu['menu'.$key][0][2]) {
				$href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da" data-text="'. $menu['menu'.$key][0][1].'">';
				$href2 = '</a>';
			} else {
				continue;
			}

 

$menu의 menu.$key의 인텍스0의 값의 인덱스2의 값을 가져온다.

있다면 href1과 2에 값을 할당. 아니라면 넘어간다.

 

$menu의 menu.$key의 인텍스0의 값의 인덱스2의 값 이란 

//admin.menu200.php

<?php
$menu['menu200'] = array (
    array('200000', '게시판/페이지관리', ''.G5_ADMIN_URL.'/board_list.php', 'board'), 
    array('200200', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'bbs_board'),
    array('200300', '페이지관리', G5_ADMIN_URL.'/contentlist.php', 'scf_contents', 1),
	array('200600', '이모티콘관리', G5_ADMIN_URL.'/emoticon_list.php', 'mmb_emoticon', 1),
    array('200700', '스티커 관리', G5_ADMIN_URL.'/emoticon_list.php', 'mmb_emoticon', 1)
);
?>

 

$key가 200이라면

 ' '.G5_ADMIN_URL.'/board_list.php'값을 가져오는 것.

 

  • $current_class = ""; ...
$current_class = "";
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3)))
    $current_class = " gnb_1dli_air";
$gnb_str .= '<li class="gnb_1dli'.$current_class.'">'.PHP_EOL;
$gnb_str .=  $href1 . $menu['menu'.$key][0][1] . $href2;
$gnb_str .=  print_menu1('menu'.$key, 1);
$gnb_str .=  "</li>";

 

current_class 값을 빈값으로 초기화해준다.

 

$sub_menu의 값이 있는지 확인, substr으로 처음 3자리 (200200이면 200)를 잘라 $menu['menu'.$key][0][0], 0, 3)의 값과 비교,

만약 일치한다면 $ current_class에 값을 넣어줌( 활성화된 메뉴에 특정 클래스를 추가하기위함)

그 후 print_menu1함수로 메뉴들을 출력한다.

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함