getUrl()
정의 위치
- ./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);
}
* 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 기호를 & 로 변경해서 출력합니다. 변경하지 않기를 원한다면 같은 사용법으로 getNotEncodedUrl() 를 이용할 수 있습니다.
- getUrl('변수명1', '변수 값1', '변수명2', '변수 값2' ... '변수명n', '변수 값n') 의 형태로 사용하게 되면, 기존에 GET 메소드로 전달된 변수를 포함한 주소가 생성되고, getUrl('', '변수명1', '변수 값1', '변수명2', '변수 값2' ... '변수명n', '변수 값n') 의 (첫 칸 공백) 형태로 사용하게 되면, GET 으로 전달된 변수는 모두 무시한 주소가 생성됩니다.
예시
- ./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);
}
}
-
- ./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>
-
- ./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>
-
댓글 1