HubLには、IDからページのさまざまな情報を取得できるpage_by_id関数という便利な関数があります。
page_by_id関数はウェブサイトページの情報しか取得出来ないのに対し、ウェブサイトページ・ランディングページ・ブログポストどれでも情報を取得できるcontent_by_idという関数が追加されました。ベストプラクティスはpage_by_idではなくcontent_by_id関数の使用になります。
しかし当然ながら括弧内に数値型(number, BigDicimal辺り)しか許容しないので、渡している値が文字列とかだとエラーを吐きます。なので、
page_by_id(hoge|round)
と、roundフィルタでキャストしてあげる必要があります。
記事更新時現在はもう解消されたようなのですが、昔カスタムモジュールのページセレクターを使うと、なぜかページIDが数値ではなく文字列で返って来ていたのですよね。なので、こんなひと手間が必要な時代があったのでした。
他のキャスト(って言って良いのか微妙なものもありますが…)用フィルタも含めた一覧は以下の通りです。
- 文字列→
- 数値:round(ただし限りなく数値に近い文字列に限る)
- リスト:split(区切り文字からリストを生成)
- リスト:list(1文字ずつのリストになります)
- 数値→
- リスト→