diff --git a/metatags_quick.admin.inc b/metatags_quick.admin.inc index 6ddddae..9097a94 100644 --- a/metatags_quick.admin.inc +++ b/metatags_quick.admin.inc @@ -37,6 +37,13 @@ function metatags_quick_admin_settings() { '#default_value' => variable_get('metatags_quick_use_path_based', 1), '#return_value' => 1, ); + if (module_exists('contextual')) { + $form['global']['use_contextual_link'] = array( + '#type' => 'checkbox', + '#title' => t('Display path-based meta tag link in contextual links instead of tabs'), + '#default_value' => variable_get('metatags_quick_use_contextual_link', 0), + ); + } $form['global']['default_field_length'] = array( '#type' => 'textfield', '#title' => t('Default maximum length'), @@ -187,6 +194,7 @@ function metatags_quick_admin_settings() { */ function metatags_quick_admin_settings_submit($form, &$form_state) { variable_set('metatags_quick_use_path_based', $form_state['values']['use_path_based']); + variable_set('metatags_quick_use_contextual_link', $form_state['values']['use_contextual_link']); variable_set('metatags_quick_default_field_length', $form_state['values']['default_field_length']); if ($form_state['clicked_button']['#value'] == t('Attach')) { _metatags_quick_admin_fields_create_attach($form_state['input']); diff --git a/metatags_quick.install b/metatags_quick.install index 71f2821..56b3e3e 100644 --- a/metatags_quick.install +++ b/metatags_quick.install @@ -53,6 +53,7 @@ function metatags_quick_uninstall() { variable_del('metatags_quick_settings'); variable_del('metatags_quick_use_path_based'); + variable_del('metatags_quick_use_contextual_link'); variable_del('metatags_quick_default_field_length'); } diff --git a/metatags_quick.module b/metatags_quick.module index f88deea..6fc9b77 100644 --- a/metatags_quick.module +++ b/metatags_quick.module @@ -213,15 +213,20 @@ function metatags_quick_page_build(&$page) { * Implements hook_menu_local_tasks_alter(). */ function metatags_quick_menu_local_tasks_alter(&$data, $router_item, $root_path) { - // Don't add meta tags editing links to admin pages. + // Don't add meta tags editing tab to admin pages. if (path_is_admin($_GET['q'])) { return; } - // Don't add meta tags editing links if path based meta tags are disabled. + // Don't add meta tags editing tab if path based meta tags are disabled. if (!variable_get('metatags_quick_use_path_based', 1)) { return; } + + // Don't add meta tags editing tab if contextual links are enabled. + if (variable_get('metatags_quick_use_contextual_link', 0)) { + return; + } if (!_metatags_quick_path_based_page()) { return; @@ -253,6 +258,44 @@ function metatags_quick_menu_local_tasks_alter(&$data, $router_item, $root_path) } } +/** + * Implements hook_contextual_links_view_alter(). + * + */ + +function metatags_quick_contextual_links_view_alter(&$element, $items) { + // Don't add meta tags editing contextual links to admin pages. + if (path_is_admin($_GET['q'])) { + return; + } + + // Don't add meta tags editing contextual links if path based meta tags are disabled. + if (!variable_get('metatags_quick_use_path_based', 1)) { + return; + } + + // Don't add meta tags editing tab if contextual links are disabled. + if (!variable_get('metatags_quick_use_contextual_link', 0)) { + return; + } + + if (!_metatags_quick_path_based_page()) { + return; + } + + if (user_access('edit metatags_quick')) { + $edit_url = 'admin/config/search/metatags_quick/path_based/edit'; + $item = array(); + $item['title'] = 'Path-based Metatags'; + $item['href'] = $edit_url; + $item['query'] = array( + 'path' => $_GET['q'], + 'destination' => $_GET['q'], + ); + $element['#links']['metatags-quick-path-edit'] = $item; + } + return; +} /** * Implements hook_field_validate().