Сужу по простым примерам и на своем опыте — могу ошибаться.
есть функции public function install() и public function upgrade(){
больше не могу найти ничего, даже в plugin.class.php нет ничего
Какое решение нашли?всё, спасибо, разобрался. удалять тоже можно.
Вот так:
создал файл
uninstall.php
include('core/cms.php'); $inCore = cmsCore::getInstance(); if (!$inCore->getPluginId('имя плагина')){ //так плагин удалён теперь можно удалить остатки //выполняем запросы к базе данных echo 'Остатки плагина ИМЯ очищены'; }
пока сделал так
<?php class p_sdf_uninstall extends cmsPlugin { public function __construct(){ parent::__construct(); $this->info['plugin'] = 'p_sdf_uninstall'; $this->info['title'] = 'SDF Plugin unistall'; $this->info['description'] = 'Удаление плагина SDF.Нажмите для удаления плагина SDF'; $this->info['author'] = 'me'; $this->info['version'] = '1.0'; } public function install(){ // //удаляем что создали // // // return parent::install(); не нужно чтобы не светится в установленных } } ?>
Как-то не совсем по фен-шую получается. Вариант Димитриуса тоже не то. Нужно каждый раз лезть по фтп. Лучше будет так:сделал другой плагин, который удаляет при установке все что создал первый.:)
1. Открываем файл /core/classes/plugin.class.php и создаем метод
public function remove($plugin_id) { return $this->inCore->removePlugin($plugin_id); }
$inCore->removePlugin($plugin_id);
$plugin = $inCore->loadPlugin($plugin_id); if (!$plugin){ cmsCore::redirectBack(); } $plugin->remove($plugin_id);
public function remove($plugin_id){ //далее выполняем какие-то действия, которые необходимо выполнить перед удалением //непосредственно само удаление плагина return parent::remove($plugin_id); }
Марат, согласен. Мне знаком такой вариант решения, но такая задача не ставилась.Как-то не совсем по фен-шую получается. Вариант Димитриуса тоже не то. Нужно каждый раз лезть по фтп. Лучше будет так:
В принципе например инсталлятор форума SMF умеет сам создавать папки и записывать туда файл, а после того как закончилась инсталляция — удаляет самостоятельно инсталлятор на последнем шаге инсталляции.
Но это похоже как до Луны на ходулях добираться😊то еще извращение
Вообще счас в голову пришла дурная мысль, что при инсталляции плагина, заставлять его создавать плагин для удаления, а при запуска плагина удаления — после выполнения кода удалять самому себя.
Кстати, это мысль из разряда The best! Удобно и практично…