upgrade omega again
[indybay:drupal.git] / docs / sites / all / modules / contrib / context / plugins / context_reaction_breadcrumb.inc
1 <?php
2
3 /**
4  * Set the breadcrumb using a context reaction.
5  */
6 class context_reaction_breadcrumb extends context_reaction_menu {
7   /**
8    * Override of execute().
9    */
10   function execute(&$vars = NULL) {
11     if ($active_paths = $this->get_active_paths()) {
12       $breadcrumb = array(l(t('Home'), '<front>', array('purl' => array('disabled' => TRUE))));
13       foreach ($active_paths as $path) {
14         $result = db_select('menu_links')
15           ->fields('menu_links', array('p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8'))
16           ->condition('hidden', 0)
17           ->condition('link_path', $path)
18           ->execute();
19         while ($parents = $result->fetchAssoc()) {
20           $set = FALSE;
21           foreach (array_filter($parents) as $plid) {
22             $parent = menu_link_load($plid);
23             if ($parent && $parent['access'] && empty($parent['hidden']) && !empty($parent['title'])) {
24               $set = TRUE;
25               $breadcrumb[] = l($parent['title'], $parent['href']);
26             }
27           }
28           // Only set the breadcrumb if one or more links were added to the
29           // trail. If not, continue iterating through possible menu links.
30           if ($set) {
31             drupal_set_breadcrumb($breadcrumb);
32             break;
33           }
34         }
35       }
36     }
37   }
38 }
39