The following patch to conf_path() adds support for aliasing the directory of a multi-site installation. That makes it possible to develop a multi-site on a dev server that does not have the same domain name as the production server without the site breaking when it moves to a new domain. It also means two people can have two different domain-dependent sandboxes that share the same database, and everything still works as long as they have different mapping files. (That's the actual use case I needed this patch for; it works great for us in Drupal 5, but the patch is against Drupal 7.) The performance impact should be miniscule, and can be skipped completely on a production site by simply naming your directories to assume the live server; then the mapping file doesn't even get included in production.
Comment | File | Size | Author |
---|---|---|---|
#121 | aliased-directories6.24.patch | 4.41 KB | letapjar |
#117 | d-6.22-directory-alias.patch | 4.43 KB | steveoliver |
#114 | aliased_multi_site_comments.patch | 2.9 KB | jorap |
#111 | example_sites_php_port_example_fixed.patch | 2.54 KB | jorap |
#108 | example_sites_php_port_example.patch | 2.59 KB | jorap |
Comments
Comment #1
Crell CreditAttribution: Crell commentedOh yes. Patch added during DrupalCon code sprint. :-)
Comment #2
catch+1 from me, would be very handy. There's some weird character encoding noise in the patch file though.
Comment #3
Crell CreditAttribution: Crell commented@catch: Where? Viewing the file in KWrite I don't see any "noise".
Comment #4
catchHmm, my browser auto-detects ISO-8859-1 when I view the patch (on two different machines), manually selecting UTF-8 the noise goes away again. I'll put it back to needs review since it may not be an issue. It's the conf_path() section of the patch only, first bit is fine either way.
Comment #5
Wim LeersI can confirm the problem catch is talking about. Where spaces should be, there are … some other kind of symbols. I tried UTF-8 and ISO-8859-1 (Latin1 and Windows).
Comment #6
Crell CreditAttribution: Crell commentedOh for the love of... I know the problem. Windows sucks. Even remotely. I'll fix it and reroll the patch shortly, but in the mean time it's fully testable so I'm leaving it as CNR.
Comment #7
Crell CreditAttribution: Crell commentedIt turns out something did change in conf_path() between D5 and D6, so the previous patch would have been a regression anyway. Here's a new version that should (a) have no regressions and (b) not have any stupid character encoding. I hope. :-)
Please review.
Comment #8
ScoutBaker CreditAttribution: ScoutBaker commented@Crell: I saw the encoding before as well (catch had already mentioned it). The latest patch does not show any oddities. Thanks.
Comment #9
Crell CreditAttribution: Crell commentedThank me by testing it and setting it RTBC if appropriate. ;-) Thanks.
Comment #10
moshe weitzman CreditAttribution: moshe weitzman commentedWill this allow us to store credentials outside of web root?
Comment #11
Crell CreditAttribution: Crell commented@moshe: No, this is unrelated to putting settings.php outside the web root. That would be a much larger change, since you'd need to move settings.php but not the module and theme directories (since those must be web-accessible for CSS, JS, and image files). Not that allowing settings.php to be moved is a bad idea, but it's a separate issue from this one. (I suppose the sites.php file could be used for that as well, but let's take it one step at a time.)
Comment #12
kbahey CreditAttribution: kbahey commentedThis was on my list for several months. It is a pain to deploy a site that was at test1.example.com without symlinks.
No longer do we need to move files around and hack the database for file locations ...
Thanks for doing it sooo much. I owe you a (non-alcholic) beer ...
Works as advertised.
So, +1 from me.
Comment #13
kbahey CreditAttribution: kbahey commentedHere are the benchmarks.
Without the patch, install to sites/default as usual
With patch and a sites.php that has one entry:
Caching is off in both cases. One node on the front page.
Conclusion: the difference is negligible, and this patch has no adverse performance impact.
Get it in Dries ...
Comment #14
yan CreditAttribution: yan commentedSubscribing, I'm having a similar problem I solved (for now) using symlinks.
Comment #15
Owen Barton CreditAttribution: Owen Barton commentedGood stuff - subscribing.
Comment #16
gaele CreditAttribution: gaele commentedCrell, just to be sure: would this allow
where foo is not a domain, just a directory?
If so you would make me very happy.
Comment #17
kbahey CreditAttribution: kbahey commented@gaele
Yes, that is how I tested it.
Comment #18
Crell CreditAttribution: Crell commentedYes it would, although I think the better use of it is
That way when you move to live you can simply omit the settings.php file, everything will continue to work, but you save the small extra cost of the file load.
Comment #19
Crell CreditAttribution: Crell commentedUpdate patch for new coding standards. No other changes. Still RTBC.
Comment #20
cwgordon7 CreditAttribution: cwgordon7 commentedNo tests?
Comment #21
Crell CreditAttribution: Crell commentedTell me how I can write unit tests for a function that depends on the file system having a certain state when I can't reliably modify the file system as part of the test and I will happily write tests for it. :-)
Comment #22
catchStill applies with offset. I don't see how this can be tested either. It's annoying messing around with system paths etc. when moving sites around, so confirming the RTBC.
Comment #23
Crell CreditAttribution: Crell commentedWe have been using this patch on a few D5 sites in production for 6 months now without incident.
Comment #24
sprugman CreditAttribution: sprugman commentedis this working on d6 as well?
Comment #25
Crell CreditAttribution: Crell commentedThe latest patch will probably apply against D6, but I haven't tried. I will probably make backport patches available, but not until this patch lands in Drupal 7. Which means someone needs to commit it (hint hint).
Comment #26
lilou CreditAttribution: lilou commentedThe Crell patch #19 still applied successfully on CVS HEAD.
Comment #27
Crell CreditAttribution: Crell commentedAnd of course, all of this time and I JUST NOW find the one bug in this thing. We should be using include, not include_once, as if conf_path() is called with a $reset a second time (as happens in the installer, and nowhere else, I think) then we don't get the alias file.
No other changes from last version.
Comment #28
c960657 CreditAttribution: c960657 commentedIs it relevant to use
DRUPAL_ROOT
here?Comment #29
Crell CreditAttribution: Crell commentedI don't believe so, since it's used higher up when files get included. I wasn't tracking that issue too closely, though, so I'll defer to Dries/webchick.
Comment #30
webchickWe did take a lot of steps to *not* ever include directly without DRUPAL_ROOT. So I think this is needed ask DamZ for a review to be sure.
Comment #31
redndahead CreditAttribution: redndahead commentedPatch adds DRUPAL_ROOT
Comment #32
webchickHm. This seems a little bit hackish, and something symlinks were basically designed for. We handle this by checking in symlinks to our SVN repository and it works just fine.
Someone care to sell me on why this should be a Drupal problem and not a filesystem problem?
Comment #33
Crell CreditAttribution: Crell commentedThe primary reason is so that what gets into the database is, in fact, the "production" domain.
In our dev setup, everyone working on a given site has their own domain for their own sandbox. That would map to a different directory on disk in the current Drupal setup. That means places where Drupal stores a file path into the database (files, system table, etc.) will always be wrong for someone, because the database is shared.
A symlink may get Drupal to the right settings.php file, but it won't get it to save the right, shared values to the database.
The underlying problem is that Drupal multisite is far too tightly coupled to the domain name it happens to be running on at any given time. As soon as you try to move the site to a new domain (company rebranding, administrative decision, multi-server development process), it breaks down and cries.
Comment #34
redndahead CreditAttribution: redndahead commentedAlso Windows and symlinks don't go well together.
Comment #35
c960657 CreditAttribution: c960657 commentedIn our shop we experience the same problems as outlined by Crell in #33. We handle the problem by adding symlinks, but it easily becomes a lot of symlinks.
<background-info>
Here is a brief description of our setup. Buzy developers may skip this section :-)
We have a number of developers (John, Alice, Peter) who each develop on a number of sites (site1.org, site2.com etc.). We have several shared development servers (dev1.acme.tld, dev2.acme.tld etc.). We use rule-based hostnames like these:
Developers on the same development server can share the same symlink, e.g. site1-org.dev1.acme.tld, so we need one symlink per development server and one for the production hostname (and one for the temporary production hostname used when testing the site on the production server prior to launch).
The product of developers, sites and development servers is big and rapidly changing, so with this patch we would probably not enumerate all combinations in sites.php but rather do something like this:
This may not be the intended use of this feature, but it solves the problem :-)
</background-info>
Comment #36
moshe weitzman CreditAttribution: moshe weitzman commentedFolks - please reread Crell's answer in #33. The sticky problem is about file paths in the database, not about identifying a sites directory.
Comment #37
webchickWell done. ;)
Ok, I can commit this. I want to make one change though. 'example.com' => 'otherexample.com' isn't a very clear example. I'd rather use something "real world" which *seems* like it would be:
example.com => localhost
or
example.com => dev.example.com
is that true? It'd be easier to tell if the docs were a bit more clear in that section, so let's update that as well. I'd like to see those capture some of the discussion on this thread: why this is useful, what the left vs. right side of the array should contain (a code comment like 'The normally publicly accessible domain => A directory within the sites directory), etc.
Comment #38
Crell CreditAttribution: Crell commented*sigh* Well at least someone is finally paying attention to this patch. I just wish I'd gotten this sort of feedback in March.
I'll see about Doc revisions sometime today.
Comment #39
webchickAlso, can we get a CHANGELOG.txt entry too?
Comment #40
redndahead CreditAttribution: redndahead commentedDoes this make more sense?
Comment #41
sprugman CreditAttribution: sprugman commentedI'm not sure the first is the best possible example, because IIRC, the existing system will allow that mapping automatically. Maybe it should be:
or
Comment #42
redndahead CreditAttribution: redndahead commentedI thought webchick might not like me for not listening to one of her excellent suggestions so I quickly added some more comments and patched is attached.
@sprugman:I don't believe it happens now. Maybe the attached patch will give a better description.
Comment #43
redndahead CreditAttribution: redndahead commentedsprugman convinced me on IRC that dev.example.com to example.com already works. So changing the docs to devexample.com
Comment #44
Damien Tournoud CreditAttribution: Damien Tournoud commentedThis probably doesn't work.
In
conf_path()
:But in
conf_init()
:Conclusion:
conf_path()
should return a path relative to DRUPAL_ROOT. The DRUPAL_ROOT must only be prepend infile_exists()
andinclude()
inconf_path()
.Comment #45
redndahead CreditAttribution: redndahead commentedCleaned up DRUPAL_ROOT in conf_path().
Comment #46
keith.smith CreditAttribution: keith.smith commentedExtra "i" on the end of "in".
Comment #47
redndahead CreditAttribution: redndahead commentedFixed the i
Comment #48
redndahead CreditAttribution: redndahead commentedWent to test this patch and multisite stopped working after applying. Still looking into the cause.
Steps to reproduce.
1) new checkout
2) copy sites/default/*.* to sites/site1/
3) Go to http://site1
4) Reach requirements page and it is looking for the settings.php in the sites/site1 directory. Good
5) Apply patch and do the same. It is looking for the settings.php in the default directory. Bad
Comment #49
redndahead CreditAttribution: redndahead commentedFound the issue now patching
Comment #50
redndahead CreditAttribution: redndahead commentedOk the issue was that I used for example, file_exists("DRUPAL_ROOT/blahblah") it needed to be file_exists(DRUPAL_ROOT . '/blahblah')
I changed it throughout and tested on my local machine. Works great! Thanks Crell.
Comment #51
Dave ReidYeah, you can't put constants in strings and have the substituted like variables:
Outputs: DRUPAL_ROOT/ferzle
Comment #52
redndahead CreditAttribution: redndahead commentedOops forgot to move to CNR
Comment #53
redndahead CreditAttribution: redndahead commentedD6 Patch, excludes DRUPAL_ROOT fixes. Does it exist in D6?
Comment #54
Crell CreditAttribution: Crell commentedI'm already using #27 in a Drupal 6 site, and a similar version on two Drupal 5 sites.
Comment #55
webchickCouple quick final nitpicks:
a) Line doesn't wrap at 80 chars
b) If it's publicly accessible, mymachine/example doesn't make sense.
a) The spacing is off between the ' and the =
b) Let's use dev.example.com
c) Let's use localhost/example
d) 2nd array line needs a comma.
Note that b) and c) need updating below as well.
Comment #56
redndahead CreditAttribution: redndahead commentedFixed
Comment #57
webchickCommitted. :) Thanks.
This needs to be documented... somewhere... hm. I guess whatever handbook page is talking about settings.php. Doesn't need to be extensive. Just the fact that this file exists and you can use it for what you can use it for. Read the file for more information. It might be a good to coordinate with the docs team on this.
Comment #58
redndahead CreditAttribution: redndahead commentedThe documentation should probably end up on the d7 version of http://drupal.org/getting-started/6/install/multi-site
Comment #59
redndahead CreditAttribution: redndahead commentedBlah didn't switch the project
Comment #60
c960657 CreditAttribution: c960657 commentedBackport for D6. Should this go into an issue of its own?
I am not sure whether new features like this are still being added to D6 or even D5. The patch is low-risk and doesn't break BC (unless people happen to have a file named
sites.php
inside theirsites
directory).Comment #61
add1sun CreditAttribution: add1sun commentedFeatures are not back-ported to stable versions.
Comment #62
Crell CreditAttribution: Crell commentedWe do however sometimes maintain backports in the issue queue for important features, and this definitely qualifies. I had planned to maintain a D6 port myself anyway as we use it frequently. What's the proper way to do that again?
Comment #63
webchickHow about get this documented first, and THEN worry about whether we do or do not backport to 6.x. :P
Comment #64
redndahead CreditAttribution: redndahead commentedProblem with documenting this is that to my knowledge we don't have a 7.x section in the handbook and until we do the documentation will have to wait. Any plans of adding a d7 section to the handbook anytime soon or possibility of copying the d6 over to d7 and make changes as things go?
Comment #65
HansBKK CreditAttribution: HansBKK commentedsuggestion - sub-page of the relevant D6 page, clearly flagged as D7-specific for now
I'm finding all kinds of nodes relevant to D5 that got moved to the D6 sections, which therefore are gone as far as D5 people are concerned, makes for an even more "interesting" doc situation for newbies trying to find stuff. IMO copying's not the way to go, as pages that apply to both versions then get edits in only one version.
OT (not really, but sticking my neck out farther than I'd like :)
I'd suggest finding a good systemic solution to this problem before repeating the same method for D6->D7. Hate to say it but IMO we're really pushing the limits of Book and it's pushing back. . .
Separate platform? Or if we really have to keep this very complex doc set in our own dog food - well-managed vocabularies + Views and/or better search?
Comment #66
add1sun CreditAttribution: add1sun commented@ HansBKK, yep, versioning of docs is one of our biggest, hardest problems to solve. Feel free to join the redesign group documentation discussion.
Comment #67
HansBKK CreditAttribution: HansBKK commented@add1sun
OK, but the way I'm feeling at the moment I'll probably regret it in the morning
http://groups.drupal.org/node/15965#comment-55186
Actually I'm regretting it already ;{
Comment #68
Jaza CreditAttribution: Jaza commentedThe most important place to document this is in Drupal's '/sites' directory. Especially until we figure out where to document it on drupal.org.
People who know about this feature are likely going to look for instructions and an example in the very place where they need to implement it. This is also a likely place for people (who are unaware of it) to fortuitously stumble upon it.
Patch attached to add a 'sites/default.sites.php' file to core, analogous to 'sites/default/default.settings.php' (except that this one is never copied and renamed automatically). The code comments are borrowed and modified from conf_path() in includes/bootstrap.inc (i.e. from the original patch in this thread) and from settings.php.
Comment #69
add1sun CreditAttribution: add1sun commentedA core patch needs to go in the core queue. No one important will see it in the docs queue. ;-)
Comment #70
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commentedComment #71
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commentedI have applied the Documentation patch, and following the instructions contained within, have setup the sites.php file.
Having it as an example file is helpful for shopwing the capabilities, but I also think that some d.o documentation will be good, when there are 7.x pages.
Comment #73
c960657 CreditAttribution: c960657 commentedI cannot reproduce the testbot failure. Requesting review again.
Comment #74
c960657 CreditAttribution: c960657 commentedLooks like this was a testbot glitch.
Comment #75
cooperaj CreditAttribution: cooperaj commentedAttached is a Drupal 5 backport of c960657's Drupal 6 backport. For all the people, like me, who need it.
Untested but should be fine.
Comment #76
alexanderpas CreditAttribution: alexanderpas commentedComment #78
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commentedSet -D5 extension on last patch to avoid bot.
RTBC is on the documentation D7 patch, for clarity
Comment #79
adrian CreditAttribution: adrian commentedI know it's probably a weird place to bring this up, but i was going through some _VERY_ old issues of mine, and i found this :
http://drupal.org/node/25720
Basically, it allows the sites to add additional paths to search for modules / themes. One of the issues you will run into with windows is that without symlinks you will be duplicating a lot of code on multi-site installs.
Say if you had 10 sites on one drupal install, half of them need access to one shared module, the other some other module, and each of these has their own set of custom modules.
Without symlinks, or a way to specify this in code, you would need to either copy the exact set of modules each site needs into it's sites directory, or put the shared modules into the sites/all, and just live with the fact that half of the sites will have access to modules they shouldn't.
Comment #80
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commented@adrian - that is the reason for using the sites/all/[modules/themes] directories. Admittedly it does clutter up other sites modules.
Have you looked into Junctions - they are the NTFS equivilent of sym- and hard-links.
Comment #81
webchickCool. Committed Jaza's documentation patch at #68. Thanks a lot!
Marking this fixed, for lack of a better status.
Comment #82
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commentedCan we get a comment on porting to D6? #60 has a D6 backport, and webchick did say we could discuss backporting it once the documentation was done...
Comment #83
c960657 CreditAttribution: c960657 commentedHere is a backport for D6.
Comment #84
catchSetting title back for D6.
Comment #85
wretched sinner - saved by grace CreditAttribution: wretched sinner - saved by grace commentedSuccessfully applied and configured D6 sites with the patch in #83.
Comment #86
Gábor HojtsyNew features are not added to stable versions. This is a won't fix in relation to Drupal 6.
Comment #87
redndahead CreditAttribution: redndahead commented@Gabor,
This isn't really a new feature. This fixes a fundamental flaw from testing to production. The fact that at the moment you have to go through each entry in the files table and replace the path of the files when you move from testing to production. You also have to change places in the variables table where this occurs. In the variables table it's not as easy because the data is serialized and depends on how the module stores the data.
Hopefully you can reconsider this for D6. It doesn't change anything fundamentally in core, but it fixes some serious issues in a multisite configuration.
Comment #88
moshe weitzman CreditAttribution: moshe weitzman commentedFWIW, I agree that this is an inappropriate change for a stable branch.
Comment #89
Pedro Lozano CreditAttribution: Pedro Lozano commentedWill try this. Althought it will never be commited it would be nice to have a working patch for people who need this in 6.
Comment #90
redndahead CreditAttribution: redndahead commented@Pedro Lozano
#83 is the D6 patch
Comment #91
alexanderpas CreditAttribution: alexanderpas commentedall for the grace of statistics ;)
Comment #93
jjesus CreditAttribution: jjesus commented+1. Thanks, I needed it.
Comment #94
tstoecklerRerolled patch for conflict in CHANGELOG.txt and rename from default.sites.php to example.sites.php
Still works beautifully in Drupal-6.15.
Comment #95
Helpermedia CreditAttribution: Helpermedia commentedThanks for the D6 patch. Very handy and works like a charm.
Comment #96
tstoecklerPatch still applied for 6.16 but CHANGELOG.txt obviously conflicts, so here's a reroll.
Comment #97
c960657 CreditAttribution: c960657 commentedThe latest patch file is empty.
You may want to incorporate the fix for #748984: Fixed wrong multi-site directory aliasing example in your backport.
Comment #98
tstoecklerStrange, how did that happen?
Thanks for the pointer. Incorporated that small change.
Let's see if this one works.
Comment #99
momper CreditAttribution: momper commentedsubscribe
Comment #100
guigui_nyc CreditAttribution: guigui_nyc commentedHow about we just use the drupal/sites/default folder and create 1 subfolder per website.
this path doesn't rely on the domain name so it will work on all environments without patching anything...
Comment #101
David D CreditAttribution: David D commentedI'm not a programmer, so I'm not confident I've understood this thread entirely. I'm running a 6.17 multisite setup. My understanding from the above is that bootstrap.inc in 6.17 needn't be patched or edited for this to work; I just need to add the sites.php file to sites/devmysite.com for this to work, right?
I've done that, but it doesn't seem to help the big problem I'm having. Everything works fine on my live sites, but on my localhost version, the auto-generated image paths are changing is this way:
Live site:
Dev site:
I am at a loss why this is happening, and it's driving me nuts. This thread is the closest I've yet found here to the problem I'm having. I don't even know how I should describe this, or how I might search for the solution.
My dev setup is XAMMP on Windows 7 64bit.
Comment #102
Crell CreditAttribution: Crell commentedNo, you do need one of the patches above for Drupal 6, as this feature was only added in Drupal 7. Drupal 6 requires a patch to bootstrap.inc.
You're asking a Drupal 6 support question. Please file a new issue for that. From the looks of it, this patch isn't what you need anyway.
Comment #103
Sunshiney CreditAttribution: Sunshiney commentedLook at this support document that I wrote. It should solve your problem. http://drupal.org/node/642712
Comment #104
seanburlington CreditAttribution: seanburlington commentedThanks for the patch at #83 which seems to me like the best one for D6
It gave me a conflict on the CHANGELOG file - but as this change won't be officially supported it probably shouldn't be in the log anyway.
@Crell re #62 "We do however sometimes maintain backports in the issue queue ... What's the proper way to do that again?"
- did you figure this out? There have been a few issues like this I've come across and if there's a proper way to maintain the patch I'd like to know what it is :-)
Comment #105
kjunek CreditAttribution: kjunek commentedRather helpful - subscribing
Comment #106
letapjar CreditAttribution: letapjar commentedRe-rolled this patch for drupal 6.19
note - no changes were made to changelog.txt as this was done from a git repo instead of cvs.
I had to re-roll tis patch manually for myself since comments were added to bootstrap.inc between 6.16 and 6.19 making the earlier patches in #83 and #98 fail.
Works like a charm for me and hopefully will help others with multisite workflow under D6
Comment #107
letapjar CreditAttribution: letapjar commented6.20 made minor changes to bootstrap.inc ; however, it did not change the line numbering, therefore this patch still applied to 6.20 (I just successfully applied it to s multi-site install where several directories are aliased.
I am re-attaching the patch - the file name has been changed to reflect that it works for 6.20 but the contents of the patch file are exactly the same as in #106 above.
Comment #108
jorap CreditAttribution: jorap commentedI was testing the Aliased multisite support if it also applicable for custom ports. After reviewing the code in includes/bootstrap.inc, I got to finally figure it out.
I suggest that we add an extra example on how to use custom ports.
Attached is a patch adding an extra aliased multisite example using ports and modified text in the code comments in includes/bootstrap.inc and sites/example.sites.php.
Comment #109
tstoecklerBelow as well: Trailing whitespace.
Powered by Dreditor.
Comment #110
redndahead CreditAttribution: redndahead commented@jorap can you open a new issue for 8.x that suggests making the documentation change. You can link to the issue in this issue.
Thanks
Comment #111
jorap CreditAttribution: jorap commented#108 was my first ever patch submission in an open source project.
Here is the patch in UNIX format.
Comment #112
jorap CreditAttribution: jorap commented@redndahead, created the said issue at http://drupal.org/node/1018324
Comment #114
jorap CreditAttribution: jorap commentedFrom #111 - Another patch created from CVS.
Comment #115
tstoeckler#109 still stands. Also I don't see any reason to have 2 issues for this. Drupal 8 hasn't even been branched yet, and once it has, IMO we can move this issue there and then backport.
Comment #116
redndahead CreditAttribution: redndahead commented@jorap please post it to that other issue.
Comment #117
steveoliver CreditAttribution: steveoliver commentedFor Drupal 6.22
Comment #118
fastballweb CreditAttribution: fastballweb commentedHas anyone been using the D6 patch on a site with per-node-type template files (node-article.tpl.php)? Those templates aren't found when I use this feature, but if I disable sites.php and go back to the expected folder name, they work normally.
Comment #119
redndahead CreditAttribution: redndahead commentedIt seems to be working fine for me. Not sure what else it could be. Did you clear all the caches?
Comment #120
healycn CreditAttribution: healycn commentedGreat job.
subscribing...
Comment #121
letapjar CreditAttribution: letapjar commentedre-rolled for 6.24
Comment #122
pelicani CreditAttribution: pelicani commentedDoes this patch also work for Drupal 6.25?
Comment #123
Crell CreditAttribution: Crell commentedpelicani: It should work for any recent 6.x. But please do not open long-closed issues.
Comment #124
jenlamptonalso, this was fixed in D7 not 6.24