updateじゃなくてupgradeメソッドでした。。
やったことはないですが作成したパッケージのcontrollerでupgradeメソッドを継承してブロックをインストールすればいいと思います。
Re: PackageのバージョンアップでBlockが増えない?
2012年11月4日 at 16:56
アップデート時にブロックが増えるケースが思いつかないので事例をお伝えできないのですが、インストール時にブロックを追加するものはたくさんあると思います。
public function install() {
$pkg = parent::install();
// install block
BlockType::installBlockTypeFromPackage('block_name', $pkg);
}
これと同じことをupdateメソッドでやれば行けると思います!
Your post has been saved and will be published after approval by the forum moderator.
だんなちゃん
Re: PackageのバージョンアップでBlockが増えない?
アンインストール・新規インストールを繰りかえしていて、
そのたびにBlockが消えてしまうので、検証班が音を上げてしまいました(^^;
今、Packege.php を読んでいたのですが、interfaceにはinstallとuninstallしかないようですね。
interface Installable {
public function install();
public function uninstall();
}
管理画面でアップデートが実行された時に、BlockListを読み直して
refreshしているようですが、BlockListに追加するタイミングがないような気がします(^^;
public function upgrade() {
Package::installDB($this->getPackagePath() . '/' . FILENAME_PACKAGE_DB);
// now we refresh all blocks
$items = $this->getPackageItems();
if (is_array($items['block_types'])) {
foreach($items['block_types'] as $item) {
$item->refresh();
}
}
}