Форумы / National / Russian / Тех. поддержка / Управление плагинами

Вероятно баг? Не понятная фича

Alex300
#1 04.03.2010 22:34
Сейчас пишу новый плагин:)

Заметил интересную вещь:
В панели управления плагинами у некоторых установленных плагинов есть опция: "Удалить плагин с сохранением существующих настроек и прав доступа".
У некоторых плагинов ее нет.
Начал искать откуда оно бетерся, понял, что ее наличие зависит от переменных $isinstalled и $totalconfig из файла admin.plug.inc.php, а выводится она в файле скина admin.plug.inc.tpl такой конструкцией:

<!-- IF {PHP.isinstalled} AND {PHP.totalconfig} -->
<br />
<small><a href="{ADMIN_PLUG_UNINSTALL_KO_URL}"{ADMIN_PLUG_UNINSTALL_KO_URL_AJAX}>{PHP.L.adm_opt_uninstall_warn}</a></small>
<!-- ENDIF -->

Но вот странная вещь, при значениях:
$isinstalled == 2;
$totalconfig == 3;
опция: "Удалить плагин с сохранением существующих настроек и прав доступа" не выводится.

а при
$isinstalled == 3;
$totalconfig == 3;
- выводится.

Можно и дальше эксперементировать с $isinstalled и $totalconfig получая тот или иной результат...
С нулевыми значениями все ясно, а вот разный эффект, когда оба значения > 0 - как-то странно.
Это глюк? (Версия Cotonti 0.6.7)

И еще, хотелось бы по точнее узнать, что конкретно происходит при использовании этой опции, зачем она нужна.

Спасибо заранее :)
Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english...
Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/
root
#2 04.03.2010 23:58
И еще, хотелось бы по точнее узнать, что конкретно происходит при использовании этой опции, зачем она нужна.

Ну название говорит само за себя, когда вырубаешь плагин, все настройки которые ты в нем делал, и права которые на него ставил, сохранятся, и при новой установке сразу выставятся как и были раньше.

Вещь реально полезная, хотелось бы, что бы все плагинмейкеры её использовали :)
Горе админ :о)
Landgraft
#3 20.09.2010 01:25
И в продолжение темы.
Если вы при удалении плагина воспользовались ссылкой "удалить с сохранением настроек", и при последующей установке нажали "установить с использованием сохраненных настроек" - то количество настроек удваивается (если несколько раз удалять устанавливать - то и утраивается и т.д.): кроме сохраненных появляются еще и настройки по-умолчанию.

Решение (для 0.6.10).
В файле system/core/admin/admin.plug.inc.php находим 349 строку и в запросе
$sqltmp = sed_sql_query("SELECT COUNT(*) FROM $db_config WHERE config_owner='plug' AND config_cat='$pl' AND config_name='".$line[0]."' ");
исправляем $line[0] на $i, чтобы получилось
$sqltmp = sed_sql_query("SELECT COUNT(*) FROM $db_config WHERE config_owner='plug' AND config_cat='$pl' AND config_name='".$i."' ");

И заодно исправляем невнимательность в строке 420 (отвечает за права доступа):
elseif(!$ko)
редактируем до состояния
elseif($ko)
(убираем "!")