0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

baserCMSAdvent Calendar 2024

Day 24

baserCMS 5系 小ネタ集(4系からの違いでハマった人のために・・)

Last updated at Posted at 2024-12-24

baserCMS
ver5系が登場して1年以上経過しておりますが、
今までbaserCMS ver4系を使用していた方で、5系になって仕様が変わってハマってしまうポイントも結構あるので、
私自身がこの一年で経験した、知っていれば簡単なのに、知らなかったがためにハマったポイントをいくつかこ゚条介します。
(ごくごく初歩的なハマりどころなので備忘録として残しておきます。)

現在のページのURL取得方法

初歩の初歩ですが、忘れていると意外とハマるので備忘録として
■ baserCMS 4系テーマ内

$this->request->here;

■ baserCMS 5系テーマ内

$this->getRequest()->getAttribute('here');

■■ 解説
baserCMSの4系の$this->request->hereでは、クエリはつきません。
5系で

$this->request->getRequestTarget();

でURLを取得するとクエリがついてしまうため、思わぬバグを生みます。
(逆にクエリが必要なときはこちらを使用すれば、クエリ付きのURLが取得できます)

現在いるページのパスを取得する

■ baserCMS 4系テーマ内

$this->request->params['pass'];

■ baserCMS 5系(場所によって少し変わる)
テンプレート内

$this->getRequest()->getAttribute('params')['pass'];

Helper内

$this->getView()->getRequest()->getAttribute('params')['pass'];

現在いるページなどのコンテンツ情報を取得する

コンテンツから必要な情報を抜き出して使いたいときに、使用します。
■ baserCMS 4系テーマ内

$content = $this->request->params['Content'];
var_dump($content);

■ baserCMS 5系テーマ内

$content = $this->BcBaser->getCurrentContent();
debug($content);

ブログシングルページなどでタグ一覧を配列で取得する。

■ baserCMS 4系テーマ内

$blogtags = hash::extract($post['BlogTag'], '{n}.name');

■ baserCMS 5系テーマ内

$blogtagCollection = collection($post->blog_tags);
$blogtags = $blogtagCollection->extract('name')->toList();

アップロードファイル関連の情報取得

結構面倒くさいし、知らないとできないのでメモ
$data = $this->getRequest()->getData('XXXXXX');
などで$dataにアップロードデータを取得した場合
■ baserCMS4系

ファイル名 : $data['file']['name']
ファイル形式 : $data['file']['type']

■ baserCMS5系

ファイル名 : $data['file']->getClientFilename()
ファイル形式 : $data['file']->getclientMediaType()

※ 補足

ファイルサイズ取得 : $data['file']->getSize();

など他の情報も取得できます。

意外とハマるディレクトリ名の違い

element

■ baserCMS4系

Elements/widgets/

■ baserCMS5系

element/widget/

widgets → widget は、BcAddonMigratorを使っても変換されないので、使用している場合は必ず手動でディレクトリ名を変更してください。

error

■ baserCMS4系

Errors/

■ baserCMS5系

error/

こちらも現在はまだ、BcAddonMigratorを使っても変換されないので、使用している場合は必ず手動でディレクトリ名を変更してください。

注意
一部情報が古くなっている場合がございます。
その場合は、ご指摘ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?