[Phpmyadmin-devel] about PMA_THEME_VERSION

Marc Delisle Marc.Delisle at cegepsherbrooke.qc.ca
Wed Aug 2 17:36:00 CEST 2006

Sebastian Mendel a écrit :
> Marc Delisle schrieb:
>> 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 
>>>>>>>> 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
> yes, but if we don't restrict themes and just display a warning it is
> not necessary to now 'how' old a theme is, if version is not the same we
> just display the warning
>> 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".
> was only a fast example,
> if (version_compare('2.6','2.6') !== 0) echo "not";
> i used phpMyAdmin version numbers to easily track changes in
> phpmyadmin.css.php and apply only changes made after the theme was
> released tracked by the theme version - it was just the easiest way
> if i update a theme i give it the verion to which i updated it
> in phpmyadmin.css.php i can easily apply only things that changed after
> the last update of the theme and using phpMyAdmin version numbers makes
> it more transparent

Michal said that when he implemented a theme generation and version 
number, he expected that themes changes would not happen with each 
version, this is why the theme generation and version did not follow 
PMA's version. Maybe now, theme changes are so frequent that this no 
longer applies?

If I understand you correctly, you suggest that the theme version for 
PMA 2.9.x should be 2.9 ?

If yes, we will have to release custom themes with the new versionning:


More information about the Developers mailing list