You cannot see this page without javascript.

Skip Navigation

XE 레이아웃 카메론 XE LAYOUT CAMERON XE2.0.11


애드온
2020.08.14 14:31

기초 팝업 윈도우 애드온 만들기

(*.224.201.148) Views 303 Votes 0 Comment 0
Extra Form
원문주소
페이지 00014
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

Popup window Add-on

 

기초 팝업 윈도우 애드온 만들기

 

애드온의 작동 방법과 호출 시점을 살펴보고 확장변수를 활용하여 외부 HTML 파일을 찾아 팝업윈도우 형태로 출력해 주는 기초적인 팝업 윈도우 애드온을 만들어 본다.

 

popup

 

팝업 윈도우 애드온의 정보 파일(info.xml) 작성하기

XE코어가 xe/ 디렉터리에 설치되어 있다면 xe/addons/ 디렉터리 안에 popup_window 폴더를 새로 만든다. 이렇게 만든 폴더의 이름은 애드온의 이름이 되고 애드온 실행파일(popup_window.addon.php)의 이름과 같아야 한다.

 

새로 만든 애드온 폴더에서 설정(config) 폴더 안에 정보 파일이 없으면 애드온 관리 화면에서는 "./addons/popup_window/"와 같이 폴더의 경로만 출력될 뿐 애드온의 정보를 확인할 수 없다. 따라서 popup_window 폴더 안에 애드온의 정보 파일(info.xml)을 넣어 둘 conf 폴더를 새로 만들고 다음과 같이 애드온의 정보와 설명을 출력할 XML 문서를 만든다.

 

▶ addons/popup_window/conf/info.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<addon version="0.2">
    <title xml:lang="ko">팝업 윈도우 애드온</title>
    <description xml:lang="ko">
        팝업 윈도우 애드온 만들기 예제
        HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
    </description>
    <version>0.1</version>
    <date>2011-12-20</date>
    <author email_address="" link="http://www.xeschool.com">
        <name xml:lang="ko">XE스쿨</name>
    </author>
</addon>

 

애드온이 정보 파일을 갖게 되면 관리자 화면 > 확장기능 > 설치된 애드온에서 추가로 설치된 팝업 윈도우 애드온과 설명글이 정상적으로 출력된다. 또한 설정을 클릭하면 위 정보 파일에서 아직 확장변수를 등록하고 사용하지 않기 때문에 기본정보만 출력된다. 만약 애드온을 켠다고 해도 아직 실행파일이 없기 때문에 코어의 동작에는 아무런 간섭을 할 수가 없다.

 

실행 파일 작성 연습

 

팝업 윈도우를 위한 popup_window.addon.php 파일을 다음과 같이 작성해 보고 우선 애드온의 동작 방법 몇가지를 확인해 보자.

 

▶ addons/popup_window/popup_window.addon.php

 

<?php
 
    if(!defined("__ZBXE__")) exit();
 
    /**
     * @file popup_window.addon.php
     * @author XE스쿨
     * @brief HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
     **/
 
     if($called_position == 'before_module_proc'){
 
     }
 
?>

 

"__ZBXE__" 상수는 1.5 버전부터 변경된 상수를 사용한다. 이전 버전까지는 "__ZBXE__"로 상수를 설정하였지만 1.5 버전부터는 "__XE__"로 사용할 것을 권장하고 있고 추후 "__ZBXE__" 상수는 제거 된다고 한다. 현재는 하위 모듈의 호환성을 유지하기 위해 둘다 사용이 가능하다. 추후 상위 버전과 하위 버전에 따라 변경하여 사용한다.

 

파일의 간단한 설명글 아래로 애드온은 호출 시점을 정하는 변수를 IF 조건문으로 만든다.

호출 시점 변수($called_position)는 각각의 값에 따라 코어에서 받아 쓸 수 있도록 미리 준비되어 있다. 예를 들어 before_module_init 시점은 xe/classes/module/ModuleHandler.class.php 파일의 function init() { 바로 앞 줄, 모듈의 객체를 생성하기 이전, 생성자(ModuleHandler::__construct())에서 다음과 같이 include 함수를 이용해 받아들인다.

 

// execute addon (before module initialization)
$called_position = 'before_module_init';
$oAddonController = &getController;('addon');
$addon_file = $oAddonController->getCacheFilePath(Mobile::isFromMobilePhone()?'mobile':'pc');
@include($addon_file);

 

애드온이 하는 일을 좀더 자세히 살펴보자! 코어는 각각의 호출 시점을 4곳에 미리 정해 두었을 뿐, 애드온이 간섭하고자 하는 위치는 애드온 스스로가 결정하는 것이다. 즉 before_module_init 외에도 before_module_proc와 after_module_proc는 ModuleObject.class.php 파일의 proc()에서, before_display_content은 DisplayHandler.class.php 파일의 printContent()에서 받아 들인다.

 

그런데 코어는 모듈의 객체를 생성하고 필요한 값들을 모두 $output 이라는 큰 변수가방에 넣고 다닌다. 따라서 애드온은 잠시 그 가방을 뺏어 자신의 실행 결과로 바꿔치기하고 다시 코어에게 전달할 수 있는 것이다. 또한 Context 내용에 변수와 값을 더하거나 변조할 수도 있다. 즉 코어가 하는 모든 일에 대해 참견할 수 있는 것이다.

 

정말로 그럴까? 확인해 보자. 다음과 같은 내용을 방금 전 작성했던 실행파일에 넣고 웹브라우저의 제목줄을 확인해 보자.(애드온을 켜야 작동한다.)

<?php
 
    if(!defined("__ZBXE__")) exit();
 
    /**
     * @file popup_window.addon.php
     * @author XE스쿨
     * @brief HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
     **/
 
    if($called_position == 'before_display_content') {
 
        Context::setBrowserTitle("XE코어 형님은 바보...^^ 나? 애드온!");
 
    }
 
?>

 

결과값 :

 

setBrowserTitle_img

 

애드온이 웹브라우저의 제목을 변조하였다. 또 다음과 같은 실행문을 추가하고 확인해 보자.

 

Context::addHtmlheader("헤더도 메롱!");
Context::addHtmlFooter("푸터도 메롱!");

 

그러면 레이아웃 설정에서 HTML <head>...</head> 사이에 들어갈 내용, 푸터에 출력할 수 있는 내용이 애드온에 의해서 추가된 것을 확인 할 수 있다.

이번에는 호출 시점에서 애드온이 어떠한 값들을 확인할 수 있는지 알아보자. 같은 방법으로 아래 실행 구문을 넣고 페이지를 새로고침 해 보자.

 

<?php
 
    if(!defined("__ZBXE__")) exit();
 
    /**
     * @file popup_window.addon.php
     * @author XE스쿨
     * @brief HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
     **/
 
    if($called_position == 'before_module_init'){
 
        $position ="Before_module_init now runs.";
         
    } else if($called_position == 'before_module_proc'){
 
        $position ="Before_module_proc now runs.";
 
    } else if($called_position == 'after_module_proc'){
 
        $position ="After_module_proc now runs.";
 
    } else if($called_position == 'before_display_content'){
 
        $position ="Before_display_content now runs.";
 
    }
 
    $message = $position.'\n'.'Module : '.$this->module.'\n'.'Mid : '.$this->mid.'\n'.'Act : '.$this->act.'\n'.'Module_srl : '.$this->module_srl.'\n'.'Document_srl : '.$this->document_srl;
    $script =  sprintf('<script type="text/javascript"> xAddEventListener(window,"load", function() { alert("%s"); } );</script>', $message);
 
    Context::addHtmlHeader($script);
 
?>

 

called_position_test

 

애드온이 실행되면 호출 시점에 따라 각각 다른 결과를 보여 준다. 위 구문은 애드온이 코어의 모든 시점에 개입해 본 것이다. 결론적으로 애드온은 코어의 진행과정에 스스로 개입해서 코어가 들고 다니는 $output의 값을 변조하거나 애드온이 목표로 하는 목적값으로 Context::set() 등을 이용해 더하거나 변조하는 일들을 할 수 있다.

 

팝업 윈도우를 여는 실행 파일(popup_window.addon.php) 작성하기

다음과 같이 before_module_proc(모듈 실행 이전)으로 호출 시점을 지정하고 window.open() 함수를 이용해 HTML 파일을 찾아 기초적인 팝업창을 열어주는 실행문을 작성해 보자. 우선 원하는 결과를 얻어보기 위해 소스코드를 그대로 넣어 보았다. Context::addHtmlHeader() 함수를 이용하면 <head>...</head>문 안으로 스크립트를 추가해 넣을 수 있게 된다.

 

▶ addons/popup_window/popup_window.addon.php

 

<?php
 
    if(!defined("__ZBXE__")) exit();
 
    /**
     * @file popup_window.addon.php
     * @author XE스쿨
     * @brief HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
     **/
 
    if($called_position == 'before_module_proc'){
 
        Context::addHtmlHeader(sprintf("<script type=\"text/javascript\">//<![CDATA[\nxAddEventListener(window.open('./addons/popup_window/popup_example.html','notice','width=400, height=400, toolbar=no, top=20, left=20, location=no, status=no, menubar=no, scrollbars=no, resizable=no, location=no'));\n//]]></script>" ));
 
    }
 
?>

 

애드온을 실행하면 가로 400픽셀, 세로 400픽셀의 새창을 열고 팝업 윈도우를 보여준다. 하지만 지정된 HTML 파일을 찾을 수 없다. 아직 popup_example.html 문서를 애드온 폴더에 업로드하지 않았기 때문이다. 팝업으로 보여줄 popup_example.html 파일은 코어, 애드온과는 전혀 상관이 없는 별개의 문서 파일이다. 따라서 팝업을 위한 문서는 자유롭게 만들어 사용할 수 있다. 즉 팝업창을 위한 HTML 문서 파일은 코어파일 안에 있어도 좋고 밖에 있어도 좋다.(이런 파일은 코어와는 별도로 관리하는 것이 좋다.)

popup_example.html은 예제 파일이다. 만약 별도의 HTML 파일의 경로를 찾지 못하면 임시로 확인할 수 있도록 작성되었다. 아래 링크된 popup_example.html 파일과 다음에서 설명하게 될 nofile.html 파일을 다운로드 받아 애드온 폴더 안에 업로드하고 확인해 보자.

 

popup_example.html

nofile.html

 

첨부된 팝업을 위한 HTML 파일은 쿠키 굽기를 이용해 하루동안 팝업창을 열지 않을 수 있다. 체크박스에 체크하고 닫기를 클릭하면 쿠키를 굽고 자신을 닫는다. 또한 이동을 위해 링크가 있다면 이동하면서 역시 같은 방법으로 팝업창을 닫는다.

애드온이 사용될 대상을 지정하면 목적하는 mid에서만 팝업창이 뜨지만 그전에는 관리자 화면에서도, 설정을 위한 과정에서도 무차별적으로 팝업창이 뜨는 것을 확인할 수 있다. 따라서 다음과 같이 호출 시점에 조건을 위한 변수를 추가해 보자.

 

if($called_position == 'before_module_proc' && Context::get('module') != 'admin' && $this->module_info->module_srl){

 

 

관리자 모듈에서는 팝업이 뜨지 않도록 하고 팝업을 사용하기로 지정한 모듈에서만 애드온이 작동할 수 있도록 조건을 추가한 것이다.

 

info.xml에 확장변수(extra_vars) 등록하고 사용하기

 

다음과 같이 info.xml 파일의 </author> 아래로 <extra_vars> 확장변수를 추가하고 업로드 한다.

 

▶ addons/popup_window/conf/info.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<addon version="0.2">
    <title xml:lang="ko">팝업 윈도우 애드온</title>
    <description xml:lang="ko">
        팝업 윈도우 애드온 만들기 예제
        HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
    </description>
    <version>0.1</version>
    <date>2011-12-20</date>
    <author email_address="" link="http://www.xeschool.com">
        <name xml:lang="ko">XE스쿨</name>
    </author>
 
    <extra_vars>
         <var name="html_path">
            <title xml:lang="ko">HTML 파일 경로</title>
            <description xml:lang="ko">팝업 HTML 파일의 경로 입력 (기본값: ./addons/popup_window/popup_example.html)</description>
        </var>
        <var name="width">
            <title xml:lang="ko">팝업창의 가로 넓이(width)</title>
            <description xml:lang="ko">팝업창의 가로넓이 픽셀값 입력 - 숫자만 입력 (기본값: 400)</description>
        </var>
         <var name="height">
            <title xml:lang="ko">팝업창의 세로 높이(height)</title>
            <description xml:lang="ko">팝업창의 세로높이 픽셀값 입력 - 숫자만 입력 (기본값: 400)</description>
        </var>
    </extra_vars>
</addon>

 

 

애드온에서 확장변수로 사용될 변수이름은 팝업으로 보여줄 외부 HTML 파일의 경로를 입력받는 html_path와 팝업창의 가로, 세로 크기를 픽셀 단위로 입력 받는 widthheight 변수이다. 애드온 만들기 학습자료이기 때문에 간단히 3개의 변수를 만들고 활용해 보는 것이다.

 

이렇게 입력 받는 확장변수의 값은 $addon_info 공통 전달 변수에 담아 준다. 애드온 실행파일에서는 $addon_info->html_path의 방법으로 접근하여 값을 받아 사용하게 된다.

 

따라서 다음과 같이 실행 파일의 팝업을 열어주는 window.open() 함수를 파라미터로 분리해 보고(정보 파일에서 변수와 값으로 활용하기 쉽도록) HTML 파일의 경로와 팝업창의 가로, 세로 크기를 $addon_info->html_path, $addon_info->width, $addon_info->height로 대체하여 수정한다.

 

▶ addons/popup_window/popup_window.addon.php

 

 

<?php
 
    if(!defined("__ZBXE__")) exit();
 
    /**
     * @file popup_window.addon.php
     * @author XE스쿨
     * @brief HTML 파일의 경로를 입력하면 설정된 mid에서 팝업창을 보여줍니다.
     **/
 
    if($called_position == 'before_module_proc' && Context::get('module') != 'admin' && $this->module_info->module_srl){
 
        // 팝업으로 보여줄 HTML 파일의 경로가 없는 경우 기본값으로 설정
        if (!$addon_info->html_path) $addon_info->html_path = './addons/popup_window/popup_example.html';
 
        // 입력된 경로에서 HTML 파일을 찾을 수 없는 경우 보여줄 메시지 파일의 경로 설정
        $content = FileHandler::readFile($addon_info->html_path);
        if (!$content) $addon_info->html_path = './addons/popup_window/nofile.html';
 
        // 팝업창의 가로와 세로값에 문제가 있는 경우 기본값 설정
        if (!$addon_info->width || !is_numeric($addon_info->width)) $addon_info->width = 400;
        if (!$addon_info->height || !is_numeric($addon_info->height)) $addon_info->height = 400;
 
        // 팝업창을 여는 window.open() 함수의 설정
        $url = $addon_info->html_path;
        $params = 'width = '.$addon_info->width.'';
        $params .= ', height = '.$addon_info->height.'';
        $params .= ', top= 10';
        $params .= ', left= 10';
        $params .= ', directories=no';
        $params .= ', location=no';
        $params .= ', menubar=no';
        $params .= ', resizable=no';
        $params .= ', scrollbars=no';
        $params .= ', status=no';
        $params .= ', toolbar=no';
        $popup_open = "noticeWindow = window.open('$url','notice', '$params'); \n";
        $popup_open .= "noticeWindow.opener = self;";
 
        $script = "<script type=\"text/javascript\">//<![CDATA[\n".$popup_open."\n//]]></script>";
        Context::addHtmlHeader($script);
 
    }
 
?>

 

 

window.open() 함수의 내용을 수정하고 업로드하게 되면 아직 입력받은 변수값이 없기 때문에 팝업창 실행에 어려움이 있을 것이다. 따라서 HTML 파일의 경로 설정값이 없는 경우와 가로, 세로값의 설정이 아직 없는 경우 기본적으로 값을 할당하기 위해 위와 같이 3가지 항목의 조건문을 추가한다.

  • 애드온 설정에서 HTML 파일의 경로가 입력되지 않은 경우 기본 예제 파일을 찾아 보여준다. 애드온은 켜고 끄는 설정만으로 동작하기 때문에 문제가 발생하는 경우 원인을 찾기가 쉽지 않다. 따라서 기본적인 파일을 미리 설정하여 작동여부를 쉽게 확인할 수 있도록 한다.
  • 만약 사용자가 입력한 경로(경로 오류)에서 목적 파일을 찾지 못하는 경우에도 팝업으로 알려준다.
  • 팝업창의 가로, 세로값이 입력되지 않은 경우에는 기본값으로 설정한다.

 

쿠키로 팝업 윈도우 애드온의 작동을 제어하자.

 

팝업의 실제 내용을 담고 있는 popup_example.html에서 "하루동안 이 창을 열지 않습니다."의 체크박스에 체크하고 닫게 되면 쿠키를 굽는다. 이때 쿠키의 이름은 "notice"이고 기간은 1일이다.

 

▶ addons/popup_window/popup_example.html

 

<script language="JavaScript">
<!--
    // 쿠키 굽기 
    function setCookie(name,value,expiredays) {
        var todayDate = new Date();
        todayDate.setDate(todayDate.getDate() + expiredays);
        document.cookie = name + "=" + escape(value) + "; path=/; expires=" + todayDate.toGMTString() + ";"
    }
    function closeWin(url) {
        // 체크박스가 체크 된 경우 쿠키를 굽고 창을 닫는다 
        if (document.form.chk.checked) setCookie("notice","true",1); // 1일 동안 
        self.close();
    }
    // 설정된 URL로 창을 닫고 이동한다
    function Go(url){
        opener.parent.location=url; 
        self.close();
    } 
// -->
</script>

 

 

이렇게 구워진 쿠키는 사용자 PC에 보관 되어 있다. 이때 애드온은 방문자에게 쿠키를 보여달라고 요구해야 한다. 만약 쿠키가 있으면 "나! 일 않해!", 쿠키가 없으면 팝업창을 열어서 보여준다...^^

 

애드온이 웹브라우저에게 쿠키를 보여달라고 요구하는 구문은 if($called_position == 'before_module_proc'){ 바로 다음 줄에 작성한다. (위쪽에 작성해도 같은 결과를 얻는다.)

 

// 팝업창에서 쿠키를 구웠을 때 쿠키의 존재여부에 따라 실행여부 결정, 쿠키의 이름은 notice

if ($_COOKIE['notice'] == "true" ) return;

 

 

애드온의 작동 방법과 실행 방법 등을 알아보기 위해 간단한 기초 팝업 윈도우 애드온을 만들어 보았다. 모달창을 이용하는 애드온, 또는 팝업 관리 모듈과 팝업 오프너 애드온을 활용하는 애드온 등은 공홈 자료실에서 다운로드 받을 수 있다. 심화학습은 이러한 애드온의 실행 파일을 참고하여 직접 수정해 보면서 확인해 본다.

 

완성된 기초 팝업 윈도우 애드온 학습자료 다운로드

 

popup_window_addon.zip

 

★ Tip : XE 사이트에서 팝업창이 메인창의 뒤로 숨는 경우

 

XE코어의 로그인 위젯(widgets/login_info/skins/xe_official/login_form.html 기준) 파일 안에는 아래와 같은 스크립트가 들어 있다.

 

<script type="text/javascript">
    var keep_signed_msg = "{$lang->about_keep_signed}";
    // 주석처리 xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); });
</script>

 

 

로그인 위젯이 들어있는 페이지가 로드 되었을때 아이디를 입력하는 <input /> 상자에 포커스를 두겠다는 의미이다. 바로 위 var keep_signed_msg 변수는 "로그인 유지"에 체크한 경우 출력되는 안내 메시지를 위한 언어변수 설정이다. 아래에 있는 xAddEventListener() 함수만 주석 처리 한다. 위와 같은 구문이 맨 하단에도 있다. 같은 방법으로 주석처리하거나 한 줄 뿐이므로 삭제한다. 그러면 메인창보다 앞 쪽에 뜨는 팝업창이 가리지 않게 된다.

 

★ Tip : 팝업창이 2개 이상 필요한 경우

 

정보 파일(info.xml)과 실행 파일(popup_window.addon.php)을 위에서 학습한 내용을 참고하여 수정하면 된다. 정보 파일에서 각각 확장변수를 새로 등록하고 실행파일에서 팝업창1,2의 사용여부에 따라 조건으로 구분하여 실행하면 되는 것이다. 꼭 직접 만들어 보기를...

이것이 귀찮으면 아래 자바스크립트 소스코드를 레이아웃에 넣어보자. 똑같은 일을 한다. 상단에 넣어도 되고 맨 하단에 넣어도 잘 동작한다. 만약 팝업창2가 필요없다면 주석으로 처리한다. 잡다한 소스가 없어서 코어 버전에 전혀 영향을 받지 않는다.

 

한정된 mid에서만 팝업창이 열리기를 바란다면 <block cond="$mid=='welcome_page'"> ... 소스코드 ... </block>으로 감싸주면 된다.

 

<script type="text/javascript">
<!--
    function getCookie( name ) {
        var nameOfCookie = name + "=";
        var x = 0;
        while ( x <= document.cookie.length ) {
            var y = (x+nameOfCookie.length);
            if ( document.cookie.substring( x, y ) == nameOfCookie ) {
                if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )    endOfCookie = document.cookie.length;
                return unescape( document.cookie.substring( y, endOfCookie ) );
            }
            x = document.cookie.indexOf( " ", x ) + 1;
            if ( x == 0 )
            break;
        }
        return "";
    }
     
    // 팝업창 1
    // 쿠키가 없으면 팝업창 출력
    if ( getCookie( "notice" ) != "true" ){
        noticeWindow = window.open('./addons/popup_window/popup_example.html','notice','width=400,height=400,top=10,left=10,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
        noticeWindow.opener = self;
    }
 
    // 팝업창 2 
    if ( getCookie( "notice2" ) != "true" ){
        noticeWindow = window.open('./addons/popup_window/popup_example2.html','notice2','width=400,height=400,top=10,left=420,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no');
        noticeWindow.opener = self;
    }
//-->
</script>

 

 

※ XE 템플릿 문법 <block>...</block>문은 [레이아웃 설정]의 헤더 스크립트 코드 입력란(<head>...</head>)에 사용하면 인식하지 못한다. [레이아웃 편집]의 HTML 코드 수정에서 사용해야 한다.(레이아웃 안에서만 사용이 가능하다.) 위 자바스크립트 소스코드만 사용한다면 [레이아웃 설정]에 추가하여 <head>...</head> 안으로 추가하고 사용할 수 있다.

 

<block>...</block>문을 애써 넣으려고 하지 말자. 방문자는 팝업이 귀찮으면 "하루동안 이 창을 열지 않습니다"에 체크하면 그만이다...^^

 

 

💖 탑돌이님 에게 암호화폐로 후원하기 💖

  • 아이콘을 클릭하면 지갑 주소가 자동으로 복사 됩니다

    입금주소 rp2diYfVtpbgEMyaoWnuaWgFCAkqCAEg28  

    XRP 리플 입금( 기부) 하는법

    데스티

    네이션 태그

    1175658134

    각 거래소에서 입금주소 와 데스티네이션 태그를 입력하시면 됩니다.


    QR 코드
    xrp.png

    리플 송금시 주의할 점

    • 송금 후에 잔액이 항상 20XRP를 유지가능하도록 해야한다.
    • 송금요청할 때 트렌젝션 사용시 0.000015XRP가 무조건 지불된다.
    • 리플에서 제공해주는 지갑에 보관단위가 XRP뿐만 아니라 다른코인(예: BTC, LTC 등), USD, KRW 단위로 저장해놓을 수 있다.

    만약 히스토리가 궁금할경우 https://xrpcharts.ripple.com/graph/ 에서 리플 지갑 주소를 입력하면 역추적이 가능하다.

    리플 주소를 처음 만들경우 주소는 발급되지만 실제 활성화가 되어 있지 않는다. 최소 20XRP을 어디선가 송금 받은 후부터 지갑이 활성화 된다. 일종의 지갑 구입 or 보증금인듯

    태그 연관된 글
    1. [2020/08/14] CMS 연령구분 회원가입 애드온 by 탑돌이 (97)
    2. [2020/08/14] CMS 단어 차단 애드온 만들기 by 탑돌이 (153)
    3. [2020/08/14] CMS 애드온의 제작 규칙 by 탑돌이 (63)
    4. [2020/08/14] CMS 애드온의 기초 이해 by 탑돌이 (184)
    5. [2020/08/14] CMS XE 애드온 개발하기 by 탑돌이 (45)
    6. [2020/08/14] CMS XE 애드온 by 탑돌이 (38)
    7. [2014/10/13] 공지사항 12개의 모듈과 애드온을 추가함 by 부운영자 (858)
    8. [2014/10/13] CMS 12개의 기능적인 모듈과 애드온 추가 by 부운영자 (961)
    TAG •
    Attach Images or Files

    Drop your files here, or click the button to the left.

    Maximum File Size : 0MB (Allowed extentsions : *.*)

    0 file(s) attached ( / )

    제로XE/라이믹스/그누/워드프레스

    회원만 쓰기 가능합니다.

    List of Articles
    No. Category Subject 페이지 Author Date Views
    Notice Tip&Tech xe 동작순서 부운영자 2015.08.24 977
    Notice Tip&Tech XE의 애드온 및 모듈의 기능 요약표 부운영자 2015.01.16 1219
    Notice Tip&Tech XEReferences 부운영자 2014.11.29 875
    Notice Tip&Tech XE 스킨 제작 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1236
    Notice Tip&Tech XE 개발자 매뉴얼 v1.1 (Korean, PDF) file 부운영자 2014.11.29 1732
    Notice Tip&Tech xe 레퍼런스 모음 file 부운영자 2014.10.10 2501
    화제의 글 Tip&Tech PHP용 로그 라이브러리 공유합니다. 부운영자 2021.03.29 48
    화제의 글 Tip&Tech plusad_widget 안되는것 ? 부운영자 2021.02.21 54
    화제의 글 Tip&Tech Font Awsome, XEICON 함께 사용하기 부운영자 2020.11.26 135
    265 Tip&Tech PHP Warning: Division by zero https://stackoverflow.com/questions/18408640/php-warning-division-by-zero If the expected value can be 0 (therefore does not need validation), I do this to keep things quick, clean and easy: ==&gt;깜금한 처리 $percentage = $sum1 / ($sum2 ?: 1) 부운영자 2021.05.16 1
    264 Tip&Tech PHP용 로그 라이브러리 공유합니다. PHP용 로그 라이브러리 공유합니다. PHP 개발할때 가장 불편한 점은 로그 출력이죠. 서버 사이드에서 실행되는 스크립트이다보니 로그가 파일로 출력되어 화면에 실시간으로 띄워서 보기가 어렵습니다. 보통 tail로 살펴보는 방법이 일반적으로 사용됩니다만 이 역시 서버의 특성상 나 혼자 접속한 개발서버라면 모르겠지만 ... 부운영자 2021.03.29 48
    263 XE/라이믹스 게시글 DB 수동이동 update rx_documents set module_srl = 288812 where module_srl = 118187; update rx_comments set module_srl = 288812 where module_srl = 118187; update rx_files set module_srl = 288812 where module_srl = 118187; 부운영자 2021.03.17 27
    262 매뉴얼 xml 쿼리 사용법 undefined groom.com 부운영자 2021.03.08 29
    261 Tip&Tech plusad_widget 안되는것 ? &lt;div id=&quot;plusad_widget_wrap&quot;&gt; &lt;div class=&quot;plusad_point&quot; cond=&quot;$widget_info-&gt;ad_point_use == &#039;yes&#039;&quot;&gt;&lt;a href=&quot;{getUrl(&#039;&#039;,&#039;mid&#039;,$widget_info-&gt;name,&#039;act&#039;,&#039;dispPlusadlist&#039;)}&quot; title=&quot;광고를 등록하세요&quot;&gt;AD&lt;/a&gt;&lt;/div&gt; &lt;ul id=&quot;plusad_widget&quot;&gt; &lt;!--@if(!$ad_list)--&gt; &lt;li&gt; &lt;a style=&quot;font-weight:bold; color:red;&quot; h... 부운영자 2021.02.21 54
    260 Tip&Tech Add chunk size setting to editor/uploader 대용량 파일 첨부 지원 by kijin · Pull Request #663 · rhymix/rhymix 라이믹스 1주년 기념 패치!!! 더이상 호스팅 업체의 업로드 용량 제한이나 클라우드플레어의 100MB 제한에 신경쓸 필요가 없도록 합니다. 단독서버라도 php.ini에서 업로드 허용 용량을 지나치게 키우면 메모리 사용량이 덩달아 늘어나므로 조금씩 나눠... 부운영자 2021.02.20 29
    259 Tip&Tech 애드센스 광고 출력 안되는 심각한 문제 애드센스 광고 출력 안되는 심각한 문제 페이지 내에 반응형 광고가 포함되어 있는 경우 발생하는 큰 문제 입니다. 저도 작지만 애드센스 수입이 고정적으로 있었는데 최근 급격한 수입이 감소한 것을 이상하게만 생각하다 오늘 이것 저것 점검하면서 또 질문게시판의 게시글을 보고 점검하면서 대략 원인을 찾았습니다. 우... 부운영자 2021.02.19 24
    258 XE/라이믹스 애드센스 출력이 안되는 케이스 중 하나 애드센스 출력이 안되는 케이스 중 하나 예전에는 문제가 없었던 것 같은데 최근 구글에서 변화가 있었는지 이런 케이스는 구글광고가 오류가 나고 출력이 안되니 참고해서 광고 출력 방법을 변경하셔야 할 것 같아 공유해 드립니다. 화면에 출력될 광고 여러개를 한꺼번에 요청하고 그중 일부는 display:none 등으로 처리하... 부운영자 2021.02.04 23
    257 XE/라이믹스 XECon2016 - XE1 가지치기와 오픈소스 생태계의 미래. 포에시스 대표, 라이믹스 개발자... 부운영자 2021.01.05 26
    256 Tip&Tech Font Awsome, XEICON 함께 사용하기 undefined xsitelab.com 부운영자 2020.11.26 135
    255 Tip&Tech 트래픽 호로록 하는 도둑놈 (feat. 에디터 자동완성모듈) 트래픽 호로록 하는 도둑놈 (feat. 에디터 자동완성모듈) 자동완성모듈 기능 중 이미지 편집 기능 사용할 경우 스크립트 하나가 필요합니다. 그런데 이게 무려 2M에 가까운 용량입니다. 물론 필요한 파일은 사용해야죠. 그런데 문제는 실제 누구에게 필요한가? 를 생각하면 불필요한 트래픽이 누수되는 것을 확인할 수 있습... 부운영자 2020.10.10 133
    254 워드프레스 스팸방지 이미지 엑박방지 htacces wp &lt;IfModule mod_rewrite.c&gt; Options All -Indexes RewriteEngine on # Block Bad Bots &amp; Scrapers SetEnvIfNoCase User-Agent &quot;Aboundex&quot; bad_bot SetEnvIfNoCase User-Agent &quot;80legs&quot; bad_bot SetEnvIfNoCase User-Agent &quot;360Spider&quot; bad_bot SetEnvIfNoCase User-Agent &quot;^Java&quot; bad_bot SetEnvIfNoCase User-Agent &quot;^Cogent... 부운영자 2020.10.02 179
    253 워드프레스 워드프레스 설치순서 3 secret 부운영자 2020.10.02 4
    252 Tip&Tech 네이버 클라우드 플랫폼의 'Chatbot' 서비스를 소개합니다 [간단 챗봇 만들기] 네이버 클라우드 플랫폼의 ´Chatbot´ 서비스를 소개합니다. 안녕하세요, 네이버 클라우드 플랫폼입니다.몇 달 전, Chatbot 서비스 출시 소식을 전해드렸었는데요.... 네이버 블로그 | 네이버 클라우드 플랫폼 - 네이버 블로그 | 네이버 클라우드 플랫폼 부운영자 2020.08.29 97
    251 Tip&Tech memcache, memcached 비교 memcache, memcached 비교 PHP Client Comparison There are primarily two clients used with PHP. One is the older, mor... 네이버 블로그 | brian2님의 블로그 - 네이버 블로그 | brian2님의 블로그 탑돌이 2020.08.22 82
    250 위젯 확장변수 출력 위젯 만들기 Extra_vars Widget 확장변수 출력(extra_vars) 위젯 만들기 sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18235319 게시판의 게시물의 확장 변수를 출력하는 위젯입니다. Document 모듈을 이용하여 관리자가 원하는 확장변수를 순서데로 출력하는 위젯입니다. 개발에 앞서 디렉토리 준비하기 모든... 0004 부운영자 2020.08.15 104
    249 애드온 연령구분 회원가입 애드온 Member_join_extend Add-on 14세 이상/미만 구분 회원가입 애드온 만들기 SMaker님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/wiki/18257064 회원가입시 14세 이상/미만 구분 및 약관/개인정보취급방침 동의 절차를 추가하는 애드온 입니다. 회원가입 폼인 &quot;dispMemberSignUpForm&quot; 액션시 애드온 호... 00016 탑돌이 2020.08.14 97
    248 애드온 단어 차단 애드온 만들기 Block_Word Add-on 단어 차단 애드온 만들기 sol님의 글을 전문인용하여 재구성하였다. - http://xe.xpressengine.net/18229352 block_word 애드온은? 사용자가 쓴 게시물과 댓글이 출력될 때 애드온 설정에 등록해 놓은 문자들을 &#039;***&#039; 로 가려서 보여주는 애드온을 만들어 볼 것 입니다. 애드온에서 단어들을 입력 받고, ... 00015 탑돌이 2020.08.14 153
    247 Tip&Tech 상단네비 목록(위로) 목록(아래로) 스크립트 안먹힘 위 두개 안먹힘 라이믹스 스케치북 게시판 및 스케치북 게시판 1.72 스크롤 이슈 https://xetown.com/index.php?mid=qna&amp;category=671911&amp;document_srl=757026&amp;comment_srl=757413&amp;page=1 기존에 작성했던 글입니다. 라이믹스 스케치북 게시판과 스케치북 게시판 1.7.2에서 이상하게 &quot;크롬&quot;에서만 위, 아래, 상단 바 댓글가... file 탑돌이 2020.08.14 126
    » 애드온 기초 팝업 윈도우 애드온 만들기 Popup window Add-on 기초 팝업 윈도우 애드온 만들기 애드온의 작동 방법과 호출 시점을 살펴보고 확장변수를 활용하여 외부 HTML 파일을 찾아 팝업윈도우 형태로 출력해 주는 기초적인 팝업 윈도우 애드온을 만들어 본다. 팝업 윈도우 애드온의 정보 파일(info.xml) 작성하기 XE코어가 xe/ 디렉터리에 설치되어 있다면 xe/... 00014 탑돌이 2020.08.14 303
    List
    Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
    / 14