작성일 댓글 남기기

XE/RHYMIX 누리고 쇼핑몰 결제 단계에서 최근배송지 선택시 Object 표시 문제

modules/ncart/ncart.controller.php 의 755번 줄 $args->serialized_address = serialize($in_args); 를 아래 내용으로 교체한다.

$cart_args = $in_args;
$cart_args->memo = $in_args->memo[0];
$cart_args->name = $in_args->name[0];
$args->serialized_address = serialize($cart_args);

장바구니 결제폼 관리에서 배송지명은 title, 수령인은 name, 배송메모는 memo를 해야 정상적으로 출력된다.

작성일 댓글 남기기

RHYMIX/XE 설문조사 참가 여부 알아내기

접속자의 설문조사 참가 여부는 아래 코드를 통해 확인할 수 있다. 비로그인의 경우 IP를 조회하여 참가 여부를 반환한다.

getModel('poll')->isPolled($poll_srl)

poll_srl은 설문조사를 생성한 후에 소스코드를 보면 알 수 있고, 만약 설문조사가 있는 게시글을 삭제하거나 설문조사 영역을 삭제했을 경우에는 DB를 직접 조회해야 한다.

작성일 댓글 남기기

RHYMIX/XE 회원 정보 가져오기

$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl("고유번호");
$member_info = $oMemberModel->getMemberInfoByUserID("아이디");
$member_info = $oMemberModel->getMemberInfoByEmailAddress("이메일주소");

어떤 값으로(고유번호,아이디,이메일주소) 회원 정보를 가져올 것인지는 상황에 맞게 사용하면 된다.

작성일 댓글 남기기

레이아웃/스킨/위젯 등에서 시간 표시 방법

일반 형식으로 표시

{zdate(14자리 시간 스탬프, '시간형식')}

초, 분, 시간, 일, 월, 년 전으로 상대 시간 표시

{zdate(14자리 시간 스탬프, 'relative')}

24시간 이내는 상대 시간으로 이후는 일반 형식으로 표시

{getTimeGap(14자리 시간 스탬프, '시간형식')}
작성일 댓글 남기기

mixin을 이용해 float을 clear하기

div나 span과 같은 요소에 float 속성을 적용하여 위치를 잡다보면 부모 요소의 height가 float 속성을 가진 요소를 포함하지 못하여 레이아웃이 비정상적으로 출력되는 경우가 있다.

이에 대해 검색해 보면 무슨 방법이니 무슨 방법이니 설명이 많이 되어 있지만, 다 필요 없고 부모 요소에 가상 클래스 :after 를 주고 빈 block 영역을 만들어 clear 값을 both로 설정하면 자식 요소의 float: left 나 float: right 를 초기화시켜 준다. 레이아웃이 정상적으로 표시될 것이다. CSS에서 코드는 다음과 같다.

부모 요소:after {
	content: "";
	display: block;
	clear: both;
}

그런데 float을 초기화 시켜줘야 하는 부모 요소가 하나면 상관없지만, 2개 3개를 훌쩍 넘어서게 되면 매번 입력하기가 힘들다. Class를 만들어서 적용시켜주는 방법도 있지만 SCSS에서는 mixin을 만들어 해당 부모 요소에 직접 설정할 수도 있다.

mixin 코드는 다음과 같다.

@mixin clearfix() {
	&:after {
		content: "";
		display: block;
		clear: both;
	}
}

사용할 때는 아래 코드를 입력해 준다.

@include clearfix();

예를 들어, 아래와 같이 입력했다면

section {
	padding: 1em;
	@include clearfix();
}

컴파일된 CSS 파일에는 다음과 같이 표시된다.

section {
	padding: 1em;
}

section:after {
	content: "";
	display: block;
	clear: both;
}

 

작성일 댓글 남기기

::selection – 마우스 드래그로 블록 지정시 스타일 주기

간단하게 블록의 배경만 바꿔주는 코드다. mixin을 사용했다.

PC와 모바일에서 모두 작동해야 하므로 모바일을 위한 접두어(-webkit-, -moz-)를 붙여줘야 한다.

@mixin selection($background) {
	$prefixes: ("-webkit-","-moz-", "");
	@each $prefix in $prefixes {
		::#{$prefix}selection {
			background: $background;
		}
	}
}

사용할 때는 아래 코드를 사용한다.

@include selection(색상값);

직접 css로 입력하면 다음과 같다.

::-webkit-selection {
	background: 색상값;
}
::-moz-selection {
	background: 색상값;
}
::selection {
	background: 색상값;
}

직접 입력하는게 더 편해보이지만, 만약 배경만이 아니라 다른 요소가 더 들어가 있고, 수정해야 할 일이 생기면, 작업은 수정해야 할 요소 개수 * 3개  가 된다. mixin을 이용하면 처음엔 조금 복잡할 수는 있지만 수정에 용이하다는 장점이 있다.