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

Comments

9 comments posted
마지막 부분에 있는

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

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

Posted by palpal on Fri, 2009-01-30 18:44
$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 이다.

Posted by palpal on Tue, 2009-02-03 00:53
아래 주소에는,

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

Posted by palpal on Fri, 2009-02-13 10:13
드루팔6에서

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

Posted by palpal on Fri, 2009-02-13 11:18
드루팔에서 복수의

드루팔에서 복수의 DB를 동시에 건드릴 때 필요한 지식을 소개합니다. $db_url을 배열화해서 DB 커넥션을 왔다갔다 하는 거죠.
http://drupal.org/node/18429

하지만 이 방법은 컨넥션 충돌 및 로직이 복잡해 질 우려가 있기 때문에 보다 더 나은 방법으로 REST나 QueryPath에 의한 별도 DB조회를 권합니다.

Posted by 익명 on Sun, 2009-04-05 23:11
QueryPath 를 이용한

QueryPath 를 이용한 여타 DB의 컨넥션 예제입니다.

Form용 메뉴 피이드백을 설정후, /qp/pdo 로 확인.

<?php
function querypath_examples_show_pdo() {

 

$module_path = drupal_get_path('module', 'querypath_examples');
  require_once
$_SERVER['DOCUMENT_ROOT']."/".$module_path.'/QueryPath/QueryPath.php';
  require_once
$_SERVER['DOCUMENT_ROOT']."/".$module_path.'/QueryPath/Extension/QPDB.php';
 
// 표준 DB library 예제에서는 Extension이 Extensions로 돼 있어 require_once 에러가 나므로 주의.

 

QPDB::baseDB('mysql:host=localhost;dbname=testdb', array('username'=>'[connuser]','password'=>'[connpass]') );
 
$sql = 'SELECT abcd FROM tbl001 LIMIT 10 ';
 
$xml_header = '<'.'?xml version="1.0"?'.'><ul></ul>';   // highlight가 조금 이상해서 꽁수를 씀.
 
$ul = qp( $xml_header )
    ->
query($sql)
    ->
withEachRow()
    ->
appendColumn('abcd', '<li/>')
    ->
top()
    ->
html();
   
 
$out .= $ul;
 
// $out .= highlight_string($code, TRUE);
 
 
$out .= '<h2>' . t('References:') . '</h2>';
  return
$out;
}
?>

* 참고 주소 :
http://jp.php.net/manual/en/ref.pdo-mysql.connection.php
http://jp.php.net/manual/en/ref.pdo-mysql.php
https://fedorahosted.org/querypath/wiki/QueryPathDataBase

Posted by 익명 on Mon, 2009-04-06 00:23
QueryPath는 xml나 html로

QueryPath는 xml나 html로 다루기는 좋지만, 배열로 다룬다면 PDO 자체가 더 좋습니다.
QueryPath도 PDO를 이용하니까 동시에 여러 DB 접속해도 드루팔에서 문제 없습니다.

Posted by 익명 on Mon, 2009-04-06 17:00
서버간 Sync에 관한

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

Posted by palpal on Fri, 2009-09-11 11:20
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-...

Posted by palpal on Wed, 2011-11-30 21:19