2. Alapfogalmak
node object:
{node} t叩bla
hookok 叩ltal adott plussz dolgok
node id:
egyedi azonos鱈t坦ja a node-nak
nid n辿ven szerepel az adatb叩zist叩bl叩kban
12. hook_perm()
function hook_perm() {
return array(
'create example content',
'delete own example content',
'delete any example content',
'edit own example content',
'edit any example content',
);
}
13. hook_access()
function hook_access($op, $node, $account) {
if ($op == 'create') {
return user_access('create example content', $account);
}
if ($op == 'update') {
if (user_access('edit any example content', $account) || (user_access('edit own example content', $account) &&
($account->uid == $node->uid))) {
return TRUE;
}
}
if ($op == 'delete') {
if (user_access('delete any example content', $account) || (user_access('delete own example content', $account) &&
($account->uid == $node->uid))) {
return TRUE;
}
}
if ($op == 'view') {
return NULL;
}
}
14. hook_access()
Visszat辿r辿si 辿rt辿k:
TRUE enged辿ly megadva
FALSE enged辿ly megtagadva
NULL nem rendelkezik, 鱈gy majd a node_access
t叩bla d旦nt, vagy valamelyik m叩s access control
modul
18. hook_update()
function hook_update($node) {
if($node->revision) {
hook_insert($node);
} else {
db_query('UPDATE {node_foo} SET extra = '%s'
WHERE nid = %d', $node->extra, $node->nid);
}
}
22. hook_load()
function hook_load($node) {
$additions = db_fetch_object(db_query('SELECT *
FROM {node_foo} WHERE nid = %d AND vid =
%d', $node->nid, $node->vid));
return $additions;
}
23. Theme f端ggv辿ny
function theme_node_example_order_info($node) {
$output = '<div class="node_example_order_info">';
$output .= t('The order is for %quantity %color items.',
array('%quantity' => check_plain($node->quantity),
'%color' => check_plain($node->color)));
$output .= '</div>';
return $output;
}
24. P辿lda
Blog modul (k旦nnyen olvashat坦, r旦vid)
Book modul
26. hook_nodeapi()
Az egyik legcs炭ny叩bb s-Drupal f端ggv辿ny, ami
benne maradt a Drupal 6-ban
Szignat炭ra
function hook_nodeapi(&$node, $op, $a3 = NULL,
$a4 = NULL)
27. $op lista
alter: $node->content lerendereld旦tt, a body
辿s a teaser HTML-t tartalmaz. Ezt az $op-ot
nyers sz旦vegm撤veletekre (cser辿l辿s, sz撤r辿s)
szabad haszn叩lni
delete: a node t旦rl辿s辿n辿l hajt坦dik v辿gre
delete revision: node revision t旦rl辿se (erre az
egy $op-ra saj叩t tartalomt鱈pusn叩l is lehet
sz端ks辿g, mivel csak 鱈gy lehet revision-t t旦r旦lni)
28. $op lista
insert: a node l辿trej旦n
load: a node bet旦ltdik. Itt lehet hozz叩adni
dolgokat a node objecthez.
prepare: a node megjelenni k辿sz端l egy add/edit
formon
prepare translation: a node ford鱈t叩shoz val坦
kl坦noz叩sakor fut le
print: a node elk辿sz端l nyomtat叩sra (p辿lda:
book modulban)
29. $op lista
rss item: RSS gener叩l坦dik. L叩sd
comment_nodeapi() f端ggv辿ny
search result: a node keres辿si eredm辿nyk辿nt
lesz megjelen鱈tve. Csak plussz inform叩ci坦
叩tad叩s叩ra lehet ezt haszn叩lni.
presave: a node m叩r valid叩l坦dott, de m辿g nincs
mentve
30. $op lista
update: node friss端l
update index: a node indexeldik. Arra val坦,
hogy extra inform叩ci坦 is indexeldj旦n (amit nem
ad 叩t a hook_view())
validate: ugyanaz, mint a hook_validate()
view: k旦zvetlen a hook_view() ut叩n lesz
megh鱈vva a node megjelen鱈t辿sekor