hook_token_list
을 구현하지 않았을 수도 있습니다. 새 토큰을 제공하는 과정은 다음 두 단계로 이루어집니다.
- 제공 할 토큰을 선언하려면 구현을
hook_token_list
으로 지정하십시오. 이것은 토큰의 이름 일 뿐이며 간단한 설명과 토큰이 적용될 객체 유형에 대한 정보 (예 : 노드, 사용자, 택 소노 미 ...)
- 실제로 내용을 생성하려면
hook_token_value
을 구현하십시오. 토큰의 이것은 토큰이 서 있어야 할 내용으로 대체 될 때 호출됩니다.
토큰 모듈이 이미 제공 한 타이틀 토큰의 대체 버전을 제공하려는 경우 token_node.inc에서 관련 부분을 복사하고 관련 사례로 잘라내어 다른 모듈에서 사용할 수 :
는
/**
* Implementation of hook_token_list().
*/
function yourModule_token_list($type = 'all') {
if ($type == 'node' || $type == 'all') {
$tokens['node']['yourModule-title'] = t('Node title (customized version by yourModule)');
return $tokens;
}
}
이것은 단순히 yourModule
짧은 설명과 함께, yourModule-title
라는 이름의 노드 객체에 대한 토큰을 제공하는 것을 말한다. 주요 작품은 다른 후크에서 수행됩니다 :
/**
* Implementation of hook_token_values().
*/
function yourModule_token_values($type, $object = NULL, $options = array()) {
$values = array();
switch ($type) {
case 'node':
$node = $object;
// TODO: Replace the check_plain() call with your own token value creation logic!
$values['yourModule-title'] = check_plain($node->title);
break;
}
return $values;
}
노드 객체에 대한 토큰이 필요할 때마다이이 문제의 노드가 사용자 토큰합니다 ($object
매개 변수로 전달되는으로 호출 될 것이라고 $type
는 것 'user'가되고 $object
은 사용자 개체가되고 다른 유형도 마찬가지입니다. 그것이하는 일은 토큰 이름을 키로하여 값의 배열을 작성하는 것입니다.이 토큰을 값으로 대체합니다. token_node.inc의 원래 코드는 check_plain()
을 통해 제목을 실행하기 때문에 자신의 논리를 삽입 할 수 있습니다.
당신이 이해하지 못했던 부분에 대해 좀 더 구체적으로 설명해 주시겠습니까? –