前回の記事(Concrete5のページタイプをパッケージで追加する)で、独自のページタイプをパッケージコードで追加する方法を解説しました。
今回はすでに追加されたページタイプの名前をアップデートしてみます。
コードの位置と内容
今回はパッケージのアップデート時に処理を行うので、controller.php の upgrade() 内に記入します。
まずいきなりですが完成コードです。
public function upgrade() {
parent::upgrade();
Loader::model('collection_types');
$ct = CollectionType::getByHandle('test');
if ( $ct ) {
Log::addEntry('ctID = ' . $ct->ctID);
$ct->update(array('ctName' => t('testtesttest')));
}
}
コードの解説
まず前回同様
Loader::model('collection_types');
でモデルを呼び出します。
次に
$theme = CollectionType::getByHandle('test');
というコードで、前回作成したページタイプ「test」のオブジェクトを取得します。返るオブジェクトはCollectionType型となります。ちなみに失敗した場合は NULL が返ります。if( $ct )でNULLではないかを判定しています。
正常にオブジェクトが返っていれば $ct->update() で更新したい内容を渡します。上記では名称を ‘testtesttest’ に変えています。
完成
ということでパッケージのバージョンを上げ、アップデートしてみます。
前回 Test Page Type だった名前が testtesttest なりました。