あぁ、そうですね!
Upgradeメソッドを継承して、InstallBlockをしてから本来のUpgradeメソッドに処理を返せばいいですね!
色々考えた結果、共通Packegeと各機能ごとのPackegeに分けて、
あらかじめ使うであろうBlockを先に枠だけ作っておくようにしました。
ありがとうございました!
Re: PackageのバージョンアップでBlockが増えない?
2012年11月4日 at 17:40
作成班と検証班でわかれて作業をしていて、Packegeの更新のたびに
アンインストール・新規インストールを繰りかえしていて、
そのたびに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();
}
}
}
Your post has been saved and will be published after approval by the forum moderator.
takuro hishikawa
Re: PackageのバージョンアップでBlockが増えない?
やったことはないですが作成したパッケージのcontrollerでupgradeメソッドを継承してブロックをインストールすればいいと思います。