エンタメ特化型、心を動かすWeb制作。
まずは無料で相談いたします!
いつも当ブログをご覧いただきありがとうございます。
現在、ありがたいことに多数のご依頼をいただいており、弊社スタッフ一同、日々慌ただしく業務に励んでおります。
そのため今回の更新では、ProcessWire Weekly #581〜#584 の内容を一括してまとめてご紹介させていただきます。
それぞれの号で紹介された注目モジュールを分かりやすくお届けいたします。
お時間のない方にもさっと読んでいただけるよう、要点を整理した形でお届けいたしますので、ぜひ最後までお付き合いください。
フルスタックサイト構築
「PromptAI」は Robert Weiss によって開発された新しいサードパーティ製モジュールです。
名前の通り、外部AIサービス(Anthropic / OpenAI / Gemini)と連携して、ページ保存時にテキストフィールドや画像フィールドをAIで処理できるようになります。
テキストフィールドの内容をAIに送信し、処理結果を同じフィールドまたは別のフィールドに保存可能
画像フィールドには、説明文やカスタムフィールドの内容をAIで生成・保存可能
AIプロバイダー、モデル、APIキー、プロンプトなどを細かく設定可能
テンプレートごとにプロンプト設定を使い分け可能
Label(識別ラベル)
Template(対象テンプレート)
Source Field(処理元のフィールド)
Target Field(処理結果の保存先)
Prompt(AIへの指示文)
UI上では、「保存してAIに送信」ボタンが追加され、もしくは各プロンプト設定ごとに個別の送信ボタンを用意することもできます。
GitHubからソースをクローンまたはダウンロード
管理画面のモジュールマネージャーからインストール可能
サポートフォーラムスレッドでも情報提供中
今回ご紹介するのは、Jürgen Kern 氏によって開発された、ProcessWire用の新しいサードパーティモジュール「FrontendComments」です。
このモジュールは、ProcessWireに標準搭載されているコメント機能(Ryan氏による開発)からインスピレーションを受けて開発されたもので、現在はアルファ版(初期段階)として公開されています。
そのため、本番環境での利用はまだ推奨されていません。
コメント用のFieldtype/Inputfieldを提供
出力テンプレートは複数のフレームワークに対応
- Uikit
- Bootstrap
- Pico
豊富な設定項目あり
別モジュール「FrontendForms」への依存あり
「FrontendComments」は現在GitHubでソースコードが公開されていますので、そちらからクローンまたはダウンロードしてお試しいただけます。
なお、アルファ版のため、不具合などが発生する可能性もあります。
Markup Regionsがさらに進化しました
今週、ProcessWireの開発者 Ryan Cramer 氏による新しいブログ記事が公開されました。
そこでは、最新版 ProcessWire 3.0.250 と、同バージョンで追加された Markup Regions(マークアップリージョン)機能の拡張 について詳しく紹介されています。
Ryan 氏によれば、今回のアップデートは「より柔軟で直感的なマークアップ制御を実現するための改善」であり、HTMLのid
属性に依存しない出力の構築が可能になったことが最大のポイントです。
以下は、ProcessWire 3.0.250 で新たにサポートされた Markup Regions の機能概要です:
1. id
属性が不要に
<title>
や <body>
など、1ページに1回しか出現しないタグであれば、id
属性を使わなくても値を埋め込めるようになりました。
例:
<title>現在のページのタイトル</title>
<head pw-append><style>background: rebeccapurple</style></head>
2. class
属性でのターゲット指定に対応
これまでは id
でしかターゲット指定できませんでしたが、今後は class
名でもマークアップ操作が可能 になりました。
例:
<p class="summary" pw-prepend=".page-header">Hello world!</p>
※ただし、該当クラスが複数存在する場合、すべての要素に影響する点には注意。
3. タグ名でのターゲットもOK
タグ名そのものでターゲット指定が可能に。さらに、タグ名+クラス指定もできます。
例:
<div pw-append="<footer>"><p>Powered by ProcessWire</p></div>
または、より明示的に:
<div pw-append="<footer.site-footer>">...</div>
4. 新アクション pw-update
新たに追加された pw-update
属性により、既存要素の属性を更新しつつ、同時に内容の追加も可能になりました。pw-append
の上位互換的な位置付けと考えるとわかりやすいです。
ListerProのアクションを手軽にカスタムできるモジュールが登場!
今回ご紹介するのは、Robin Sallis 氏が開発した新しいモジュール 「Page Action: Include File」 です。
このモジュールは、ListerPro(ProcessWireの有料アドオン)と組み合わせて使用する「Page Action」の拡張機能で、PHPファイルを追加するだけで独自のアクションが作成可能になります。
ListerProでは、ページ一覧に対してさまざまな「アクション(処理)」を一括実行できます。
たとえば「タイトルの一括変更」や「ステータス変更」などが代表的です。
しかし、独自のアクションを作ろうとすると、通常は専用のモジュールを作成する必要があり、少し手間がかかります。
そこで登場したのが 「Page Action: Include File」。
このモジュールを使えば、以下のようにPHPファイルを /site/templates/PageActionIncludeFile/
に追加するだけで、カスタムアクションとして使えるようになります。
例えば、ページタイトルの先頭文字を大文字に変換したいとします。以下のようなコードを書き、uppercase_first_letter_of_title.php
として保存するだけでOKです。
<?php namespace ProcessWire;
// タイトルの先頭文字を大文字にする
$item->title =
mb_strtoupper(mb_substr($item->title, 0, 1)) .
mb_substr($item->title, 1);
この $item
は処理対象のページオブジェクトを指しており、保存処理はListerProが自動で行ってくれるため、save()
は不要です。
モジュールを新たに書かず、PHPファイルを追加するだけでOK
大量のページにも対応可能(自動的に分割処理される)
UIからファイル選択だけで実行できる
Webサイト制作でお困りの方へ
「どこから始めたらいいかわからない」「既存サイトをもっと活かしたい」など、お悩みやご相談がありましたら、ぜひ一度お気軽にお問い合わせください。
あなたの目的に合わせた最適なご提案をさせていただきます。