Download & Extend

Improve redirect mechanism for merged terms

Project:Taxonomy Manager
Version:6.x-2.x-dev
Component:Code
Category:task
Priority:normal
Assigned:Unassigned
Status:needs review

Issue Summary

As discussed in #567564: Disable the taxonomy/term display by default we shouldn't use the menu_alter to redirect merged terms, because this breaks other modules like Taxonomy Breadcrumb and Panels3.
By default, the redirect is now disabled and it's working with other modules, but there might be better ways to implement this.
So I started an issue where we can work on a patch

Comments

#1

Subscribing. I suggest using Path_Redirect if available.

#2

Initial patch that..

  • creates path_redirect values for the taxonomy/term/[tid] URL of the $merging_terms,
  • creates path_redirect values for any url_alias URLs of the $merging_terms,
  • updates any existing path_redirect values that already existed to point to the $main_term.
AttachmentSize
taxonomy_manager-n569086.patch 2.91 KB

#3

Status:active» needs review

#4

That patch has an error in it. You need to change module_enabled('path_redirect') to module_exists('path_redirect')

With that change, the patch appears to do the right thing and is a welcome improvement.

Given that I also confirmed the incompatibility with Panels 3, I would suggest removing the existing redirect functionality entirely, and have the module just do a path_redirect by default instead (but still allow the checkbox to be unchecked). That would make path_redirect a prerequisite for this module, which would be fine.

#5

Gah. I forgot to update the module with my local test code. Here's a corrected patch.

AttachmentSize
taxonomy_manager-n569086-2.patch 2.91 KB

#6

Thanks for the patch Damien. Maybe it would be useful to add a default option or omit the whole options thing. After all, it is the expected behaviour, when using the redirect module:

   if (count($options) > 0) {
     $form['merge']['options'] = array(
       '#type' => 'checkboxes',
       '#title' => t('Options'),
       '#options' => $options,
     );
+    if (module_exists('path_redirect')) {
+      $form['merge']['options']['#default_value'] = array('merge_redirect');
+    }

#7

Thanks for the patch Damien and digi24.
I just make little fix - now patch works with new Path redirect module version 6.x-1.0-beta6. Please review.
Be careful, new version of Path redirect work only with Pathauto 6.x-1.x-dev.

AttachmentSize
taxonomy_manager.admin_.inc_.patch 2.95 KB

#8

Status:needs review» needs work

Patch failed against 6.x-2.x-dev:

$ patch < taxonomy_manager.admin_.inc_.patch
patching file taxonomy_manager.admin.inc
Hunk #1 succeeded at 573 (offset 1 line).
Hunk #2 FAILED at 2127.
1 out of 2 hunks FAILED -- saving rejects to file taxonomy_manager.admin.inc.rej
AttachmentSize
taxonomy_manager.admin_.inc_.rej_.txt 1.95 KB

#9

Status:needs work» needs review

Adapted the patch to latest -dev, works fine for me.
Please review.

AttachmentSize
path_redirect.patch 3.02 KB

#10

Patch from #9 works fine for me, just one "whitespace error":

path_redirect_6.patch:12: trailing whitespace.
$options['merge_redirect'] = t('Use path_redirect to redirect all old URLs to the new term.');
Checking patch taxonomy_manager.admin.inc...
Applied patch taxonomy_manager.admin.inc cleanly.
warning: 1 line adds whitespace errors.

#11

Applied the last patch against the 6.x-2.2 with no errors or warning. Redirection now works fine!
Thank you very much!

nobody click here