getUrl()

조회 수 3852 추천 수 0

정의 위치

  • ./config/func.inc.php

정의 내용

/**
 * Get a encoded url. Define a function to use Context::getUrl()
 *
 * getUrl() returns the URL transformed from given arguments of RequestURI
 * <ol>
 *  <li>argument format follows as (key, value).
 * ex) getUrl('key1', 'val1', 'key2',''): transform key1 and key2 to val1 and '' respectively</li>
 * <li>returns URL without the argument if no argument is given.</li>
 * <li>URL made of args_list added to RequestUri if the first argument value is ''.</li>
 * </ol>
 *
 * @return string
 */
function getUrl()
{
    $num_args = func_num_args();
    $args_list = func_get_args();

    if($num_args)
        $url = Context::getUrl($num_args, $args_list);
    else
        $url = Context::getRequestUri();

    return preg_replace('@\berror_return_url=[^&]*|\w+=(?:&|$)@', '', $url);
}

 

용도

  • XE 의 각종 변수들로 구성된 주소를 생성합니다.
  • 리라이트 모드 작동 여부, 리라이트 모드로 변하는 주소 구조 등을 모두 고려해서 주소 문자열을 생성하기 때문에 편리합니다.
  • & 등의 htmlentities 기호를 &amp; 로 변경해서 출력합니다. 변경하지 않기를 원한다면 같은 사용법으로 getNotEncodedUrl() 를 이용할 수 있습니다.
  • getUrl('변수명1', '변수 값1', '변수명2', '변수 값2' ... '변수명n', '변수 값n') 의 형태로 사용하게 되면, 기존에 GET 메소드로 전달된 변수를 포함한 주소가 생성되고, getUrl('', '변수명1', '변수 값1', '변수명2', '변수 값2' ... '변수명n', '변수 값n') 의 (첫 칸 공백) 형태로 사용하게 되면, GET 으로 전달된 변수는 모두 무시한 주소가 생성됩니다.

예시

  1. ./modules/rss/rss.model.php 내용 중 getModuleFeedUrl() 메소드
    • /**
      		 * Create the Feed url.
      		 *
      		 * @param string $vid Vid
      		 * @param string $mid mid
      		 * @param string $format Feed format. ef)xe, atom, rss1.0
      		 * @return string
      		 */
      		function getModuleFeedUrl($vid = null, $mid, $format)
      		{
      		    if(Context::isAllowRewrite())
      		    {
      		        $request_uri = Context::getRequestUri();
      		        // If the virtual site variable exists and it is different from mid (vid and mid should not be the same)
      		        if($vid && $vid != $mid)
      		        {
      		            return $request_uri.$vid.'/'.$mid.'/'.$format;
      		        }
      		        else
      		        {
      		            return $request_uri.$mid.'/'.$format;
      		        }
      		    }
      		    else
      		    {
      		        return getUrl('','mid',$mid,'act',$format);
      		    }
      		}

       
  2. ./modules/install/script/welcome_content_ko.html
    • <link rel="stylesheet" href="./layouts/xedition/css/welcome.css" />
      		<div class="welcomeXE">
      		    <section class="intro">
      		        <span class="noti">WELCOME TO</span>
      		        <h1 class="tit">WELCOME TO XPRESSENGINE</h1>
      		        <P class="cont">XpressEngine은 자유로운 웹 콘텐츠 발행을 돕는 CMS입니다.<br />간편한 설치와 다양한 추가 프로그램을 활용하여<br /> 자신만의 웹페이지를 쉽고 빠르게 만들 수 있습니다.</P>
      		        <a href="{getUrl('', 'module', 'admin')}" target="_blank" class="btn_start">XE 시작하기</a>
      		    </section>
      		</div>

      ​​​
  3. ./widgets/login_info/skins/xe_globalTwo/login_info.html
    • <!--// colorset의 값에 따라 css 파일을 import 한다 -->
      		<!--@if($colorset=="black")-->
      		    <!--%import("css/black.css")-->
      		<!--@elseif($colorset=="white")-->
      		    <!--%import("css/white.css")-->
      		<!--@else-->
      		    <!--%import("css/default.css")-->
      		<!--@end-->
      		
      		<!--%import("./filter/logout.xml")-->
      		
      		<form action="" method="post" class="fo_login_widget">
      		<fieldset id="login" class="login_{$colorset}">
      		<legend>{$lang->cmd_login}</legend>
      		
      		    <div class="userName">
      		        <div class="fl u_name"><div class="member_{$logged_info->member_srl}"><strong>{$logged_info->nick_name}</strong></div></div>
      		        <div class="fr sign_btn"><a href="{getUrl('act','dispMemberLogout')}"><img src="./images/{$colorset}/buttonLogout.gif" alt="{$lang->cmd_logout}" width="58" height="22" /></a></div>
      		    </div>
      		    <ul class="userMenu">
      		        <!--@foreach($logged_info->menu_list as $key => $val)-->
      		        <li><a href="{getUrl('act',$key,'member_srl','','page','')}">{Context::getLang($val)}</a></li>
      		        <!--@end-->
      		
      		        <!--@if($logged_info->is_admin=="Y" && !$site_module_info->site_srl)-->
      		        <li><a href="{getUrl('','module','admin')}" onclick="window.open(this.href);return false;">{$lang->cmd_management}</a></li>
      		        <!--@end-->
      		    </ul>
      		    <p class="latestLogin">{$lang->last_login}<br /><span>{zDate($logged_info->last_login, "Y-m-d H:i")}</span></p>
      		</fieldset>
      		</form>

       

 

TAG •
  • ?
    2../modules/install/script/welcome_content_ko.html 부분 코드 하이라이터가 <br /> 이라고 입력한 부분을... 정말 Html 코드로 해석하는 것 같습니다..