Definition in file panels_views_legacy.module.
Go to the source code of this file.
Functions | |
| panels_views_legacy_add ($id, $parents, $conf=array()) | |
| panels_views_legacy_admin () | |
| panels_views_legacy_content_types () | |
| panels_views_legacy_edit ($id, $parents, $conf) | |
| panels_views_legacy_menu ($may_cache) | |
| panels_views_legacy_panels_content_types () | |
| panels_views_legacy_render ($conf, $panel_args, $contexts) | |
| panels_views_legacy_title ($conf) | |
| views_panels_block_info ($module, $delta, &$info) | |
| panels_views_legacy_add | ( | $ | id, | |
| $ | parents, | |||
| $ | conf = array() | |||
| ) |
Returns the form for a new view.
Definition at line 210 of file panels_views_legacy.module.
References panels_views_legacy_edit().
00210 { 00211 $view = views_get_view($id); 00212 if (!$view) { 00213 return; 00214 } 00215 $conf['view'] = $id; 00216 if ($view->page) { 00217 $conf['type'] = 'page'; 00218 $conf['nodes_per_page'] = $view->nodes_per_page; 00219 } 00220 else { 00221 $conf['type'] = 'block'; 00222 $conf['nodes_per_page'] = $view->nodes_per_block; 00223 } 00224 $conf['type'] = 'embed'; 00225 $conf['pager_id'] = 1; 00226 $conf['use_pager'] = 0; 00227 return panels_views_legacy_edit($id, $parents, $conf); 00228 }
| panels_views_legacy_admin | ( | ) |
Page callback for the very short admin page.
Definition at line 33 of file panels_views_legacy.module.
00033 { 00034 $output = '<p>'; 00035 $output .= t('Panels legacy views does not have a normal administrative UI, such as panels pages or mini panels. With this module, all of your views are provided as panes that can be added to any panel display; these panes have many options; because of all of these options, these panes are generally unsuitable for non administrative users. It is recommended that you only use panels views legacy if 1) you are upgrading a site that already uses this kind of view or 2) you do not want the extra work of having to determine which views are available as content. Otherwise, it is recommended you use the normal "Panels views content" module.'); 00036 $output .= '</p>'; 00037 return $output; 00038 }
| panels_views_legacy_content_types | ( | ) |
Return all content types available.
Definition at line 147 of file panels_views_legacy.module.
00147 { 00148 $types = array(); 00149 $views = array(); 00150 $args = array(); 00151 views_load_cache(); 00152 $arginfo = _views_get_arguments(); 00153 00154 $result = db_query("SELECT * FROM {view_argument}"); 00155 while ($arg = db_fetch_array($result)) { 00156 $args[$arg['vid']][$arg['position']] = $arg; 00157 } 00158 $result = db_query("SELECT * FROM {view_view}"); 00159 while ($view = db_fetch_object($result)) { 00160 $view->argument = $args[$view->vid]; 00161 00162 $title = views_get_title($view, 'admin'); 00163 $icon = !empty($view->block) ? 'icon_views_block_legacy.png' : 'icon_views_page_legacy.png'; 00164 00165 $contexts = array(); 00166 if (!empty($view->argument)) { 00167 foreach ($view->argument as $arg) { 00168 $contexts[] = new panels_optional_context($arginfo[$arg['type']]['name'], 'any'); 00169 } 00170 } 00171 $types[$view->name] = array( 00172 'title' => strip_tags($title ? $title : $view->name), 00173 'icon' => $icon, 00174 'description' => filter_xss_admin($view->description), 00175 'required context' => $contexts, 00176 'category' => array(t('Views'), -1), 00177 ); 00178 $views[$view->name] = TRUE; 00179 } 00180 00181 views_load_cache(); 00182 $default_views = _views_get_default_views(); 00183 $views_status = variable_get('views_defaults', array()); 00184 foreach ($default_views as $view) { 00185 if (!$views[$view->name] && 00186 ($views_status[$view->name] == 'enabled' || (!$views_status[$view->name] && !$view->disabled))) { 00187 $title = views_get_title($view, 'admin'); 00188 $icon = !empty($view->block) ? 'icon_views_block_legacy.png' : 'icon_views_page_legacy.png'; 00189 $contexts = array(); 00190 if (!empty($view->argument)) { 00191 foreach ($view->argument as $arg) { 00192 $contexts[] = new panels_optional_context($arginfo[$arg['type']]['name'], 'any'); 00193 } 00194 } 00195 $types[$view->name] = array( 00196 'title' => strip_tags($title ? $title : $view->name), 00197 'icon' => $icon, 00198 'description' => filter_xss_admin($view->description), 00199 'required context' => $contexts, 00200 'category' => array(t('Views'), -1), 00201 ); 00202 } 00203 } 00204 return $types; 00205 }
| panels_views_legacy_edit | ( | $ | id, | |
| $ | parents, | |||
| $ | conf | |||
| ) |
Returns an edit form for a block.
Definition at line 233 of file panels_views_legacy.module.
Referenced by panels_views_legacy_add().
00233 { 00234 $form['view'] = array( 00235 '#type' => 'value', 00236 '#default_value' => $conf['view'], 00237 ); 00238 $form['type'] = array( 00239 '#type' => 'select', 00240 '#default_value' => $conf['type'], 00241 '#title' => t('View type'), 00242 '#description' => t('Select which type of the view to display.'), 00243 '#options' => array('page' => t('Page'), 'block' => t('Block'), 'embed' => t('Embedded')), 00244 ); 00245 00246 $form['link_to_view'] = array( 00247 '#type' => 'checkbox', 00248 '#default_value' => $conf['link_to_view'], 00249 '#title' => t('Link title to view'), 00250 '#description' => t('If checked, the title will be a link to the view.'), 00251 ); 00252 00253 $form['more_link'] = array( 00254 '#type' => 'checkbox', 00255 '#default_value' => $conf['more_link'], 00256 '#title' => t('Provide a "more" link that links to the view'), 00257 '#description' => t('This is independent of any more link that may be provided by the view itself; if you see two more links, turn this one off. Views will only provide a more link if using the "block" type, however, so if using embed, use this one.'), 00258 ); 00259 00260 $form['feed_icons'] = array( 00261 '#type' => 'checkbox', 00262 '#default_value' => $conf['feed_icons'], 00263 '#title' => t('Display feed icons'), 00264 '#description' => t('If checked, any feed icons provided by this view will be displayed.'), 00265 ); 00266 00267 $form['pager_aligner_start'] = array( 00268 '#value' => '<div class="option-text-aligner">', 00269 ); 00270 $form['use_pager'] = array( 00271 '#type' => 'checkbox', 00272 '#title' => t('Use pager'), 00273 '#default_value' => $conf['use_pager'], 00274 '#id' => 'use-pager-checkbox', 00275 ); 00276 $form['pager_id'] = array( 00277 '#type' => 'textfield', 00278 '#default_value' => $conf['pager_id'], 00279 '#title' => t('Pager ID'), 00280 '#size' => 4, 00281 '#id' => 'use-pager-textfield', 00282 ); 00283 $form['pager_aligner_stop'] = array( 00284 '#value' => '</div><div style="clear: both; padding: 0; margin: 0"></div>', 00285 ); 00286 00287 $form['nodes_per_page'] = array( 00288 '#type' => 'textfield', 00289 '#default_value' => $conf['nodes_per_page'], 00290 '#title' => t('Num posts'), 00291 '#size' => 4, 00292 '#description' => t('Select the number of posts to display, or 0 to display all results.'), 00293 ); 00294 00295 $form['offset'] = array( 00296 '#type' => 'textfield', 00297 '#default_value' => $conf['offset'], 00298 '#title' => t('Offset'), 00299 '#size' => 4, 00300 '#description' => t('Offset in the node list or 0 to start at 1st item.'), 00301 ); 00302 00303 $form['panel_args'] = array( 00304 '#type' => 'checkbox', 00305 '#title' => t('Send arguments'), 00306 '#default_value' => $conf['panel_args'], 00307 '#description' => t('Select this to send all arguments from the panel directly to the view. If checked, the panel arguments will come after any context arguments above and precede any additional arguments passed in through the Arguments field below.'), 00308 ); 00309 00310 $form['args'] = array( 00311 '#type' => 'textfield', 00312 '#default_value' => $conf['args'], 00313 '#title' => t('Arguments'), 00314 '#size' => 30, 00315 '#description' => t('Additional arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You may use %0, %1, ..., %N to grab arguments from the URL. Or use @0, @1, @2, ..., @N to use arguments passed into the panel.'), 00316 ); 00317 00318 $form['url'] = array( 00319 '#type' => 'textfield', 00320 '#default_value' => $conf['url'], 00321 '#title' => t('Override URL'), 00322 '#size' => 30, 00323 '#description' => t('If this is set, override the View URL; this can sometimes be useful to set to the panel URL'), 00324 ); 00325 00326 return $form; 00327 }
| panels_views_legacy_menu | ( | $ | may_cache | ) |
Implementation of hook_menu().
Definition at line 16 of file panels_views_legacy.module.
00016 { 00017 if ($may_cache) { 00018 $items[] = array( 00019 'path' => 'admin/panels/views-legacy', 00020 'title' => t('Legacy views'), 00021 'access' => user_access('access administration pages'), 00022 'type' => MENU_NORMAL_ITEM, 00023 'callback' => 'panels_views_legacy_admin', 00024 'description' => t('Information about the legacy views content type.'), 00025 ); 00026 return $items; 00027 } 00028 }
| panels_views_legacy_panels_content_types | ( | ) |
Implementation of hook_panels_content_types()
Definition at line 43 of file panels_views_legacy.module.
00043 { 00044 // Only valid if views module loaded. 00045 $items['views'] = array( 00046 'title' => t('Legacy views'), 00047 'content_types' => 'panels_views_legacy_content_types', 00048 'render callback' => 'panels_views_legacy_render', 00049 'add callback' => 'panels_views_legacy_add', 00050 'edit callback' => 'panels_views_legacy_edit', 00051 'title callback' => 'panels_views_legacy_title', 00052 ); 00053 return $items; 00054 }
| panels_views_legacy_render | ( | $ | conf, | |
| $ | panel_args, | |||
| $ | contexts | |||
| ) |
Output function for the 'views' content type.
Outputs a views based on the module and delta supplied in the configuration.
Definition at line 61 of file panels_views_legacy.module.
00061 { 00062 if (!is_array($contexts)) { 00063 $contexts = array($contexts); 00064 } 00065 00066 // Use clone to make sure this is fresh. 00067 $v = views_get_view($conf['view']); 00068 if ($v) { 00069 $view = drupal_clone($v); 00070 if (function_exists('views_access') && !views_access($view)) { 00071 return NULL; 00072 } 00073 $arguments = explode('/', $_GET['q']); 00074 $args = $conf['args']; 00075 00076 foreach ($arguments as $id => $arg) { 00077 $args = str_replace("%$id", $arg, $args); 00078 } 00079 00080 foreach ($panel_args as $id => $arg) { 00081 $args = str_replace("@$id", $arg, $args); 00082 } 00083 00084 $args = preg_replace(',/?(%\d|@\d),', '', $args); 00085 $args = $args ? explode('/', $args) : array(); 00086 00087 if ($conf['panel_args'] && is_array($panel_args)) { 00088 $args = array_merge($panel_args, $args); 00089 } 00090 00091 if (is_array($conf['context'])) { 00092 foreach ($conf['context'] as $count => $cid) { 00093 if ($cid != 'any' && !empty($contexts[$count]) && isset($contexts[$count]->argument)) { 00094 array_splice($args, $count, 0, array($contexts[$count]->argument)); 00095 } 00096 } 00097 } 00098 00099 if ($conf['url']) { 00100 $view->url = $conf['url']; 00101 } 00102 00103 $block = new stdClass(); 00104 $block->module = 'views'; 00105 $block->delta = $view->name; 00106 00107 $view_type = $conf['type'] == 'embed' ? 'page' : $conf['type']; 00108 $block->subject = views_get_title($view, $view_type); 00109 if (!empty($conf['link_to_view'])) { 00110 $block->title_link = views_get_url($view, $args); 00111 } 00112 00113 if (!empty($conf['more_link'])) { 00114 $block->more = array('href' => views_get_url($view, $args)); 00115 $view->block_more = FALSE; 00116 } 00117 00118 $pager_id = empty($conf['use_pager']) ? 0 : intval($conf['pager_id']); 00119 00120 $stored_feeds = drupal_add_feed(); 00121 $block->content = views_build_view($conf['type'], $view, $args, $pager_id, intval($conf['nodes_per_page']), 0, intval($conf['offset'])); 00122 00123 if (!empty($conf['feed_icons'])) { 00124 $new_feeds = drupal_add_feed(); 00125 if ($diff = array_diff(array_keys($new_feeds), array_keys($stored_feeds))) { 00126 foreach ($diff as $url) { 00127 $block->feeds[$url] = $new_feeds[$url]; 00128 } 00129 } 00130 } 00131 00132 if (user_access('administer views')) { 00133 $block->admin_links['update'] = array( 00134 'title' => t('Edit view'), 00135 'alt' => t("Edit this view"), 00136 'href' => $view->vid ? "admin/build/views/$view->name/edit" : "admin/build/views/add/$view->name", 00137 'query' => drupal_get_destination(), 00138 ); 00139 } 00140 } 00141 return $block; 00142 }
| panels_views_legacy_title | ( | $ | conf | ) |
Returns the administrative title for a type.
Definition at line 332 of file panels_views_legacy.module.
00332 { 00333 $view = views_get_view($conf['view']); 00334 if (empty($view)) { 00335 return t('Deleted/missing view @view', array('@view' => $conf['view'])); 00336 } 00337 $title = views_get_title($view, 'admin'); 00338 return $title ? $title : $view->name; 00339 }
| views_panels_block_info | ( | $ | module, | |
| $ | delta, | |||
| &$ | info | |||
| ) |
Don't show Views' blocks; we expose them already.
Definition at line 344 of file panels_views_legacy.module.
1.5.6