security update for contrib modules
This commit is contained in:
@@ -100,7 +100,7 @@ body form#page-manager-list-pages-form {
|
||||
|
||||
#page-manager-edit .page-manager-edit-operations li {
|
||||
list-style: none;
|
||||
background: #F6F6F6;
|
||||
background: #f6f6f6;
|
||||
border-top: 1px solid #aaa;
|
||||
border-left: 1px solid #aaa;
|
||||
border-right: 1px solid #aaa;
|
||||
@@ -111,7 +111,7 @@ body form#page-manager-list-pages-form {
|
||||
|
||||
#page-manager-edit .page-manager-edit-operations li.active,
|
||||
#page-manager-edit .page-manager-edit-operations li.active-group .page-manager-group-title {
|
||||
background: #FFFFFF url(../images/arrow-active.png) no-repeat scroll right center;
|
||||
background: #ffffff url(../images/arrow-active.png) no-repeat scroll right center;
|
||||
}
|
||||
|
||||
#page-manager-edit .page-manager-edit-operations li.changed,
|
||||
@@ -123,7 +123,7 @@ body form#page-manager-list-pages-form {
|
||||
/** provide a reset for non active stray paths */
|
||||
#page-manager-edit .page-manager-edit-operations li.active-group li.not-active .page-manager-group-title,
|
||||
#page-manager-edit .page-manager-edit-operations li.changed-group li.not-changed .page-manager-group-title {
|
||||
background: #F6F6F6;
|
||||
background: #f6f6f6;
|
||||
}
|
||||
|
||||
#page-manager-edit .page-manager-edit-operations li.active {
|
||||
@@ -132,7 +132,7 @@ body form#page-manager-list-pages-form {
|
||||
|
||||
#page-manager-edit .page-manager-edit-operations li.active a,
|
||||
#page-manager-edit .page-manager-edit-operations li.active a:hover {
|
||||
background: #FFFFFF url(../images/arrow-active.png) no-repeat scroll right center;
|
||||
background: #ffffff url(../images/arrow-active.png) no-repeat scroll right center;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -271,8 +271,8 @@ body form#page-manager-list-pages-form {
|
||||
#page-manager-edit .actions li a {
|
||||
display: block;
|
||||
padding: 0.2em 0.5em;
|
||||
color:#0062A0;
|
||||
background-color: #F6F6F6;
|
||||
color: #0062a0;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
|
||||
#page-manager-edit .page-manager-changed {
|
||||
|
||||
@@ -4,7 +4,7 @@ Note: this page is currently very preliminary. Please visit <a href="http://drup
|
||||
This is a quick summary:
|
||||
|
||||
<ul>
|
||||
<li>Visit administer >> site building >> pages to get to the primary page manager interface.</li>
|
||||
<li>Visit administer >> structure >> pages to get to the primary page manager interface.</li>
|
||||
<li>You can add custom pages for your basic landing pages, front pages, whatever you like for normal content display.</li>
|
||||
<li>You can use the system pages to create finer control of how taxonomy vocabularies, nodes and user profiles are displayed.</li>
|
||||
<li>When you add your first custom page, do not bother with the optional features. You will not need these until you get to more advanced tasks.</li>
|
||||
|
||||
@@ -631,7 +631,7 @@ function page_manager_get_operations($page, $operations = NULL) {
|
||||
if (isset($plugin['add features'][$id])) {
|
||||
$result['actions']['children']['configure']['form']['order'][$id] = $plugin['add features'][$id];
|
||||
}
|
||||
else if (isset($plugin['required forms'][$id])) {
|
||||
elseif (isset($plugin['required forms'][$id])) {
|
||||
$result['actions']['children']['configure']['form']['order'][$id] = $plugin['required forms'][$id];
|
||||
}
|
||||
}
|
||||
@@ -732,7 +732,7 @@ function page_manager_get_handler_operations(&$page) {
|
||||
),
|
||||
);
|
||||
}
|
||||
else if ($handler->export_type != EXPORT_IN_CODE) {
|
||||
elseif ($handler->export_type != EXPORT_IN_CODE) {
|
||||
$actions['delete'] = array(
|
||||
'title' => t('Delete'),
|
||||
'description' => t('Remove this variant from the page completely.'),
|
||||
@@ -1144,7 +1144,7 @@ function page_manager_render_operations(&$page, $operations, $active_trail, $att
|
||||
if ($id == $first) {
|
||||
$class[] = 'operation-first';
|
||||
}
|
||||
else if ($id == $last) {
|
||||
elseif ($id == $last) {
|
||||
$class[] = 'operation-last';
|
||||
}
|
||||
|
||||
@@ -1421,7 +1421,7 @@ function page_manager_handler_add_form($form, $form_state, $features = array())
|
||||
'exists' => 'page_manager_handler_check_machine_name',
|
||||
'source' => array('title'),
|
||||
),
|
||||
'#field_prefix' => '<span dir="ltr">' . $task['name'] . '__',
|
||||
'#field_prefix' => '<span dir="ltr">' . $form_state['task_name'] . '__',
|
||||
'#field_suffix' => '</span>‎',
|
||||
);
|
||||
}
|
||||
@@ -1466,7 +1466,7 @@ function page_manager_handler_add_form($form, $form_state, $features = array())
|
||||
* Check if handler's machine-name is unique
|
||||
*/
|
||||
function page_manager_handler_check_machine_name($name, $element, $form_state) {
|
||||
$name = $form_state['task']['name'] . '__' . $name;
|
||||
$name = $form_state['task_name'] . '__' . $name;
|
||||
|
||||
return count(ctools_export_load_object('page_manager_handlers', 'names', array($name)));
|
||||
}
|
||||
@@ -1542,25 +1542,42 @@ function page_manager_handler_import_submit(&$form, &$form_state) {
|
||||
* Rearrange the order of variants.
|
||||
*/
|
||||
function page_manager_handler_rearrange($form, &$form_state) {
|
||||
ctools_include('context-task-handler');
|
||||
$page = $form_state['page'];
|
||||
|
||||
$form['handlers'] = array('#tree' => TRUE);
|
||||
|
||||
// Get the number of variants to be displayed in order to set the delta
|
||||
// to the proper value. This fixes problems in previous versions with sorting
|
||||
// large numbers of variants.
|
||||
$delta = count($page->handler_info)/2 + 1;
|
||||
|
||||
foreach ($page->handler_info as $id => $info) {
|
||||
if ($info['changed'] & PAGE_MANAGER_CHANGED_DELETED) {
|
||||
continue;
|
||||
}
|
||||
$handler = $page->handlers[$id];
|
||||
$plugin = page_manager_get_task_handler($handler->handler);
|
||||
|
||||
$object = ctools_context_handler_get_task_object($page->task, $page->subtask, $handler);
|
||||
$display = new stdClass();
|
||||
$display->context = ctools_context_load_contexts($object, TRUE);
|
||||
$content = page_manager_get_handler_title($plugin, $handler, $page->task, $page->subtask_id);
|
||||
$access = ctools_access_group_summary(!empty($handler->conf['access']) ? $handler->conf['access'] : array(), $display->context);
|
||||
if ($access) {
|
||||
$access = t('This panel will be selected if @conditions.', array('@conditions' => $access));
|
||||
}
|
||||
else {
|
||||
$access = t('This panel will always be selected.');
|
||||
}
|
||||
$content .= '<div>' . $access . '</div>';
|
||||
$form['handlers'][$id]['title'] = array(
|
||||
'#markup' => page_manager_get_handler_title($plugin, $handler, $page->task, $page->subtask_id),
|
||||
'#markup' => $content,
|
||||
);
|
||||
|
||||
$form['handlers'][$id]['weight'] = array(
|
||||
'#type' => 'weight',
|
||||
'#default_value' => $info['weight'],
|
||||
'#delta' => 30,
|
||||
'#delta' => $delta,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1671,6 +1688,12 @@ function page_manager_handler_clone_submit(&$form, &$form_state) {
|
||||
|
||||
page_manager_handler_add_to_page($form_state['page'], $handler, $form_state['values']['title']);
|
||||
|
||||
// Variant is cloned and added to the Page. Ensure the uuids are re-generated.
|
||||
panels_panel_context_get_display($handler);
|
||||
if (isset($handler->conf['display']) && method_exists($handler->conf['display'], 'clone_display')) {
|
||||
$handler->conf['display'] = $handler->conf['display']->clone_display();
|
||||
}
|
||||
|
||||
$plugin = page_manager_get_task_handler($handler->handler);
|
||||
// It has no forms at all. Add the variant and go to its first operation.
|
||||
$keys = array_keys($plugin['operations']);
|
||||
|
||||
@@ -3,11 +3,11 @@ description = Provides a UI and API to manage pages within the site.
|
||||
core = 7.x
|
||||
dependencies[] = ctools
|
||||
package = Chaos tool suite
|
||||
version = CTOOLS_MODULE_VERSION
|
||||
|
||||
; Information added by Drupal.org packaging script on 2015-01-28
|
||||
version = "7.x-1.6"
|
||||
files[] = tests/head_links.test
|
||||
|
||||
; Information added by Drupal.org packaging script on 2019-02-08
|
||||
version = "7.x-1.15"
|
||||
core = "7.x"
|
||||
project = "ctools"
|
||||
datestamp = "1422471484"
|
||||
|
||||
datestamp = "1549603691"
|
||||
|
||||
@@ -205,7 +205,7 @@ function page_manager_menu_alter(&$items) {
|
||||
if ($function = ctools_plugin_get_function($task, 'hook menu alter')) {
|
||||
$function($items, $task);
|
||||
}
|
||||
// let the subtasks alter the menu items too.
|
||||
// Let the subtasks alter the menu items too.
|
||||
foreach (page_manager_get_task_subtasks($task) as $subtask_id => $subtask) {
|
||||
if ($function = ctools_plugin_get_function($subtask, 'hook menu alter')) {
|
||||
$function($items, $subtask);
|
||||
@@ -240,7 +240,7 @@ function page_manager_menu_alter(&$items) {
|
||||
return $items;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Implements hook_theme()
|
||||
*/
|
||||
function page_manager_theme() {
|
||||
@@ -333,7 +333,7 @@ function page_manager_get_page_cache($task_name) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
// ensure the task is loaded.
|
||||
// Ensure the task is loaded.
|
||||
page_manager_get_task($cache->task_id);
|
||||
}
|
||||
|
||||
@@ -390,11 +390,10 @@ function page_manager_save_page_cache($cache) {
|
||||
foreach ($cache->handler_info as $id => $info) {
|
||||
$handler = &$cache->handlers[$id];
|
||||
// If it has been marked for deletion, delete it.
|
||||
|
||||
if ($info['changed'] & PAGE_MANAGER_CHANGED_DELETED) {
|
||||
page_manager_delete_task_handler($handler);
|
||||
}
|
||||
// If it has been somehow edited (or added), write the cached version
|
||||
// If it has been somehow edited (or added), write the cached version.
|
||||
elseif ($info['changed'] & PAGE_MANAGER_CHANGED_CACHED) {
|
||||
// Make sure we get updated weight from the form for this.
|
||||
$handler->weight = $info['weight'];
|
||||
@@ -427,7 +426,7 @@ function page_manager_save_page_cache($cache) {
|
||||
* Menu callback to load a page manager cache object for menu callbacks.
|
||||
*/
|
||||
function page_manager_cache_load($task_name) {
|
||||
// load context plugin as there may be contexts cached here.
|
||||
// Load context plugin as there may be contexts cached here.
|
||||
ctools_include('context');
|
||||
return page_manager_get_page_cache($task_name);
|
||||
}
|
||||
@@ -440,13 +439,18 @@ function page_manager_cache_load($task_name) {
|
||||
*/
|
||||
function page_manager_handler_get_name($task_name, $handlers, $handler) {
|
||||
$base = str_replace('-', '_', $task_name);
|
||||
$name = '';
|
||||
|
||||
// Optional machine name.
|
||||
if (!empty($handler->conf['name'])) {
|
||||
$name = $base . '__' . $handler->conf['name'];
|
||||
if (count(ctools_export_load_object('page_manager_handlers', 'names', array($name)))) {
|
||||
$name = '';
|
||||
}
|
||||
}
|
||||
|
||||
// If no machine name was provided, generate a unique name.
|
||||
else {
|
||||
// If no machine name was provided or the name is in use, generate a unique name.
|
||||
if (empty($name)) {
|
||||
$base .= '__' . $handler->handler;
|
||||
|
||||
// Use the ctools uuid generator to generate a unique id.
|
||||
@@ -472,6 +476,10 @@ function page_manager_handler_add_to_page(&$page, &$handler, $title = NULL) {
|
||||
|
||||
if ($title) {
|
||||
$handler->conf['title'] = $title;
|
||||
$handler->conf['name'] = trim(preg_replace('/[^a-z0-9_]+/', '-', strtolower($title)), '-');
|
||||
}
|
||||
else {
|
||||
$handler->conf['name'] = '';
|
||||
}
|
||||
|
||||
$name = page_manager_handler_get_name($page->task_name, $page->handlers, $handler);
|
||||
@@ -491,7 +499,6 @@ function page_manager_handler_add_to_page(&$page, &$handler, $title = NULL) {
|
||||
//
|
||||
// This includes fetching plugins and plugin info as well as specialized
|
||||
// fetch methods to get groups of task handlers per task.
|
||||
|
||||
/**
|
||||
* Load a single task handler by name.
|
||||
*
|
||||
@@ -573,7 +580,7 @@ function page_manager_get_default_task_handlers($task, $subtask_id) {
|
||||
$handlers = $subtask['default handlers'];
|
||||
}
|
||||
}
|
||||
else if (isset($task['default handlers'])) {
|
||||
elseif (isset($task['default handlers'])) {
|
||||
$handlers = $task['default handlers'];
|
||||
}
|
||||
|
||||
@@ -595,6 +602,7 @@ function page_manager_get_default_task_handlers($task, $subtask_id) {
|
||||
* A list of handlers provided by the default task.
|
||||
* @param $name
|
||||
* Which handler to compare.
|
||||
*
|
||||
* @return
|
||||
* Which handler to use, if any. May be NULL.
|
||||
*/
|
||||
@@ -606,10 +614,10 @@ function page_manager_compare_task_handlers($result, $handlers, $name) {
|
||||
$handlers[$name]->export_type = EXPORT_IN_CODE;
|
||||
return $handlers[$name];
|
||||
}
|
||||
else if (isset($result[$name]) && !isset($handlers[$name])) {
|
||||
elseif (isset($result[$name]) && !isset($handlers[$name])) {
|
||||
return $result[$name];
|
||||
}
|
||||
else if (isset($result[$name]) && isset($handlers[$name])) {
|
||||
elseif (isset($result[$name]) && isset($handlers[$name])) {
|
||||
if ($result[$name]->export_type & EXPORT_IN_DATABASE) {
|
||||
$result[$name]->type = t('Overridden');
|
||||
$result[$name]->export_type = $result[$name]->export_type | EXPORT_IN_CODE;
|
||||
@@ -767,9 +775,8 @@ function page_manager_export_task_handler_load($name) {
|
||||
function page_manager_new_task_handler($plugin) {
|
||||
// Generate a unique name. Unlike most named objects, we don't let people choose
|
||||
// names for task handlers because they mostly don't make sense.
|
||||
|
||||
// Create a new, empty handler object.
|
||||
$handler = new stdClass;
|
||||
$handler = new stdClass();
|
||||
$handler->title = $plugin['title'];
|
||||
$handler->task = NULL;
|
||||
$handler->subtask = NULL;
|
||||
@@ -788,7 +795,7 @@ function page_manager_new_task_handler($plugin) {
|
||||
if (is_array($plugin['default conf'])) {
|
||||
$handler->conf = $plugin['default conf'];
|
||||
}
|
||||
else if (function_exists($plugin['default conf'])) {
|
||||
elseif (function_exists($plugin['default conf'])) {
|
||||
$handler->conf = $plugin['default conf']($handler);
|
||||
}
|
||||
}
|
||||
@@ -814,7 +821,6 @@ function page_manager_update_task_handler_weight($handler, $weight) {
|
||||
->execute();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Shortcut function to get task plugins.
|
||||
*/
|
||||
@@ -1191,9 +1197,9 @@ function page_manager_page_manager_pages_to_hook_code($names = array(), $name =
|
||||
$code .= " */\n";
|
||||
$code .= "function " . $name . "_{$export['default hook']}() {\n";
|
||||
foreach ($objects as $object) {
|
||||
// Have to implement our own because this export func sig requires it
|
||||
// Have to implement our own because this export func sig requires it.
|
||||
$code .= $export['export callback']($object, TRUE, ' ');
|
||||
$code .= " \${$export['identifier']}s['" . check_plain($object->$export['key']) . "'] = \${$export['identifier']};\n\n";
|
||||
$code .= " \${$export['identifier']}s['" . check_plain($object->{$export['key']}) . "'] = \${$export['identifier']};\n\n";
|
||||
}
|
||||
$code .= " return \${$export['identifier']}s;\n";
|
||||
$code .= "}\n";
|
||||
@@ -1301,7 +1307,7 @@ function page_manager_addressable_content($address, $type) {
|
||||
$arguments = explode('..', $arguments);
|
||||
}
|
||||
else {
|
||||
// implode does not return an empty array on an empty
|
||||
// Implode does not return an empty array on an empty
|
||||
// string so do it specifically.
|
||||
$arguments = array();
|
||||
}
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
|
||||
$plugin = array(
|
||||
// cache plugins are the rare plugin types that have no real UI but
|
||||
// Cache plugins are the rare plugin types that have no real UI but
|
||||
// we're providing a title just in case.
|
||||
'title' => t('Page manager context'),
|
||||
'cache get' => 'page_manager_cache_page_manager_context_cache_get',
|
||||
@@ -46,7 +46,7 @@ function page_manager_cache_page_manager_context_cache_set($data, $key, $object)
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy temporary data from the page manager cache
|
||||
* Copy temporary data from the page manager cache.
|
||||
*/
|
||||
function page_manager_cache_page_manager_context_cache_finalize($data, $key, $object) {
|
||||
// Statically cached so there shouldn't be any worries. It's an object so
|
||||
|
||||
+33
-15
@@ -2,13 +2,13 @@
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* This is the task handler plugin to handle generating 403, 404 and 301 response codes.
|
||||
* This is the task handler plugin to handle generating 403, 404, 301 and 302
|
||||
* response codes.
|
||||
*/
|
||||
|
||||
// Plugin definition
|
||||
// Plugin definition.
|
||||
$plugin = array(
|
||||
// is a 'context' handler type, meaning it supports the API of the
|
||||
// Is a 'context' handler type, meaning it supports the API of the
|
||||
// context handlers provided by ctools context plugins.
|
||||
'handler type' => 'context',
|
||||
'visible' => TRUE, // may be added up front.
|
||||
@@ -108,7 +108,8 @@ function page_manager_http_response_codes() {
|
||||
403 => t('403 Access denied'),
|
||||
404 => t('404 Page not found'),
|
||||
410 => t('410 Gone'),
|
||||
301 => t('301 Redirect'),
|
||||
301 => t('301 Permanent redirect'),
|
||||
302 => t('302 Temporary redirect'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -119,7 +120,7 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
|
||||
ctools_include('context');
|
||||
ctools_include('context-task-handler');
|
||||
|
||||
// Get the operations
|
||||
// Get the operations.
|
||||
$operations = page_manager_get_operations($page);
|
||||
|
||||
// Get operations for just this handler.
|
||||
@@ -188,7 +189,7 @@ function page_manager_http_response_admin_summary($handler, $task, $subtask, $pa
|
||||
|
||||
$output .= '<div class="clearfix">';
|
||||
if ($show_title) {
|
||||
$output .= '<div class="handler-title clearfix">';
|
||||
$output .= '<div class="handler-title clearfix">';
|
||||
$output .= '<div class="actions handler-actions">' . $rendered_operations['actions'] . '</div>';
|
||||
$output .= '<span class="title-label">' . $title . '</span>';
|
||||
}
|
||||
@@ -213,9 +214,12 @@ function page_manager_http_response_title($handler, $task, $subtask) {
|
||||
}
|
||||
|
||||
/**
|
||||
* General settings for the panel
|
||||
* General settings for the panel.
|
||||
*/
|
||||
function page_manager_http_response_edit_settings($form, &$form_state) {
|
||||
ctools_include('page_manager.admin', 'page_manager', '');
|
||||
ctools_include('export', 'ctools');
|
||||
|
||||
$conf = $form_state['handler']->conf;
|
||||
$form['title'] = array(
|
||||
'#type' => 'textfield',
|
||||
@@ -253,7 +257,7 @@ function page_manager_http_response_edit_settings($form, &$form_state) {
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Redirect destination'),
|
||||
'#default_value' => $conf['destination'],
|
||||
'#dependency' => array('edit-code' => array(301)),
|
||||
'#dependency' => array('edit-code' => array(301, 302)),
|
||||
'#description' => t('Enter the path to redirect to. You may use keyword substitutions from contexts. You can use external urls (http://www.example.com/foo) or internal urls (node/1).'),
|
||||
);
|
||||
|
||||
@@ -262,14 +266,28 @@ function page_manager_http_response_edit_settings($form, &$form_state) {
|
||||
|
||||
function page_manager_http_response_edit_settings_submit($form, &$form_state) {
|
||||
$machine_name = $form_state['handler']->name;
|
||||
$name = $form_state['task_id'] . '__' . $form_state['values']['name'];
|
||||
$name = $form_state['task_name'] . '__' . $form_state['values']['name'];
|
||||
|
||||
// If new name doesn't equal machine name, we need to update and redirect.
|
||||
if ($machine_name !== $name) {
|
||||
$form_state['new trail'] = $form_state['trail'];
|
||||
$delta = array_search($machine_name, $form_state['new trail']);
|
||||
$form_state['new trail'][$delta] = $name;
|
||||
$form_state['handler']->name = $name;
|
||||
// If there's a trail, we need to replace it for redirection.
|
||||
if (isset($form_state['trail'])) {
|
||||
$form_state['new trail'] = $form_state['trail'];
|
||||
$delta = array_search($machine_name, $form_state['new trail']);
|
||||
$form_state['new trail'][$delta] = $name;
|
||||
}
|
||||
// If handler id is set, replace it.
|
||||
if ($form_state['handler_id']) {
|
||||
$form_state['handler_id'] = $name;
|
||||
}
|
||||
// If we're defining a new custom handler, move page handler to new name.
|
||||
if (isset($form_state['page']->handlers[$machine_name]) && isset($form_state['page']->handler_info[$machine_name])) {
|
||||
$form_state['page']->handlers[$name] = $form_state['page']->handlers[$machine_name];
|
||||
unset($form_state['page']->handlers[$machine_name]);
|
||||
$form_state['page']->handler_info[$name] = $form_state['page']->handler_info[$machine_name];
|
||||
unset($form_state['page']->handler_info[$machine_name]);
|
||||
}
|
||||
}
|
||||
|
||||
$form_state['handler']->conf['title'] = $form_state['values']['title'];
|
||||
@@ -283,7 +301,7 @@ function page_manager_http_response_render($handler, $base_contexts, $args, $tes
|
||||
ctools_include('context');
|
||||
ctools_include('context-task-handler');
|
||||
|
||||
// Add my contexts
|
||||
// Add my contexts.
|
||||
$contexts = ctools_context_handler_get_handler_contexts($base_contexts, $handler);
|
||||
|
||||
// Test.
|
||||
@@ -296,7 +314,7 @@ function page_manager_http_response_render($handler, $base_contexts, $args, $tes
|
||||
}
|
||||
|
||||
$info['response code'] = $handler->conf['code'];
|
||||
if ($info['response code'] == 301) {
|
||||
if ($info['response code'] == 301 || $info['response code'] == 302) {
|
||||
$path = ctools_context_keyword_substitute($handler->conf['destination'], array(), $contexts);
|
||||
$url = parse_url($path);
|
||||
if (isset($url['query'])) {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -10,7 +14,7 @@ function page_manager_blog_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('All blogs'),
|
||||
@@ -68,7 +72,7 @@ function page_manager_blog_menu_alter(&$items, $task) {
|
||||
* node edit, which is node_page_edit().
|
||||
*/
|
||||
function page_manager_blog() {
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('blog');
|
||||
|
||||
ctools_include('context');
|
||||
@@ -113,6 +117,7 @@ function page_manager_blog_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -10,7 +14,7 @@ function page_manager_blog_user_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
'title' => t('User blog'),
|
||||
'admin title' => t('User blog'),
|
||||
@@ -53,7 +57,7 @@ function page_manager_blog_user_menu_alter(&$items, $task) {
|
||||
$items['blog/%user_uid_optional']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_blog_user_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_blog_user'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable blog/%user because some other module already has overridden with %callback.', array('%callback' => $items['blog/%user']['page callback'])), 'error');
|
||||
@@ -143,6 +147,7 @@ function page_manager_blog_user_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -9,7 +14,7 @@ function page_manager_comment_reply_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('Comment Reply page'),
|
||||
@@ -45,13 +50,11 @@ function page_manager_comment_reply_enable($cache, $status) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Entry point for our overridden comment.
|
||||
*
|
||||
*/
|
||||
function page_manager_comment_reply_page($node, $pid = NULL){
|
||||
// Load my task plugin
|
||||
function page_manager_comment_reply_page($node, $pid = NULL) {
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('comment_reply');
|
||||
|
||||
// Load the node into a context.
|
||||
@@ -134,7 +137,7 @@ function page_manager_comment_reply_menu_alter(&$items, $task) {
|
||||
$items['comment/reply/%node']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_comment_reply_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_comment_reply'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable comment/reply/%node because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error');
|
||||
@@ -153,6 +156,7 @@ function page_manager_comment_reply_menu_alter(&$items, $task) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -10,7 +14,7 @@ function page_manager_contact_site_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('Site contact page'),
|
||||
@@ -72,7 +76,7 @@ function page_manager_contact_site_menu_alter(&$items, $task) {
|
||||
* node edit, which is node_page_edit().
|
||||
*/
|
||||
function page_manager_contact_site() {
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('contact_site');
|
||||
|
||||
ctools_include('context');
|
||||
@@ -121,6 +125,7 @@ function page_manager_contact_site_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -9,7 +13,7 @@ function page_manager_contact_user_page_manager_tasks() {
|
||||
return;
|
||||
}
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
'title' => t('User contact'),
|
||||
'admin title' => t('User contact'),
|
||||
@@ -56,7 +60,7 @@ function page_manager_contact_user_menu_alter(&$items, $task) {
|
||||
$items['user/%user/contact']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_contact_user_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_contact_user'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable user/%user/contact because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error');
|
||||
@@ -146,6 +150,7 @@ function page_manager_contact_user_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
*/
|
||||
function page_manager_node_edit_page_manager_tasks() {
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('Node add/edit form'),
|
||||
@@ -83,7 +87,7 @@ function page_manager_node_edit_menu_alter(&$items, $task) {
|
||||
* node edit, which is node_page_edit().
|
||||
*/
|
||||
function page_manager_node_edit($node) {
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('node_edit');
|
||||
|
||||
// Load the node into a context.
|
||||
@@ -108,7 +112,7 @@ function page_manager_node_edit($node) {
|
||||
* Callback to handle the process of adding a node.
|
||||
*
|
||||
* This creates a basic $node and passes that off to page_manager_node_edit().
|
||||
* It is modeled after Drupal's node_add() function.
|
||||
* It is modelled after Drupal's node_add() function.
|
||||
*
|
||||
* Unlike node_add() we do not need to check node_access because that was
|
||||
* already checked by the menu system.
|
||||
@@ -176,6 +180,7 @@ function page_manager_node_edit_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
function page_manager_node_view_page_manager_tasks() {
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('Node template'),
|
||||
@@ -60,7 +60,7 @@ function page_manager_node_view_menu_alter(&$items, $task) {
|
||||
$items['node/%node']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_node_view_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_node_view'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable node/%node because some other module already has overridden with %callback.', array('%callback' => $callback)), 'error');
|
||||
@@ -78,17 +78,30 @@ function page_manager_node_view_menu_alter(&$items, $task) {
|
||||
* node view, which is node_page_view().
|
||||
*/
|
||||
function page_manager_node_view_page($node) {
|
||||
// Prep the node to be displayed so all of the regular hooks are triggered.
|
||||
// Also save the output for later, in case it is needed.
|
||||
$default_output = node_page_view($node);
|
||||
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('node_view');
|
||||
|
||||
// Load the node into a context.
|
||||
ctools_include('context');
|
||||
ctools_include('context-task-handler');
|
||||
|
||||
$uri = entity_uri('node', $node);
|
||||
if (isset($uri['path'])) {
|
||||
// Set the node path as the canonical URL to prevent duplicate content.
|
||||
$meta_canon = array(
|
||||
'rel' => 'canonical',
|
||||
'href' => url($uri['path'], $uri['options']),
|
||||
);
|
||||
drupal_add_html_head_link($meta_canon, TRUE);
|
||||
|
||||
// Set the non-aliased path as a default shortlink.
|
||||
$meta_short = array(
|
||||
'rel' => 'shortlink',
|
||||
'href' => url($uri['path'], array_merge($uri['options'], array('alias' => TRUE))),
|
||||
);
|
||||
drupal_add_html_head_link($meta_short, TRUE);
|
||||
}
|
||||
|
||||
// Load all contexts.
|
||||
$contexts = ctools_context_handler_get_task_contexts($task, '', array($node));
|
||||
|
||||
@@ -107,6 +120,9 @@ function page_manager_node_view_page($node) {
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare the node to be displayed so all of the regular hooks are triggered.
|
||||
$default_output = node_page_view($node);
|
||||
|
||||
// Otherwise, fall back to the default output generated by node_page_view().
|
||||
return $default_output;
|
||||
}
|
||||
@@ -158,6 +174,7 @@ function page_manager_node_view_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -47,7 +47,7 @@ function page_manager_page_menu(&$items, $task) {
|
||||
'type' => MENU_CALLBACK,
|
||||
) + $base;
|
||||
|
||||
// Add menu entries for each subtask
|
||||
// Add menu entries for each subtask.
|
||||
foreach (page_manager_page_load_all() as $subtask_id => $subtask) {
|
||||
if (!empty($subtask->disabled)) {
|
||||
continue;
|
||||
@@ -61,7 +61,7 @@ function page_manager_page_menu(&$items, $task) {
|
||||
}
|
||||
|
||||
$path = array();
|
||||
$page_arguments = array($subtask_id);
|
||||
$page_arguments = array((string) $subtask_id);
|
||||
$access_arguments = array($subtask->access);
|
||||
$load_arguments = array($subtask_id, '%index', '%map');
|
||||
|
||||
@@ -102,12 +102,12 @@ function page_manager_page_menu(&$items, $task) {
|
||||
$page_arguments[] = $position;
|
||||
$access_arguments[] = $position;
|
||||
}
|
||||
else if ($bit[0] != '!') {
|
||||
elseif ($bit[0] != '!') {
|
||||
$path[] = $bit;
|
||||
}
|
||||
|
||||
// Increment position. We do it like this to skip empty items that
|
||||
// could happen from erroneous paths like: this///that
|
||||
// could happen from erroneous paths like: this///that.
|
||||
$position++;
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ function page_manager_page_menu_item($task, $menu, $access_arguments, $page_argu
|
||||
|
||||
case 'normal':
|
||||
$item['type'] = MENU_NORMAL_ITEM;
|
||||
// Insert item into the proper menu
|
||||
// Insert item into the proper menu.
|
||||
$item['menu_name'] = $menu['name'];
|
||||
break;
|
||||
|
||||
@@ -261,10 +261,10 @@ function page_manager_page_add_subtask($task_name = NULL, $step = NULL) {
|
||||
if (isset($form_info['add order'][$id])) {
|
||||
$form_info['order'][$id] = $form_info['add order'][$id];
|
||||
}
|
||||
else if (isset($handler_plugin['add features'][$id])) {
|
||||
elseif (isset($handler_plugin['add features'][$id])) {
|
||||
$form_info['order'][$id] = $handler_plugin['add features'][$id];
|
||||
}
|
||||
else if (isset($handler_plugin['required forms'][$id])) {
|
||||
elseif (isset($handler_plugin['required forms'][$id])) {
|
||||
$form_info['order'][$id] = $handler_plugin['required forms'][$id];
|
||||
}
|
||||
}
|
||||
@@ -279,7 +279,7 @@ function page_manager_page_add_subtask($task_name = NULL, $step = NULL) {
|
||||
// our questions determined would be next.
|
||||
if ($step == 'next') {
|
||||
$keys = array_keys($form_info['order']);
|
||||
// get rid of 'basic' from the list of forms.
|
||||
// Get rid of 'basic' from the list of forms.
|
||||
array_shift($keys);
|
||||
$step = array_shift($keys);
|
||||
|
||||
@@ -416,7 +416,7 @@ function page_manager_page_form_basic($form, &$form_state) {
|
||||
'#default_value' => $page->admin_description,
|
||||
);
|
||||
|
||||
// path
|
||||
// Path.
|
||||
$form['path'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Path'),
|
||||
@@ -452,7 +452,7 @@ function page_manager_page_form_basic($form, &$form_state) {
|
||||
'#description' => t('Admin overlays are used in many places in Drupal 7 and administrative custom pages should probably utilize this feature.'),
|
||||
);
|
||||
}
|
||||
else if ($path == $frontpage) {
|
||||
elseif ($path == $frontpage) {
|
||||
$form['frontpage_markup'] = array(
|
||||
'#value' => '<b>' . t('This page is currently set to be your site home page. This can be modified on the !siteinfo configuration form.', array('!siteinfo' => l(t('Site Information'), 'admin/settings/site-information'))) . '</b>',
|
||||
);
|
||||
@@ -516,7 +516,7 @@ function page_manager_page_form_basic_validate(&$form, &$form_state) {
|
||||
$path = array();
|
||||
if (empty($form_state['values']['path'])) {
|
||||
form_error($form['path'], t('Path is required.'));
|
||||
// stop processing here if there is no path.
|
||||
// Stop processing here if there is no path.
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -542,7 +542,7 @@ function page_manager_page_form_basic_validate(&$form, &$form_state) {
|
||||
|
||||
$path[] = '%';
|
||||
}
|
||||
else if ($bit[0] == '!') {
|
||||
elseif ($bit[0] == '!') {
|
||||
$found = TRUE;
|
||||
}
|
||||
else {
|
||||
@@ -566,7 +566,7 @@ function page_manager_page_form_basic_validate(&$form, &$form_state) {
|
||||
if (strpos($path, '%') === FALSE) {
|
||||
$alias = db_query('SELECT alias, source FROM {url_alias} WHERE alias = :path', array(':path' => $path))->fetchObject();
|
||||
if ($alias) {
|
||||
form_error($form['path'], t('That path is currently assigned to be an alias for @alias. This system cannot override existing aliases.', array('@alias' => $alias->src)));
|
||||
form_error($form['path'], t('That path is currently assigned to be an alias for @alias. This system cannot override existing aliases.', array('@alias' => $alias->source)));
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -620,9 +620,10 @@ function page_manager_page_form_basic_submit(&$form, &$form_state) {
|
||||
$title = !empty($form_state['values']['title']) ? $form_state['values']['title'] : $plugin['title'];
|
||||
page_manager_handler_add_to_page($cache, $handler, $title);
|
||||
|
||||
// Figure out which forms to present them with
|
||||
// Figure out which forms to present them with.
|
||||
$cache->forms = array();
|
||||
$cache->forms[] = 'basic'; // This one is always there.
|
||||
// This one is always there.
|
||||
$cache->forms[] = 'basic';
|
||||
if (!empty($form_state['arguments'])) {
|
||||
$cache->forms[] = 'argument';
|
||||
}
|
||||
@@ -698,7 +699,7 @@ function page_manager_page_form_menu($form, &$form_state) {
|
||||
'#title' => t('Title'),
|
||||
'#type' => 'textfield',
|
||||
'#default_value' => $menu['title'],
|
||||
'#description' => t('If set to normal or tab, enter the text to use for the menu item.'),
|
||||
'#description' => t('If set to normal or tab, enter the text to use for the menu item. Renaming the menu item using the Drupal menu system (admin/structure/menu) will override this, even if it is renamed again here.'),
|
||||
'#dependency' => array('radio:menu[type]' => array('normal', 'tab', 'default tab', 'action')),
|
||||
);
|
||||
|
||||
@@ -787,7 +788,6 @@ function page_manager_page_form_menu($form, &$form_state) {
|
||||
function page_manager_page_form_menu_validate(&$form, &$form_state) {
|
||||
// If setting a 'normal' menu entry, make sure that any placeholders
|
||||
// support the to_arg stuff.
|
||||
|
||||
if ($form_state['values']['menu']['type'] == 'normal') {
|
||||
$page = $form_state['page']->subtask['subtask'];
|
||||
|
||||
@@ -876,7 +876,7 @@ function page_manager_page_form_argument($form, &$form_state) {
|
||||
if (isset($page->temporary_arguments[$keyword]) && !empty($form_state['allow temp'])) {
|
||||
$conf = $page->temporary_arguments[$keyword];
|
||||
}
|
||||
else if (isset($page->arguments[$keyword])) {
|
||||
elseif (isset($page->arguments[$keyword])) {
|
||||
$conf = $page->arguments[$keyword];
|
||||
}
|
||||
|
||||
@@ -896,7 +896,7 @@ function page_manager_page_form_argument($form, &$form_state) {
|
||||
$form['table']['argument'][$keyword]['#position'] = $position;
|
||||
$form['table']['argument'][$keyword]['#context'] = $context;
|
||||
|
||||
// The URL for this ajax button
|
||||
// The URL for this ajax button.
|
||||
$form['table']['argument'][$keyword]['change-url'] = array(
|
||||
'#attributes' => array('class' => array("page-manager-context-$keyword-change-url")),
|
||||
'#type' => 'hidden',
|
||||
@@ -913,7 +913,7 @@ function page_manager_page_form_argument($form, &$form_state) {
|
||||
|
||||
// Only show the button if this has a settings form available:
|
||||
if (!empty($plugin)) {
|
||||
// The URL for this ajax button
|
||||
// The URL for this ajax button.
|
||||
$form['table']['argument'][$keyword]['settings-url'] = array(
|
||||
'#attributes' => array('class' => array("page-manager-context-$keyword-settings-url")),
|
||||
'#type' => 'hidden',
|
||||
@@ -970,7 +970,7 @@ function theme_page_manager_page_form_argument_table($vars) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax entry point to edit an item
|
||||
* Ajax entry point to edit an item.
|
||||
*/
|
||||
function page_manager_page_subtask_argument_ajax($step = NULL, $task_name = NULL, $keyword = NULL) {
|
||||
ctools_include('ajax');
|
||||
@@ -995,7 +995,7 @@ function page_manager_page_subtask_argument_ajax($step = NULL, $task_name = NULL
|
||||
return ctools_ajax_render_error(t('Invalid keyword.'));
|
||||
}
|
||||
|
||||
// Set up wizard info
|
||||
// Set up wizard info.
|
||||
$form_info = array(
|
||||
'id' => 'page_manager_page_argument',
|
||||
'path' => "admin/structure/pages/argument/%step/$task_name/$keyword",
|
||||
@@ -1032,7 +1032,7 @@ function page_manager_page_subtask_argument_ajax($step = NULL, $task_name = NULL
|
||||
if (!empty($form_state['cancel'])) {
|
||||
$commands = array(ctools_modal_command_dismiss());
|
||||
}
|
||||
else if (!empty($form_state['complete'])) {
|
||||
elseif (!empty($form_state['complete'])) {
|
||||
if (isset($page->temporary_arguments[$keyword])) {
|
||||
$page->arguments[$keyword] = $page->temporary_arguments[$keyword];
|
||||
}
|
||||
@@ -1051,7 +1051,6 @@ function page_manager_page_subtask_argument_ajax($step = NULL, $task_name = NULL
|
||||
// fully processed, but is guaranteed to produce the same form we
|
||||
// started with so we don't have to do crazy stuff to rerender
|
||||
// just part of it.
|
||||
|
||||
// @todo should there be a tool to do this?
|
||||
|
||||
$clone_state = $form_state;
|
||||
@@ -1174,7 +1173,7 @@ function page_manager_page_argument_form_change_submit(&$form, &$form_state) {
|
||||
if (is_array($plugin['default'])) {
|
||||
$settings = $plugin['default'];
|
||||
}
|
||||
else if (function_exists($plugin['default'])) {
|
||||
elseif (function_exists($plugin['default'])) {
|
||||
$settings = $plugin['default']();
|
||||
}
|
||||
}
|
||||
@@ -1201,7 +1200,7 @@ function page_manager_page_argument_form_settings($form, &$form_state) {
|
||||
if (isset($page->temporary_arguments[$keyword])) {
|
||||
$conf = $page->temporary_arguments[$keyword];
|
||||
}
|
||||
else if (isset($page->arguments[$keyword])) {
|
||||
elseif (isset($page->arguments[$keyword])) {
|
||||
$conf = $page->temporary_arguments[$keyword] = $page->arguments[$keyword];
|
||||
}
|
||||
|
||||
@@ -1271,7 +1270,7 @@ function page_manager_page_argument_form_settings_submit(&$form, &$form_state) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Import a task handler from cut & paste
|
||||
* Import a task handler from cut & paste.
|
||||
*/
|
||||
function page_manager_page_import_subtask($form, &$form_state, $task_name) {
|
||||
$form_state['task'] = page_manager_get_task($task_name);
|
||||
@@ -1414,7 +1413,7 @@ function page_manager_page_form_clone($form, &$form_state) {
|
||||
'#description' => t('Enter the name to the new page It must be unique and contain only alphanumeric characters and underscores.'),
|
||||
);
|
||||
|
||||
// path
|
||||
// Path.
|
||||
$form['path'] = array(
|
||||
'#type' => 'textfield',
|
||||
'#title' => t('Path'),
|
||||
@@ -1449,7 +1448,7 @@ function page_manager_page_form_clone_validate(&$form, &$form_state) {
|
||||
}
|
||||
|
||||
/**
|
||||
* submit clone page form.
|
||||
* Submit clone page form.
|
||||
*
|
||||
* Load the page, change the name(s) to protect the innocent, and if
|
||||
* requested, load all the task handlers so that they get saved properly too.
|
||||
@@ -1462,6 +1461,15 @@ function page_manager_page_form_clone_submit(&$form, &$form_state) {
|
||||
$original->path = $form_state['values']['path'];
|
||||
|
||||
$handlers = !empty($form_state['values']['handlers']) ? $form_state['page']->handlers : FALSE;
|
||||
// Ensure the handler uuids are re-generated.
|
||||
if ($handlers) {
|
||||
foreach ($handlers as &$handler) {
|
||||
if (isset($handler->conf['display']) && method_exists($handler->conf['display'], 'clone_display')) {
|
||||
$handler->conf['display'] = $handler->conf['display']->clone_display();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Export the handler, which is a fantastic way to clean database IDs out of it.
|
||||
$export = page_manager_page_export($original, $handlers);
|
||||
ob_start();
|
||||
|
||||
@@ -32,7 +32,7 @@ function page_manager_page_page_manager_tasks() {
|
||||
'function' => 'page_manager_page_menu',
|
||||
),
|
||||
'hook theme' => 'page_manager_page_theme',
|
||||
// page only items
|
||||
// Page only items.
|
||||
'task type' => 'page',
|
||||
'page operations' => array(
|
||||
array(
|
||||
@@ -49,7 +49,7 @@ function page_manager_page_page_manager_tasks() {
|
||||
),
|
||||
'page type' => 'custom',
|
||||
|
||||
// context only items
|
||||
// Context only items.
|
||||
'handler type' => 'context',
|
||||
'get arguments' => array(
|
||||
'file' => 'page.admin.inc',
|
||||
@@ -112,7 +112,7 @@ function page_manager_page_save_subtask($subtask) {
|
||||
}
|
||||
}
|
||||
page_manager_page_recalculate_arguments($page);
|
||||
// Create a real object from the cache
|
||||
// Create a real object from the cache.
|
||||
page_manager_page_save($page);
|
||||
|
||||
// Check to see if we should make this the site frontpage.
|
||||
@@ -191,7 +191,7 @@ function page_manager_page_build_subtask($task, $page) {
|
||||
'form' => 'page_manager_page_form_delete',
|
||||
);
|
||||
}
|
||||
else if ($page->export_type != EXPORT_IN_CODE) {
|
||||
elseif ($page->export_type != EXPORT_IN_CODE) {
|
||||
$operations['actions']['children']['delete'] = array(
|
||||
'title' => t('Delete'),
|
||||
'description' => t('Remove this page from your system completely.'),
|
||||
@@ -216,11 +216,11 @@ function page_manager_page_build_subtask($task, $page) {
|
||||
'row class' => empty($page->disabled) ? 'page-manager-enabled' : 'page-manager-disabled',
|
||||
'storage' => $page->type == t('Default') ? t('In code') : $page->type,
|
||||
'disabled' => !empty($page->disabled),
|
||||
// This works for both enable AND disable
|
||||
// This works for both enable AND disable.
|
||||
'enable callback' => 'page_manager_page_enable',
|
||||
);
|
||||
|
||||
// default handlers may appear from a default subtask.
|
||||
// Default handlers may appear from a default subtask.
|
||||
if (isset($page->default_handlers)) {
|
||||
$subtask['default handlers'] = $page->default_handlers;
|
||||
}
|
||||
@@ -247,8 +247,7 @@ function page_manager_page_theme(&$items, $task) {
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Page execution functions
|
||||
|
||||
// Page execution functions.
|
||||
/**
|
||||
* Execute a page task.
|
||||
*
|
||||
@@ -262,6 +261,7 @@ function page_manager_page_theme(&$items, $task) {
|
||||
* creating named arguments in the path.
|
||||
*/
|
||||
function page_manager_page_execute($subtask_id) {
|
||||
$func_args = func_get_args();
|
||||
$page = page_manager_page_load($subtask_id);
|
||||
$task = page_manager_get_task($page->task);
|
||||
$subtask = page_manager_get_task_subtask($task, $subtask_id);
|
||||
@@ -269,12 +269,12 @@ function page_manager_page_execute($subtask_id) {
|
||||
// Turn the contexts into a properly keyed array.
|
||||
$contexts = array();
|
||||
$args = array();
|
||||
foreach (func_get_args() as $count => $arg) {
|
||||
foreach ($func_args as $count => $arg) {
|
||||
if (is_object($arg) && get_class($arg) == 'ctools_context') {
|
||||
$contexts[$arg->id] = $arg;
|
||||
$args[] = $arg->original_argument;
|
||||
}
|
||||
else if ($count) {
|
||||
elseif ($count) {
|
||||
$args[] = $arg;
|
||||
}
|
||||
}
|
||||
@@ -302,9 +302,9 @@ function page_manager_page_execute($subtask_id) {
|
||||
$context = ctools_context_get_context_from_argument($argument, $value);
|
||||
}
|
||||
else {
|
||||
// make sure there is a placeholder context for missing optional contexts.
|
||||
// Make sure there is a placeholder context for missing optional contexts.
|
||||
$context = ctools_context_get_context_from_argument($argument, NULL, TRUE);
|
||||
// Force the title to blank for replacements
|
||||
// Force the title to blank for replacements.
|
||||
}
|
||||
if ($context) {
|
||||
$contexts[$context->id] = $context;
|
||||
@@ -328,8 +328,7 @@ function page_manager_page_execute($subtask_id) {
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Context type callbacks
|
||||
|
||||
// Context type callbacks.
|
||||
/**
|
||||
* Return a list of arguments used by this task.
|
||||
*/
|
||||
@@ -432,7 +431,7 @@ function page_manager_page_save(&$page) {
|
||||
/**
|
||||
* Remove a page subtask.
|
||||
*/
|
||||
function page_manager_page_delete($page) {
|
||||
function page_manager_page_delete($page, $skip_menu_rebuild = FALSE) {
|
||||
$task = page_manager_get_task($page->task);
|
||||
if ($function = ctools_plugin_get_function($task, 'delete')) {
|
||||
$function($page);
|
||||
@@ -450,7 +449,11 @@ function page_manager_page_delete($page) {
|
||||
// rebuild this page again.
|
||||
ctools_include('export');
|
||||
ctools_export_load_object_reset('page_manager_pages');
|
||||
menu_rebuild();
|
||||
// Allow menu rebuild to be skipped when calling code is deleting multiple
|
||||
// pages.
|
||||
if (!$skip_menu_rebuild) {
|
||||
menu_rebuild();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -500,7 +503,7 @@ function page_manager_page_get_named_arguments($path) {
|
||||
$bits = explode('/', $path);
|
||||
foreach ($bits as $position => $bit) {
|
||||
if ($bit && ($bit[0] == '%' || $bit[0] == '!')) {
|
||||
// special handling for duplicate path items and substr to remove the %
|
||||
// Special handling for duplicate path items and substr to remove the %.
|
||||
$arguments[substr($bit, 1)] = isset($arguments[$bit]) ? -1 : $position;
|
||||
}
|
||||
}
|
||||
@@ -547,7 +550,7 @@ function _pm_arg_load($value, $subtask, $argument) {
|
||||
ctools_include('context');
|
||||
$context = ctools_context_get_context_from_argument($page->arguments[$keyword], $value);
|
||||
|
||||
// convert false equivalents to false.
|
||||
// Convert false equivalents to false.
|
||||
return $context ? $context : FALSE;
|
||||
}
|
||||
|
||||
@@ -583,7 +586,6 @@ function page_manager_page_admin_summary($task, $subtask) {
|
||||
array('class' => array('page-summary-operation'), 'data' => $link),
|
||||
);
|
||||
|
||||
|
||||
$path = array();
|
||||
foreach (explode('/', $page->path) as $bit) {
|
||||
if ($bit[0] != '!') {
|
||||
@@ -599,7 +601,7 @@ function page_manager_page_admin_summary($task, $subtask) {
|
||||
if ($path == $front) {
|
||||
$message = t('This is your site home page.');
|
||||
}
|
||||
else if (!empty($page->make_frontpage)) {
|
||||
elseif (!empty($page->make_frontpage)) {
|
||||
$message = t('This page is set to become your site home page.');
|
||||
}
|
||||
|
||||
@@ -660,6 +662,7 @@ function page_manager_page_admin_summary($task, $subtask) {
|
||||
case 'default tab':
|
||||
$menu .= ' ' . t('Parent title: %title.', array('%title' => $page->menu['parent']['title']));
|
||||
break;
|
||||
|
||||
case 'normal':
|
||||
if (module_exists('menu')) {
|
||||
$menus = menu_get_menus();
|
||||
@@ -750,7 +753,7 @@ function page_manager_page_new_page_cache(&$page, &$cache) {
|
||||
$cache->subtask = page_manager_page_build_subtask($cache->task, $page);
|
||||
|
||||
if (isset($cache->handlers)) {
|
||||
foreach($cache->handlers as $id => $handler) {
|
||||
foreach ($cache->handlers as $id => $handler) {
|
||||
$cache->handler_info[$id]['changed'] = PAGE_MANAGER_CHANGED_DELETED;
|
||||
}
|
||||
}
|
||||
@@ -778,6 +781,7 @@ function page_manager_page_new_page_cache(&$page, &$cache) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
@@ -10,7 +14,7 @@ function page_manager_poll_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('All polls'),
|
||||
@@ -68,7 +72,7 @@ function page_manager_poll_menu_alter(&$items, $task) {
|
||||
* node edit, which is node_page_edit().
|
||||
*/
|
||||
function page_manager_poll() {
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('poll');
|
||||
|
||||
ctools_include('context');
|
||||
@@ -113,6 +117,7 @@ function page_manager_poll_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* Specialized implementation of hook_page_manager_task_tasks(). See api-task.html for
|
||||
* more information.
|
||||
* Specialized implementation of hook_page_manager_task_tasks().
|
||||
*
|
||||
* See api-task.html for more information.
|
||||
*/
|
||||
function page_manager_search_page_manager_tasks() {
|
||||
if (!module_exists('search')) {
|
||||
@@ -19,7 +20,7 @@ function page_manager_search_page_manager_tasks() {
|
||||
}
|
||||
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
'title' => t('Search'),
|
||||
|
||||
@@ -38,7 +39,6 @@ function page_manager_search_page_manager_tasks() {
|
||||
'get arguments' => 'page_manager_search_get_arguments',
|
||||
'get context placeholders' => 'page_manager_search_get_contexts',
|
||||
'access callback' => 'page_manager_search_access_check',
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,6 @@ function page_manager_search_menu_alter(&$items, $task) {
|
||||
// keywords. A second set is for searching *with* keywords. This
|
||||
// is necessary because search/node/% and search/node need to be
|
||||
// different due to the way the search menu items function.
|
||||
|
||||
$default_info = search_get_default_module_info();
|
||||
if (empty($default_info)) {
|
||||
// Nothing to do.
|
||||
@@ -85,7 +84,7 @@ function page_manager_search_menu_alter(&$items, $task) {
|
||||
$items["$path/%menu_tail"]['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_search_disabled_' . $module, TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_search'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable @path because some other module already has overridden with %callback.', array('%callback' => $callback, '@path' => $path)), 'error');
|
||||
@@ -96,12 +95,9 @@ function page_manager_search_menu_alter(&$items, $task) {
|
||||
|
||||
/**
|
||||
* Entry point for our overridden search page.
|
||||
*
|
||||
*/
|
||||
function page_manager_search_page($type) {
|
||||
ctools_include('menu');
|
||||
// menu_set_active_trail(ctools_get_menu_trail('search/' . $type));
|
||||
|
||||
// Get the arguments and construct a keys string out of them.
|
||||
$args = func_get_args();
|
||||
|
||||
@@ -111,10 +107,10 @@ function page_manager_search_page($type) {
|
||||
// And implode() it all back together.
|
||||
$keys = $args ? implode('/', $args) : '';
|
||||
|
||||
// Allow other modules to alter the search keys
|
||||
drupal_alter(array('search_keys', 'search_'. $type .'_keys'), $keys);
|
||||
// Allow other modules to alter the search keys.
|
||||
drupal_alter(array('search_keys', 'search_' . $type . '_keys'), $keys);
|
||||
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('search');
|
||||
$subtask = page_manager_get_task_subtask($task, $type);
|
||||
|
||||
@@ -138,7 +134,6 @@ function page_manager_search_page($type) {
|
||||
}
|
||||
|
||||
// Otherwise, fall back.
|
||||
|
||||
// Put the $type back on the arguments.
|
||||
module_load_include('inc', 'search', 'search.pages');
|
||||
array_unshift($args, $type);
|
||||
@@ -224,7 +219,7 @@ function page_manager_search_build_subtask($task, $module) {
|
||||
'row class' => empty($page->disabled) ? 'page-manager-enabled' : 'page-manager-disabled',
|
||||
'storage' => t('In code'),
|
||||
'disabled' => variable_get('page_manager_search_disabled_' . $module, TRUE),
|
||||
// This works for both enable AND disable
|
||||
// This works for both enable AND disable.
|
||||
'enable callback' => 'page_manager_search_enable',
|
||||
);
|
||||
|
||||
@@ -240,6 +235,7 @@ function page_manager_search_build_subtask($task, $module) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
function page_manager_term_view_page_manager_tasks() {
|
||||
if (module_exists('taxonomy')) {
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
|
||||
'title' => t('Taxonomy term template'),
|
||||
@@ -29,7 +29,7 @@ function page_manager_term_view_page_manager_tasks() {
|
||||
'hook menu' => 'page_manager_term_view_menu',
|
||||
'hook menu alter' => 'page_manager_term_view_menu_alter',
|
||||
|
||||
// Provide a setting to the primary settings UI for Panels
|
||||
// Provide a setting to the primary settings UI for Panels.
|
||||
'admin settings' => 'page_manager_term_view_admin_settings',
|
||||
// Even though we don't have subtasks, this allows us to save our settings.
|
||||
'save subtask callback' => 'page_manager_term_view_save',
|
||||
@@ -48,7 +48,7 @@ function page_manager_term_view_page_manager_tasks() {
|
||||
'enable callback' => 'page_manager_term_view_enable',
|
||||
'access callback' => 'page_manager_term_view_access_check',
|
||||
|
||||
// Allow additional operations
|
||||
// Allow additional operations.
|
||||
'operations' => array(
|
||||
'settings' => array(
|
||||
'title' => t('Settings'),
|
||||
@@ -79,7 +79,7 @@ function page_manager_term_view_menu_alter(&$items, $task) {
|
||||
$items['taxonomy/term/%taxonomy_term']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_term_view_disabled', TRUE);
|
||||
|
||||
if (isset($items['taxonomy/term/%taxonomy_term']['page callback'])) {
|
||||
@@ -87,7 +87,7 @@ function page_manager_term_view_menu_alter(&$items, $task) {
|
||||
}
|
||||
// Because Views changes %taxonomy_term to %views_arg, check to see if that
|
||||
// is why we can't enable:
|
||||
else if (isset($items['taxonomy/term/%views_arg']['page callback'])) {
|
||||
elseif (isset($items['taxonomy/term/%views_arg']['page callback'])) {
|
||||
$callback = $items['taxonomy/term/%views_arg']['page callback'];
|
||||
}
|
||||
else {
|
||||
@@ -112,7 +112,6 @@ function page_manager_term_view_page($term, $depth = NULL) {
|
||||
// potentially load nodes that were not necessary, execute some of the code
|
||||
// prior to identifying the correct CTools or Page Manager task handler and
|
||||
// only proceed with the rest of the code if necessary.
|
||||
|
||||
// Assign the term name as the page title.
|
||||
drupal_set_title($term->name);
|
||||
|
||||
@@ -126,10 +125,10 @@ function page_manager_term_view_page($term, $depth = NULL) {
|
||||
// Set the non-aliased path as a default shortlink.
|
||||
drupal_add_html_head_link(array('rel' => 'shortlink', 'href' => url($uri['path'], array_merge($uri['options'], array('alias' => TRUE)))), TRUE);
|
||||
|
||||
// Trigger the main
|
||||
// Trigger the main.
|
||||
$build = taxonomy_term_show($term);
|
||||
|
||||
// Load my task plugin
|
||||
// Load my task plugin.
|
||||
$task = page_manager_get_task('term_view');
|
||||
|
||||
// Load the term into a context.
|
||||
@@ -151,13 +150,12 @@ function page_manager_term_view_page($term, $depth = NULL) {
|
||||
foreach (module_implements('page_manager_override') as $module) {
|
||||
$call = $module . '_page_manager_override';
|
||||
if (($rc = $call('term_view')) && function_exists($rc)) {
|
||||
return $rc($node);
|
||||
return $rc($term, $depth);
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise, fall back to replicating the output normally generated by
|
||||
// taxonomy_term_page().
|
||||
|
||||
// Build breadcrumb based on the hierarchy of the term.
|
||||
$current = (object) array(
|
||||
'tid' => $term->tid,
|
||||
@@ -296,7 +294,6 @@ function page_manager_term_view_enable($cache, $status) {
|
||||
}
|
||||
|
||||
function page_manager_term_view_get_type() {
|
||||
// $view_type = variable_get('page_manager_term_view_type', 'multiple');
|
||||
// Revert to just allowing single.
|
||||
$view_type = 'single';
|
||||
|
||||
@@ -369,7 +366,8 @@ function page_manager_term_view_admin_summary($task, $subtask) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
* @return
|
||||
*
|
||||
* @return bool
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
function page_manager_term_view_access_check($task, $subtask_id, $contexts) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
function page_manager_user_edit_page_manager_tasks() {
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
'title' => t('User Edit Template'),
|
||||
'admin title' => t('User edit template'),
|
||||
@@ -65,7 +65,7 @@ function page_manager_user_edit_menu_alter(&$items, $task) {
|
||||
}
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_user_edit_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_user_edit'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable user/%user/edit because some other module already has overridden with %callback.', array('%callback' => $items['user/%user']['page callback'])), 'error');
|
||||
@@ -114,9 +114,9 @@ function page_manager_user_edit_page($account, $category = 'account') {
|
||||
// Otherwise, fall back.
|
||||
if ($function == 'drupal_get_form') {
|
||||
|
||||
//In order to ajax fields to work we need to run form_load_include.
|
||||
//Hence we eschew drupal_get_form and manually build the info and
|
||||
//call drupal_build_form.
|
||||
// In order to ajax fields to work we need to run form_load_include.
|
||||
// Hence we eschew drupal_get_form and manually build the info and
|
||||
// call drupal_build_form.
|
||||
$form_state = array();
|
||||
$form_id = 'user_profile_form';
|
||||
$args = array($account, $category);
|
||||
@@ -125,10 +125,9 @@ function page_manager_user_edit_page($account, $category = 'account') {
|
||||
$output = drupal_build_form($form_id, $form_state);
|
||||
return $output;
|
||||
}
|
||||
//fire off "view" op so that triggers still work
|
||||
// Fire off "view" op so that triggers still work.
|
||||
// @todo -- this doesn't work anymore, and the alternatives seem bad.
|
||||
// will have to figure out how to fix this.
|
||||
// user_module_invoke('view', $array = array(), $account);
|
||||
return $function($account);
|
||||
}
|
||||
|
||||
@@ -178,6 +177,7 @@ function page_manager_user_edit_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
function page_manager_user_view_page_manager_tasks() {
|
||||
return array(
|
||||
// This is a 'page' task and will fall under the page admin UI
|
||||
// This is a 'page' task and will fall under the page admin UI.
|
||||
'task type' => 'page',
|
||||
'title' => t('User profile template'),
|
||||
'admin title' => t('User profile template'),
|
||||
@@ -53,7 +53,7 @@ function page_manager_user_view_menu_alter(&$items, $task) {
|
||||
$items['user/%user']['file'] = $task['file'];
|
||||
}
|
||||
else {
|
||||
// automatically disable this task if it cannot be enabled.
|
||||
// Automatically disable this task if it cannot be enabled.
|
||||
variable_set('page_manager_user_view_disabled', TRUE);
|
||||
if (!empty($GLOBALS['page_manager_enabling_user_view'])) {
|
||||
drupal_set_message(t('Page manager module is unable to enable user/%user because some other module already has overridden with %callback.', array('%callback' => $items['user/%user']['page callback'])), 'error');
|
||||
@@ -98,10 +98,9 @@ function page_manager_user_view_page($account) {
|
||||
if ($function == 'user_view') {
|
||||
module_load_include('inc', 'user', 'user.pages');
|
||||
}
|
||||
//fire off "view" op so that triggers still work
|
||||
// Fire off "view" op so that triggers still work.
|
||||
// @todo -- this doesn't work anymore, and the alternatives seem bad.
|
||||
// will have to figure out how to fix this.
|
||||
// user_module_invoke('view', $array = array(), $account);
|
||||
return $function($account);
|
||||
}
|
||||
|
||||
@@ -152,6 +151,7 @@ function page_manager_user_view_enable($cache, $status) {
|
||||
* The subtask id
|
||||
* @param $contexts
|
||||
* The contexts loaded for the task.
|
||||
*
|
||||
* @return
|
||||
* TRUE if the current user can access the page.
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Tests the head links for page manager pages.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Test the head links.
|
||||
*/
|
||||
class HeadLinksTestCase extends DrupalWebTestCase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Head links test',
|
||||
'description' => 'Checks that the shortlink and canonical links are present on a node page overriden by Page manager',
|
||||
'group' => 'ctools',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setUp() {
|
||||
parent::setUp('page_manager');
|
||||
|
||||
// First add an override for "node/%node".
|
||||
variable_set('page_manager_node_view_disabled', FALSE);
|
||||
|
||||
$record = (object) array(
|
||||
'name' => 'node_view__http_response_707659df-062d-4252-8c2a-22a8e0289cd4',
|
||||
'task' => 'node_view',
|
||||
'subtask' => '',
|
||||
'handler' => 'http_response',
|
||||
'weight' => '1',
|
||||
'conf' => array(
|
||||
'title' => 'Test',
|
||||
'contexts' => array(
|
||||
0 => array(
|
||||
'identifier' => 'String',
|
||||
'keyword' => 'string',
|
||||
'name' => 'string',
|
||||
'string' => 'Test',
|
||||
'id' => 1,
|
||||
),
|
||||
),
|
||||
'relationships' => array(),
|
||||
'code' => '404',
|
||||
'destination' => '',
|
||||
'name' => '',
|
||||
),
|
||||
);
|
||||
|
||||
page_manager_save_task_handler($record);
|
||||
|
||||
menu_rebuild();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the presence of the head links.
|
||||
*/
|
||||
public function testHeadLinks() {
|
||||
$node = $this->drupalCreateNode();
|
||||
$url = 'node/' . $node->nid;
|
||||
$this->drupalGet($url);
|
||||
|
||||
$shortlink = $this->xpath('//head//link[@rel="shortlink"]');
|
||||
$this->assertEqual(url($url), (string) $shortlink[0]['href'], 'shortlink url found');
|
||||
|
||||
$canonical = $this->xpath('//head//link[@rel="canonical"]');
|
||||
$this->assertEqual(url($url), (string) $canonical[0]['href'], 'canonical url found');
|
||||
}
|
||||
|
||||
}
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Template for the page manager page editor.
|
||||
@@ -42,7 +43,7 @@
|
||||
<div class="description">
|
||||
<?php print $content['description']; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php print $content['content']; ?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -50,4 +51,4 @@
|
||||
</div>
|
||||
</div>
|
||||
<?php print $save; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,10 +27,10 @@ function template_preprocess_page_manager_edit_page(&$vars) {
|
||||
$vars['locked'] = theme('page_manager_lock', array('page' => $page));
|
||||
$vars['changed'] = theme('page_manager_changed', array('text' => t('Locked'), 'description' => t('This page is being edited by another user and you cannot make changes to it.')));
|
||||
}
|
||||
else if (!empty($page->new)) {
|
||||
elseif (!empty($page->new)) {
|
||||
$vars['changed'] = theme('page_manager_changed', array('text' => t('New'), 'description' => t('This page is newly created and has not yet been saved to the database. It will not be available until you save it.')));
|
||||
}
|
||||
else if (!empty($page->changed)) {
|
||||
elseif (!empty($page->changed)) {
|
||||
$vars['changed'] = theme('page_manager_changed', array('text' => t('Changed'), 'description' => t('This page has been modified, but these modifications are not yet live. While modifying this page, it is locked from modification by other users.')));
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ function template_preprocess_page_manager_edit_page(&$vars) {
|
||||
*/
|
||||
function theme_page_manager_handler_rearrange($vars) {
|
||||
$form = &$vars['form'];
|
||||
// Assemble the data for a table from everything in $form['handlers']
|
||||
// Assemble the data for a table from everything in $form['handlers'].
|
||||
foreach (element_children($form['handlers']) as $id) {
|
||||
// provide a reference shortcut.
|
||||
// Provide a reference shortcut.
|
||||
$element = &$form['handlers'][$id];
|
||||
if (isset($element['title'])) {
|
||||
$row = array();
|
||||
|
||||
Reference in New Issue
Block a user