drupal 모듈 작성시 유용한 각종 변수, 함수들

drupal에 특화된 모듈을 PHP 작성할 때,
아래와 같은 변수, 함수들을 알면 매우 유용하다.

1. 현재 로그인한 유저 정보를 확인할 때

    global $user;
    drupal_set_message( "<pre>".print_r( $user, true )."</pre>" );

* 참고로 현재 로그인한 유저의 롤은 $user->roles로 확인 가능하다.

2. 모듈의 상대 패스(드루팔 설치폴더 이하)를 알고 싶을 때

$module_path = drupal_get_path('module', '작성한 모듈명');

* 참고로 드루팔 모듈은 3군데 이상(modules, sites/사이트명/modules,
sites/all/modules, sites/default/modules )에 배치 가능하다.
그러다 보니 패스확인을 위해 위와 같은 drupal_get_path 함수가 필요하다.

* 그러므로 한 모듈 아래에 images 폴더가 있는 경우에는,

      <img src='".$base_root."/".$module_path."/images/draggable-sample.png' align='absmiddle'/>

와 같이 하면 된다.

* 현재 돌고 있는 드루팔의 최상단 웹주소를 알려면, 다음과 같이 하라.
global $base_root, $base_url; // $base_url 은 settings.php 에 지정한 경우이다.

3. files이하의 특정 파일에 대한 uri을 얻는 경우에는 아래를 참고.
http://api.drupal.org/api/drupal/includes--file.inc/function/file_direct...

예를 들어, files폴더 아래에 있는 imagecache 폴더의 uri를 얻으려는 경우에는,

$strPrefix = "/".$base_url.file_directory_path()."/imagecache/";

처럼 변수를 지정하면 되겠다.

Your rating: None 평균 : 5 (1 vote)

댓글

마지막 부분에 있는

마지막 부분에 있는 $GLOBALS['base_path'] 는
default.settings.php 에 설정하지 않으면 작동하지 않는 듯 하다.

참고로 drupal_get_path 함수에 관한 더 상세한 설명이 있는 주소를 적어둔다.
http://tgaconnect.com/drupaldox/html/da/d5e/common_8inc_e3bbe8f97bf07bb0...

$user->roles 에 관한

$user->roles 에 관한 좋은 예제가 아래 주소에 있다.
http://www.bywombats.com/blog/ryan/10-25-2007/checking-if-drupal-user-ha...

참고 1 - 관리자 권한을 체크하는 예제

<?php
 
global $user;

 

// Check to see if $user has the administrator role.
 
if (in_array('administrator', array_values($user->roles))) {
   
// Do something.
 
}
?>

참고 2 - 익명 권한을 체크하는 예제

<?php
 
global $user;

 

// Check to see if $user has the administrator role.
 
if (in_array('anonymous user', array_values($user->roles))) {
   
// Do something.
 
}
?>

* 언제나 주의)
global $user; 를 미리 해 주어야만 $user->roles 가 제대로 작동한다.
참고로 현재 로그인 사용자 어카운드명은 $user->name 이다.

아래 주소에는,

아래 주소에는, 드루팔6에서 사용하는 Global 변수에 관한 설명이 모여있다.
http://api.drupal.org/api/file/developer/globals.php/6

드루팔6에서

드루팔6에서 사용하는 DB 조회 관련 API를 모아둔 곳도 있다.
http://api.drupal.org/api/group/database/6

서버간 Sync에 관한

서버간 Sync에 관한 모듈 예제가 본 기사의 첨부에 들어있다.

drupal_get_path에 관한 드루팔API는

drupal_get_path에 관한 드루팔API는 아래 주소에서 참고.
http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_ge...

files이하의 특정 파일에 대한 uri을 얻는 경우에는 아래를 참고.
http://api.drupal.org/api/drupal/includes--file.inc/function/file_direct...
http://stackoverflow.com/questions/3519843/how-to-get-absolute-path-for-...