Concrete5のページタイプのアップデート

Concrete5タイトル

前回の記事(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’ に変えています。

完成

ということでパッケージのバージョンを上げ、アップデートしてみます。

image

前回 Test Page Type だった名前が testtesttest  なりました。