bluditでページにアップロードされた画像を取り出す

Posted by nogajun - 2022/03/04

あいかわらずBluditのテーマを作っています。

テーマから画像を扱うとき、カバー画像は<?php echo $page->coverImage(); ?>とすれば、すぐに画像パスは取り出せます($pagebluditの定義済み変数)。

しかし、カバー画像以外のアップロードした画像を扱う場合、簡単に扱う仕組みは無いようでどうしたらいいのか悩んでました。

それで、Bluditのフォーラムを見たところ「How to fetch all uploaded images - Bludit Support」という、まさに求めていたものと同じスレッドがあったので、見ると何も回答なし。それもそのはず、3月3日投稿って今日じゃん!(昨日の話です)

今日、掲示板のスレッドを見たところ回答があり、直接的な答えはなかったものの「簡単に扱う仕組みは無いのでパスを検索してファイルリストを取得する必要がある」とヒントが書いてあったのでgrepで検索しながら書いてみた。

    <?php
    // set upload path
    $upload_path = PATH_UPLOADS_PAGES.$page->uuid()."/";

    // fetch image list
    $image_list = Filesystem::listFiles($upload_path, '*', '*');

    // output img tag
    foreach($image_list as $l):
        echo "<img src=\"".HTML_PATH_UPLOADS_PAGES.$page->uuid()."/".basename($l)."\">\n";
    endforeach;
    ?>

これでアップロードした画像がテーマで使える。