Advanced HTML Block:PDFを強制ダウンロードするリンクを挿入したい

2017年11月20日 at 18:31

公開中のサイト内に、お客様で作成したHTMLを流し込む必要があったので、Advanced HTML Blockを使用しています。
その中で、PDFをダウンロードするリンクを挿入したいのですが、「ファイルダウンロードリンク」ではPDFを表示してしまいます。
ファイルブロックでは、「強制的にダウンロード」というオプションが存在したかと思いますが、Advanced HTML Blockには強制的にダウンロードするURLを指定する方法はありますか?

タグ:

Re: Advanced HTML Block:PDFを強制ダウンロードするリンクを挿入したい

2017年11月22日 at 11:36
こちら、作業時間が取れましたので、自力で調査、修正しました。

http://gist.github.com/kanetei/4f5086cba654520618ed0d64eedc0480

上記gistに上げたファイルを、

application/blocks/advanced_html

上記にアップロードすることで、ファイル強制ダウンロードのリンクが追加されます。

以下、参考に調査手順を記します。

1.ファイルブロックを「ファイルのダウンロードを強制」を設定した状態で設置して、どのようなURLになっているかを確認する
→http://example.com/download_file/force/0123/4567 となっている

2.上記のURLがどこで生成されているかを、concrete/src 以下を検索して調査する
→concrete/src/Entity/File/Version.php 内の'getForceDownloadURL()'という関数内で生成されている

3.見つけたコードを参考にして修正する
→サイトのURL+'/download_file/force/'+ファイルID+'/'+ページID ということが分かったので、ボタンをクリックするとこのURLを流し込むように修正

以上です。