Drupal Block Callback Example


/ Published in: PHP
Save to your folder(s)

This is a callback example that can be used to conditionally display blocks on specific pages. In this example, I load all nodes with a specific field and return false if the value of that field is equal to the user id of the logged in user. The snippet in it's entirety probably won't be helpful, but it contains functions that have many applications.


Copy this code and paste it in your HTML
  1. <?php
  2.  
  3. if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) { # if is node
  4. global $user; # get info of logged in user
  5. $nid = arg(1); # define node id
  6. $node = node_load($nid); # load node info
  7.  
  8. $items = field_get_items('node', $node, 'FIELD_LABEL_HERE', $node->language); # get nodes by field value
  9. if($items) {
  10. foreach ($items as $item)
  11. {
  12.  
  13. # loop through matching nodes
  14. # Example below: if a matching node has a field value equal to the uid of the logged in user, return false
  15. if($item['target_id'] == $user->uid) { return false; }
  16.  
  17. }
  18. }
  19.  
  20. }
  21.  
  22. ?>

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.