[Phpmyadmin-devel] about PMA_THEME_VERSION

Marc Delisle Marc.Delisle at cegepsherbrooke.qc.ca
Wed Aug 2 16:11:53 CEST 2006


Sebastian Mendel a écrit :
> Marc Delisle schrieb:
>> Sebastian Mendel a écrit :
>>> Marc Delisle schrieb:
>>>> Michal Čihař a écrit :
>>>>> Hi all
>>>>>
>>>>> I think this should go to -devel so I post it here :-).
>>>>>
>>>>> On Wed, 02 Aug 2006 08:23:31 -0400
>>>>> Marc Delisle <Marc.Delisle at cegepsherbrooke.qc.ca> wrote:
>>>>>
>>>>>> I discussed with Sebastian and I would like your opinion, since 
>>>>>> Sebastian and I disagree.
>>>>>>
>>>>>> In the doc we say
>>>>>> "Themes within same generation should be backwards compatible
>>>>>> - theme with version 2 should work in phpMyAdmin requiring version 1.
>>>>>>
>>>>>> Themes with different generation are incompatible."
>>>>>>
>>>>>> In Config.class.php, Sebastian marked deprecated PMA_THEME_VERSION and 
>>>>>> PMA_THEME_GENERATION.
>>>>>>
>>>>>> In Theme.class.php, there is a checkVersion() function that
>>>>>> 1. uses version_compare(), which would not give the level of 
>>>>>> verification we need, and
>>>>>> 2. is never used :)
>>>>>>
>>>>>> Sebastian says that a user should see all the installed themes and be 
>>>>>> able to choose them, even if they are not compatible; he says that a 
>>>>>> user should be able to notice by himself that a theme is outdated.
>>>>> I think showing all themes is sensible way to go. Otherwise if user
>>>>> installs old theme, it is hard to find out what's going on. And I saw
>>>>> such problem several times.
>>>>>
>>>>> However user might not be able to notice this himself, so I'd put
>>>>> warning on bottom of main.php if theme is outdated (saying that some
>>>>> parts might be displayed wrongly due to too old theme).
>>>> Yes, or add something like "outdated" in the dropdown next to an 
>>>> outdated theme?
>>>>
>>>>> The only problem is how to check whether theme is compatiblem.
>>>>> I thought generation/version will be best solution when I wrote that
>>>>> code, because I expected theme changes don't have to be with each
>>>>> version...
>>>> It's possible to split the new $theme_full_version in 2 parts and do a 
>>>> check similar to what was in 2.7.0.
>>> i would prefer using version_compare() and a single version number (2.3)
>>> and not splitted up in two variables
>>>
>>> but of course we could make the theme version independent of phpMyAdmin
>>> version
>> I'm not saying that we have to use 2 variables in info.inc.php, just 
>> internally.
>>
>> With version_compare(), how do you implement this:
>>
>> if ($theme_generation != PMA_THEME_GENERATION)
>>      continue; // different generation
>>
>> if ($theme_version < PMA_THEME_VERSION)
>>     continue; // too old version
> 
> this is not required
> 
> if (! version_compare($pma_theme_version, $theme_version)) {
>     $display_outdated_theme_warning = true;
> }
> 
> 
I think we have a misunderstanding about the meaning of the generation 
and version numbers.

Take the aqua theme. We have the aqua-2.1.zip file in which the 
generation is 2 and the version is 1. So generation is the major number 
and version is the minor one.

The goal (at least in PMA 2.7.0) is that the generation (major number) 
must be identical for the theme to work at all.

Theme 2.1 and PMA requires 3.5 -> theme rejected
Theme 4.0 and PMA requires 3.5 -> theme rejected

For the minor number (version), it was rejected only if lower.

Theme 2.8 and PMA requires 2.8 -> theme accepted
Theme 2.8 and PMA requires 2.6 -> theme accepted
Theme 2.4 and PMA requires 2.6 -> theme rejected

The goal of accepting a minor theme version greater than what PMA 
expects was to use a recent custom theme (say 2.6) with an older PMA 
version (but the major number must always be identical). Probably the 
newer theme has more CSS into it and the older PMA version does not use 
it so everything is ok.

So we no longer permit that?
When exactly should we increase the minor version number now?

Also, please try
  if (!version_compare('2.6','2.6')) echo "not";

I get "not".

Marc




More information about the Developers mailing list