Plugins 即使我安装了插件,但在pimcore中并没有调用安装方法

Plugins 即使我安装了插件,但在pimcore中并没有调用安装方法,plugins,installation,pimcore,Plugins,Installation,Pimcore,注意这里的安装和卸载方法。我正在编写创建表的代码。但是我想把这个安装方法称为自动安装的插件,它应该按照pimcore文档的建议来运行 您应该实现isInstalled方法,并在该方法中检查表是否已创建,如果未创建,则返回false。 然后用户必须单击install按钮来实际触发安装。 由于您在isInstalled方法中返回true,因此系统不会触发安装。是的,按照您的建议执行&谢谢。但当它被安装时,它会弹出真实的窗口。我们不能在不更改主AdminController安装操作的情况下更改该消息

注意这里的安装和卸载方法。我正在编写创建表的代码。但是我想把这个安装方法称为自动安装的插件,它应该按照pimcore文档的建议来运行


您应该实现isInstalled方法,并在该方法中检查表是否已创建,如果未创建,则返回false。 然后用户必须单击install按钮来实际触发安装。
由于您在isInstalled方法中返回true,因此系统不会触发安装。

是的,按照您的建议执行&谢谢。但当它被安装时,它会弹出真实的窗口。我们不能在不更改主AdminController安装操作的情况下更改该消息或阻止弹出。我认为您可以从isInstalled方法返回任何文本,它将使用该文本。因此,如果未安装,则为falsy值;如果安装,则为truthy值(因此,任何非空字符串)。
namespace Newsletter;

use Pimcore\API\Plugin as PluginLib;
use Pimcore\Db;

class Plugin extends PluginLib\AbstractPlugin implements PluginLib\PluginInterface
{
    public function init()
    {
        parent::init();
        // register your events here

        // using anonymous function
        \Pimcore::getEventManager()->attach("document.postAdd", function ($event) {
            // do something
            $document = $event->getTarget();
        });

        // using methods
        \Pimcore::getEventManager()->attach("document.postUpdate", [$this, "handleDocument"]);

    }

    public function handleDocument($event)
    {
        // do something
        $document = $event->getTarget();
    }

    public static function install()
    {
        $this->dbConnection = Db::getConnection();
        $this->dbConnection->query("CREATE TABLE IF NOT EXISTS newsLetter(id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, cname VARCHAR(100) NOT NULL)");
        return true;
    }

    public static function uninstall()
    {
        // implement your own logic here
        $this->dbConnection->query("DROP TABLE newsLetter");
        Db::close(); // closes connection
        return true;
    }

    public static function isInstalled()
    {
        // implement your own logic here
        return true;
    }
}