[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/panels/includes/ -> callbacks.inc (source)

   1  <?php
   2  // $Id: callbacks.inc,v 1.2.4.14 2010/08/30 22:08:57 merlinofchaos Exp $
   3  /**
   4   * @file callbacks.inc
   5   * Minor menu callbacks for Panels helpers.
   6   */
   7  
   8  /**
   9   * A central administrative page for Panels.
  10   */
  11  function panels_admin_page() {
  12    return theme('panels_dashboard');
  13  }
  14  
  15  function panels_dashboard_final_blocks(&$vars) {
  16    // Add in links for missing modules that we still want to mention:
  17    if (empty($vars['links']['page_manager'])) {
  18      $vars['links']['page_manager'] = array(
  19        'weight' => -100,
  20        'title' => t('Panel page'),
  21        'description' => '<em>' . t('You must activate the page manager module for this functionality.') . '</em>',
  22      );
  23    }
  24    if (empty($vars['links']['panels_mini'])) {
  25      $vars['links']['panels_mini'] = array(
  26        'title' => t('Mini panel'),
  27        'description' => '<em>' . t('You must activate the Mini panels module for this functionality.') . '</em>',
  28      );
  29    }
  30    if (empty($vars['links']['panels_node'])) {
  31      $vars['links']['panels_mini'] = array(
  32        'title' => t('Panel node'),
  33        'description' => '<em>' . t('You must activate the panel node module for this functionality.') . '</em>',
  34      );
  35    }
  36  }
  37  
  38  /**
  39   * Implementation of hook_panels_dashboard_blocks().
  40   *
  41   * Adds page information to the Panels dashboard.
  42   */
  43  function panels_panels_dashboard_blocks(&$vars) {
  44    $vars['links']['panels_layout'] = array(
  45      'title' => l(t('Custom layout'), 'admin/build/panels/layouts/add'),
  46      'description' => t('Custom layouts can add more, site-specific layouts that you can use in your panels.'),
  47    );
  48  
  49     // Load all mini panels and their displays.
  50    ctools_include('export');
  51    $items = ctools_export_crud_load_all('panels_layout');
  52    $count = 0;
  53    $rows = array();
  54  
  55    foreach ($items as $item) {
  56      $rows[] = array(
  57        check_plain($item->admin_title),
  58        array(
  59          'data' => l(t('Edit'), "admin/build/panels/layouts/list/$item->name/edit"),
  60          'class' => 'links',
  61        ),
  62      );
  63  
  64      // Only show 10.
  65      if (++$count >= 10) {
  66        break;
  67      }
  68    }
  69  
  70    if ($rows) {
  71      $content = theme('table', array(), $rows, array('class' => 'panels-manage'));
  72    }
  73    else {
  74      $content = '<p>' . t('There are no custom layouts.') . '</p>';
  75    }
  76  
  77    $vars['blocks']['panels_layout'] = array(
  78      'title' => t('Manage custom layouts'),
  79      'link' => l(t('Go to list'), 'admin/build/panels/layouts'),
  80      'content' => $content,
  81      'class' => 'dashboard-layouts',
  82      'section' => 'right',
  83    );
  84  }
  85  
  86  function template_preprocess_panels_dashboard(&$vars) {
  87    ctools_add_css('panels-dashboard', 'panels');
  88    ctools_include('plugins');
  89  
  90    $vars['image_path'] = ctools_image_path('', 'panels');
  91  
  92    $vars['links'] = array();
  93    $vars['blocks'] = array();
  94  
  95    foreach (module_implements('panels_dashboard_blocks') as $module) {
  96      $function = $module . '_panels_dashboard_blocks';
  97      $function($vars);
  98    }
  99  
 100    // Add in any default links for modules that are not active
 101    panels_dashboard_final_blocks($vars);
 102  
 103    // If page manager module is enabled, add a very low eight block to
 104    // list the page wizards.
 105    if (module_exists('page_manager')) {
 106      $vars['blocks']['wizards'] = array(
 107        'weight' => -101,
 108        'section' => 'right',
 109        'title' => t('Page wizards'),
 110        'content' => '',
 111        'class' => 'dashboard-wizards',
 112      );
 113  
 114      ctools_include('page-wizard');
 115      $plugins = page_manager_get_page_wizards();
 116      uasort($plugins, 'ctools_plugin_sort');
 117  
 118      foreach ($plugins as $id => $plugin) {
 119        if (isset($plugin['type']) && $plugin['type'] == 'panels') {
 120          $link = array(
 121            'title' => l($plugin['title'], 'admin/build/pages/wizard/' . $id),
 122            'description' => $plugin['description'],
 123          );
 124  
 125          $vars['blocks']['wizards']['content'] .= theme('panels_dashboard_link', $link);
 126        }
 127      }
 128  
 129    }
 130  
 131    uasort($vars['links'], 'ctools_plugin_sort');
 132  
 133    $vars['blocks']['links'] = array(
 134      'weight' => -100,
 135      'section' => 'left',
 136      'title' => t('Create new') . '...',
 137      'content' => '',
 138      'class' => 'dashboard-create',
 139    );
 140  
 141    // Turn the links into a block
 142    foreach ($vars['links'] as $link) {
 143      $vars['blocks']['links']['content'] .= theme('panels_dashboard_link', $link);
 144    }
 145  
 146    uasort($vars['blocks'], 'ctools_plugin_sort');
 147  
 148    $vars['left'] = '';
 149    $vars['right'] = '';
 150  
 151    // Render all the blocks
 152    foreach ($vars['blocks'] as $block) {
 153      $section = !empty($block['section']) ? $block['section'] : 'left';
 154      $vars[$section] .= theme('panels_dashboard_block', $block);
 155    }
 156  }
 157  
 158  function panels_admin_settings_page() {
 159    $form = array();
 160    if (module_exists('page_manager')) {
 161      foreach (page_manager_get_tasks() as $task) {
 162        if ($function = ctools_plugin_get_function($task, 'admin settings')) {
 163          $function($form);
 164        }
 165      }
 166    }
 167  
 168    ctools_include('content');
 169    foreach (ctools_get_content_types() as $content) {
 170      if ($function = ctools_plugin_get_function($content, 'admin settings')) {
 171        $function($form);
 172      }
 173    }
 174  
 175    if (empty($form)) {
 176      return array('#value' => t('There are currently no settings to change, but additional plugins or modules may provide them in the future.'));
 177    }
 178  
 179    return system_settings_form($form);
 180  }
 181  
 182  /**
 183   * Settings for panel contexts created by the page manager.
 184   */
 185  function panels_admin_panel_context_page() {
 186    ctools_include('common', 'panels');
 187    return drupal_get_form('panels_common_settings', 'panels_page');
 188  }
 189  


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7