Данный код
wa($app_id)->getPlugin($plugin_id)->getVersion();
Должен возвращать только текущую версию плагина $plugin_id. Однако, вдобавок к текущей версии он также возвращает лишний набор цифр. Пример:
//должен возвращать 2.0.0
//по факту возвращает: 2.0.0.1616760239
Из-за этого в некоторых плагинах информация некорректно отображается для пользователей. Примеры в разных плагинах:
- https://yadi.sk/i/1hR3agjhtgc4...
- https://yadi.sk/i/V-BLWFZtsw2w...
Просьба поправить.
8 комментариев
https://developers.webasyst.ru...
файл plugin.php :
- я не вижу в файле plugin.php никакого ключа 'build' и для меня результат работы функции неочевиден. Конечно, при желании, я смогу самостоятельно привести результат в нужный мне вид, но мне кажется что по-хорошему этот момент нужно поправить на уровне движка. Изменения - на усмотрение разработчиков WA.
Ошибки нет.
getVersion отдаёт plugin.php[version] + build.php
Если у вас включен режим отладки, то еще к этому добавляется текущая метка времени.
Пользователям не нужен режим отладки в 99% времени.
Не понял зачем добавлять текущую метку времени в режиме отладки. В любом случае, было бы неплохо отразить эту информацию в документации: что в режиме отладки добавляется метка времени.
Мне вот потребовалось получить точную версию плагина без всяких меток. Решил проблему костылем:
ну например это надо чтобы css подсоединённый таким образом `/site/css/style.css{$wa->shop->version}` в режиме отладки не кешировался, а в продакшене очень даже кешировался.
А зачем нужен номер версии без билда?
аргумент
- https://yadi.sk/i/3S1PuU4qfVecgQ
- https://yadi.sk/i/8RUyaS831-XAGQ
тогда не нужен цикл со всеми этими str_replace. См. PHP: version_compare - Manual
Или от оригинальной версии можно оставить только первые три разряда с помощью explode. По стандарту ВА нумерация версий должна быть x.y.z см. п.3 Требования к размещению в магазине Webasyst — Документация Webasyst
Спасибо за советы. С первой функцией никогда ранее не сталкивался, ознакомлюсь, но навскидку она мне не подходит, т.к. помимо сравнения $a и $b, в определенном месте версию плагина без метки времени всё равно нужно вывести. А разрядность версий плагина я хочу предусмотреть любую, хотя стандарту следую.
Я не претендую на то что написал эталонный код решения проблемы. Сделал то что первое в голову пришло. Здесь я его оставил просто как наглядный пример того, что из-за такой мелочи приходится извращаться: "сначала получи лишний набор символов который тебе не нужен, потом найди способ от него избавиться".
Было бы здорово, если бы в функцию getVersion() можно было передавать доп. параметр "Запрашивать метку времени в режиме отладки?":