Case sensitive/insensitive of the dirname

Date 2008-12-28 18:02:01 | Category: XOOPS

in englishin japanese
You know D3 modules can be installed any dirnames as you like.

The exact "dirname rule" by perl regex:

[0-9a-zA-Z_-]{,25}


Under the environtment "case sensitive" (Unix etc.), (dirname) is distinguished (Dirname) definitely.

eg) XUGJ uses d3forum as "QandA".
http://www.xugj.org/modules/QandA/ OK
http://www.xugj.org/modules/qanda/ NG

And I believed both (dirname) and (Dirname) can be installed independently with such environtments.
To our regret, this is just a misunderstood.

Consider XOOPS with "pico".
I dare to install another pico as "PICO".

This SQL is queried to identify "dirname".

SELECT (snip) WHERE dirname='PICO'

'PICO' will be hit existent 'pico'.
And the installer raise an error.
Of course, this is not only a problem of installer but common.php also.

If you want both "pico" and "PICO", try this query once.

ALTER TABLE (prefix)_modules MODIFY `dirname` varchar(25) binary NOT NULL default '';

The column of `dirname` is added an attribute 'binary'.
I've confirmed "pico" can work fine with "PICO".

But only the feature of "Literal overridding" cannot work independently between "pico" and "PICO".

This code is the cause of the confusion.

$constpref = '_MI_' . strtoupper( $mydirname ) ;


We -D3 module developpers- have to fix this code in (lang)/modinfo.php, (lang)/block_each.php and xoops_version.php etc.




You can read more news at PEAK XOOPS.
http://xoops.peak.ne.jp

The URL for this story is:
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=470