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