ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「custom」
 

カスタムフィールドチェッカーでCMSタグのチェックを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドで、誤ったフィールドIDをテンプレートに挿入してしまう問題を解決するプラグイン「カスタムフィールドチェッカー」に新機能が追加されました。 今回のアップデートでは、ページに存在するフィールドIDが正しく使用されているかをチェックする機能が実装されました。 これにより、フィールドIDの入力ミスによる予期せぬ表示を防ぎ、より安全にサイト運営を行えるようになります。 本プラグインは、「CMSタグチェックプラグイン」と併用することで、テンプレート編集時のミスを効果的に削減できます。 ダウンロードは下記URLから可能です。 https://saitodev.co/soycms/

 

SOY CMSの各プラグインのアイコンの変更方法について

/** Geminiが自動生成した概要 **/
2007年リリースのSOY CMSには、あまり知られていない機能が存在します。それは、プラグイン管理画面に表示される各プラグインのアイコンをカスタマイズできる機能です。 初期状態ではすべてのプラグインのアイコンが豆蔵アイコンになっていますが、128x128ピクセルのGIF画像を「icon.gif」というファイル名でプラグインディレクトリに配置することで、任意のアイコンに変更できます。 これはリリース当初から存在する機能でしたが、当時のプラグイン数は少なく、あまり活用されませんでした。しかし、10年以上経過しプラグイン数が増加した現在、この機能を活用することで、目的のプラグインを見つけやすくなる可能性があります。

 

Minecraft: Pi Edition: RebornのSDKを使ってゴールデンシャベルを追加してみた

/** Geminiが自動生成した概要 **/
この記事は、Minecraft: Pi Edition: Reborn (MCPI++) のSDKを使って、ゲームに「ゴールデンシャベル」を追加する方法を解説しています。 まず、MCreatorを使って16x16ピクセルのゴールデンシャベルのアイコン画像を作成し、既存のitems.pngに挿入します。次に、C++で書かれたgoldenshovel.cppを作成し、アイテムの追加、アイコンの設定、ゲーム内での表示名などを定義します。最後に、CMakeを使ってコードをコンパイルし、生成されたライブラリファイルをmodsディレクトリに配置することで、ゴールデンシャベルがゲームに追加されます。 記事では、コードの各部分がどのような役割を持っているか、また画像ファイルやCMakeLists.txtの設定方法などが詳しく解説されています。

 

SOY CMSでページカスタムフィールドを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSユーザーからブログページ設定に説明文追加の要望があり、ページカスタムフィールドプラグインを作成しました。このプラグインは、ブログページ以外の標準ページにも項目を追加できます。 追加項目は公開側表示と管理画面メモ双方を想定し、公開側表示速度への影響を抑えるため、cms:moduleを介して出力します。 公開側での使用方法詳細はプラグイン詳細画面に記載しています。 対応パッケージは下記サイトからダウンロード可能です。 https://saitodev.co/soycms/

 

SOY CMSでプラグインの状態チェックを最適化して表示速度を改善

/** Geminiが自動生成した概要 **/
SOY CMSの表示速度改善についての記事です。 今回はプラグインの有効・無効の判定処理を最適化しました。従来は全プラグインの状態を都度ファイルシステムから読み込んでいましたが、キャッシュ化して参照するように変更。これにより、ファイルシステムへのアクセス回数を減らし、不要なプラグインのクラスファイル読み込みを削減することで表示速度を向上させています。 同様の速度改善は、設定情報のデータベース参照回数を減らしたSOY Shopでも行われています。

 

SOY CMSの記事の検索でカスタムフィールドの項目の追加設定を設けました

/** Geminiが自動生成した概要 **/
SOY CMSの記事検索ページで、カスタムフィールドが多すぎると検索フォームが縦長になる問題を解決するアップデートがありました。 今回のアップデートにより、カスタムフィールドアドバンスドの各フィールドを検索項目に追加するかしないかを設定できるようになりました。 これにより、必要なフィールドだけを検索項目に表示させることができるため、検索フォームの縦長化を防ぎ、使い勝手を向上させることができます。 すでにカスタムフィールドアドバンスドを利用している場合は、アップデート後、各フィールドの検索項目への追加設定が必要となります。 アップデートパッケージはサイト(https://saitodev.co/soycms/)からダウンロードできます。

 

SOY Inquiry2.3以降のバージョンにバージョンアップする際の注意点

/** Geminiが自動生成した概要 **/
SOY Inquiry 2.3以降にバージョンアップする際、カスタマイズしたフォームテンプレート(`form.php`と`confirm.php`)の修正が必要です。 具体的には、両ファイルの先頭に`$dummyFormObj = new SOYInquiry_Form();`を追加し、`$column->getColumn();`を`$column->getColumn($dummyFormObj);`に置換します。 これはPHPの厳格化に対応するための変更です。

 

SOY CMSでカスタムフィールドアドバンスド イメージフィールドコピープラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドで画像フィールドを使用する際、alt属性を含めて複数箇所に表示したい場合の課題を解決するプラグインが開発されました。標準機能では、2回目以降の表示に`cms:id="img*"`を使用するとalt属性が出力されない問題がありました。このプラグインを使用すると、`cms:id="img_copy"`のように指定することで、alt属性を含めたimgタグを出力できます。`_copy`の部分は設定で変更可能です。このプラグインを含むパッケージはsaitodev.co/soycms/からダウンロードできます。

 

OpenStreetMap + Leafletでカスタムアイコンを使ってみる

/** Geminiが自動生成した概要 **/
OpenStreetMapとLeafletを使って地図上にカスタムアイコンを表示する方法を紹介しています。 シンプルなマーカー設置では、L.icon()でアイコンオブジェクトを作成し、L.marker()のオプションで指定します。 L.geoJSONを使う場合は、GeoJSONデータのpropertiesにiconオブジェクトを追加し、pointToLayerオプションで条件分岐することで、特定のマーカーのみカスタムアイコンに変更できます。 記事では、摂津峡のマーカーにnature.pngというカスタムアイコンを設定する例を示しています。

 

SOY CMSでラベルカスタムフィールドを作成しました

/** Geminiが自動生成した概要 **/
SOY CMS用ラベルカスタムフィールドプラグインが開発されました。ブログページのカテゴリごとに異なる説明文を表示する機能強化が目的です。従来のカテゴリー詳細表示プラグインではラベルのメモ欄しか利用できませんでしたが、このプラグインはラベル詳細画面にカスタムフィールドを追加し、入力した値をカテゴリページに出力できます。これにより、カテゴリページの表現力向上に貢献します。現在はテキスト系の項目のみですが、要望次第で画像項目の追加も検討されています。プラグインはsaitodev.co/soycms/から入手可能です。

 

データ構造のキューとリングバッファを見る

/** Geminiが自動生成した概要 **/
Go言語のテスト方法に関する記事の要約です。Goでは`*_test.go`ファイルにテスト関数を記述します。テスト関数は`TestXxx`という命名規則に従い、`*testing.T`を引数に取ります。`t.Error`や`t.Errorf`でテスト失敗を報告し、`t.Log`でログを出力します。`go test`コマンドでテストを実行でき、`-v`オプションで詳細表示、`-cover`でカバレッジ計測が可能です。記事では具体的なテスト例として、文字列の等価性チェックやエラーハンドリングのテストが紹介されています。また、外部パッケージのテストやテストデータの扱いについても触れられています。

 

データ構造のハッシュテーブルを見る

/** Geminiが自動生成した概要 **/
PHPの関数はハッシュテーブルというデータ構造で管理される。ハッシュテーブルは高速な検索が可能だが、ハッシュ値の衝突という問題がある。この記事では、簡単なハッシュ関数とハッシュテーブル操作関数を作成し、文字列を登録する例を通してハッシュテーブルの基本的な動作を説明する。複数の文字列を登録する際に、ハッシュ値の衝突が発生し、一部の文字列が登録されないことを示し、衝突回避のための方法としてハッシュテーブルのリサイズやハッシュ関数の改良、そしてチェイン法の存在を示唆している。

 

WSL2でSOY CMSの開発環境を作ってみた(virtualhost編)

/** Geminiが自動生成した概要 **/
WSL2上のUbuntuにApache2とPHPで構築したSOY CMS環境に、VirtualHostを追加する方法を解説しています。`/etc/apache2/sites-available/`にある`000-default.conf`を`demo.conf`にコピーし、ポートを8080、DocumentRootを`/home/ryoko/workspace/demo`に変更、アクセス許可の設定を追加します。`a2ensite`コマンドで有効化し、Apache2を再起動後、`localhost:8080`でSOY CMSの管理画面が表示されれば成功です。

 

SOY ShopのオーダーカスタムフィールドでjQueryのDatepickerを使ってみる

/** Geminiが自動生成した概要 **/
SOY Shopで配送と店舗受け取りを同時選択できるよう、オーダーカスタムフィールドで対応する方法を紹介。標準機能にはないカレンダーを、jQuery Datepickerを用いて実装する手順を解説。オーダーカスタムフィールドを作成後、カートページテンプレートにjQueryを読み込み、Datepickerを適用するコードを追加。オプション設定で日付範囲も指定可能。複数フィールドへの適用方法や、直接入力を防ぐreadonly属性の追加についても触れている。

 

SOY CMSでカスタムフィールドデータ移行プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの長年の利用者から、既存記事のユーザビリティ向上のため、カスタムフィールドのデータをカスタムサーチフィールドに移行したいという要望があり、対応プラグインを開発しました。カスタムサーチフィールドは、検索性向上のためデータ型を最適化しており、プラグインはデータ型の差異を考慮した移行を実現します。設定画面で双方のカラム対応を設定し、実行ボタンで移行完了。文字列型のみ対応の現時点でのパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

Google AdsのMCCアカウントでキーワードプランナーを無料で使えるようにするまで

/** Geminiが自動生成した概要 **/
Google Ads APIを利用するにはMCCアカウントが必要で、キーワードプランナーを無料で使う方法を解説。MCCアカウント作成後、キーワードプランナーは有効な広告アカウントがないため使えない。そこで、エキスパートモードで「キャンペーンなしでアカウントを作成」し、生成されたお客様IDをメモ。MCCアカウントに戻り、サブアカウント設定で「既存のアカウントをリンク」し、お客様IDを入力してリクエストを送信、承認する。これでMCCアカウントでキーワードプランナーが無料で使えるようになる。

 

SOY CMSのカスタムエイリアスプラグインでモードを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ記事URLをカスタマイズできるカスタムエイリアスプラグインに新機能が追加されました。従来は任意の文字列でURLを書き換えられましたが、記事タイトルをハッシュ値やランダム文字列に変換するモードが追加。これにより、記事ごとにエイリアスを考える手間が省けます。記事タイトルはSEOに影響するため、任意の文字列でSEO対策したい、でも記事タイトルそのままは避けたい、というニーズに応えます。新機能追加版はサイト(https://saitodev.co/soycms/)からダウンロード可能です。

 

SOY Shopでカスタムフィールド置換文字列プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムフィールド値を注文受付メールなどに挿入するプラグインが開発されました。商品ごとに設定したカスタムフィールド値を、プラグインの詳細画面で設定したフォーマットに基づき、注文メールテンプレートに挿入できます。 複数商品注文時は、商品数分フォーマットが適用されます。この機能はメールビルダープラグインでも利用可能。合わせて、商品一覧の並び順設定を追加するアップデートも実施されました。パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY Shopのカスタムサーチフィールドで検索フォームの初期の選択の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで、検索フォームの初期選択値を設定できるようになりました。ラジオボタン、チェックボックス、セレクトボックスで、選択項目の前に「*」を付けるだけで、ページ表示時に該当項目が初期選択されます。この機能により、ユーザーが求める商品をよりスムーズに見つけられるようになります。設定はカスタムサーチフィールドの管理画面から行えます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY CMSのカスタムフィールドアドバンスドでペアフィールドを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドに、セレクトボックスの値に紐づく値を出力できる「ペアフィールド」が追加されました。記事投稿画面ではセレクトボックスと同様に表示され、設定画面で各項目に「ペア」となる値を設定できます。公開側では`cms:id="****_pair_1"`でペアの値を出力可能。****はフィールドIDです。例えば、`<img src="/img/<-- cms:id="staff_pair_1" /-->.png"`のように複雑なHTMLをシンプルに記述できます。複数ペア設定も可能になりました。この機能を含むパッケージはsaitodev.co/soycmsからダウンロードできます。

 

SOY Shopのカスタムフィールドでカテゴリとの関連付けを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopでは、商品情報にカスタムフィールドを追加できるようになりました。さらに、カテゴリごとにカスタムフィールド項目の表示/非表示を設定可能に。これにより、商品編集画面が肥大化せず、必要な情報だけを表示できます。具体的には、カスタムフィールドの項目設定でカテゴリを紐付け、編集画面で関連カテゴリを選択すれば、そのカテゴリに紐付いた項目だけが表示されます。この機能により、商品情報を分かりやすく管理できます。

 

SOY Shopのカスタムサーチフィールドで簡易予約カレンダー用の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの簡易予約カレンダー機能拡張で、カスタムサーチフィールドに予約カレンダー検索項目が追加されました。これにより、旅行予約サイトなどで、ツアーの予約状況に基づいた絞り込み検索が可能になります。カスタムサーチフィールドタグ`csf:id`を利用することで、高度な検索フォームを構築できます。このアップデートは、キャンセルが多い事業向けの予約アプリ開発(記事へのリンクあり)などの背景も踏まえ、予約サイト構築の柔軟性を高めます。ダウンロードはサイト(saitodev.co/soycms/soyshop/)から可能です。関連情報として、Bootstrap4対応のカートとマイページ追加の記事も紹介されています。

 

SOY Shopの商品一覧ページで変則的な並び順の対応をしてみる

/** Geminiが自動生成した概要 **/
SOY Shopでカテゴリごとに商品一覧の並び替え順を変える方法。カスタムフィールドで「使用人数」や「使用温度」などの項目を作成し、ソートに利用する設定にする。データベースのカラム型を数値に変更。soyshop.item.list拡張ポイントでプラグインを作成し、getSortメソッドでカテゴリごとに異なるソート条件を返す。テントなら使用人数の降順、シュラフなら使用温度の昇順など。標準設定は価格の昇順にする。URLを変えずに同一ページで並び替え順を変えられるため、SEOにも有効。

 

SOY Shopの管理画面で業務に関係ない項目を非表示にして業務改善を行おう

/** Geminiが自動生成した概要 **/
SOY Shop管理画面の業務改善として、BtoC商売に不要な「勤務先名称」などの項目を非表示にする機能が実装されました。これは、特に電話注文時の入力ミスを減らし、オペレーターが入力に迷う状況を解消するためです。不要な項目を非表示にすることで、キーボード操作の時短、確認作業の効率化、新入社員向けマニュアル作成の手間削減など、多岐にわたる業務改善と間接的な経費削減が期待されます。本改修は、業務フローの見直しを促し、よりスムーズなショップ運営に貢献します。最新パッケージは公式サイトからダウンロード可能です。

 

自作アプリを介してのGoogle検索でService Unavailableになった

/** Geminiが自動生成した概要 **/
自作PHPアプリでGoogle検索結果を集計する際、cURLで検索を実行したところ「503 Service Unavailable」エラーが発生した。Googleはスクリプトからの自動検索を制限しており、エラーメッセージは異常トラフィックの検出を示していた。解決策として、`curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);`をcURLに追加し、ブラウザのユーザーエージェントを送信するように変更した。これによりエラーが解消し、検索結果の集計が可能になった。単に適当なユーザーエージェントを設定するだけでは解決せず、実際に使用しているブラウザの情報を送ることが重要だった。

 

SOY Shopの注文検索でオーダーカスタムフィールド(日付)の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文検索機能を拡張し、オーダーカスタムフィールド(日付型)を検索条件に追加できるプラグインを開発しました。管理画面の注文一覧にカスタムフィールドの日付検索欄が追加され、注文詳細に記録した任意の日付情報(例:返答期限)に基づいた検索が可能になります。この機能は「やまどうぐレンタル屋さん」で実装した顧客管理機能強化の一環で、管理画面のみ表示のカスタムフィールドに「○月○日までに返答」といった伝言を記録し、検索で容易に抽出するといった活用が想定されます。プラグインはsaitodev.coからダウンロード可能です。

 

kintoneで指定の個所だけ印刷範囲にしてみる

/** Geminiが自動生成した概要 **/
kintoneでカレンダーアプリを印刷する際、標準機能ではカレンダー部分のみを選択できない問題を、jQueryプラグイン「printElement」を用いて解決する方法を紹介。kintoneアプリにカレンダー形式の一覧ページを作成し、printElementとjQueryを読み込むよう設定。カスタマイズ用JavaScriptで印刷ボタンを配置し、クリックイベントにprintElementでカレンダー部分(id="view-list-data-gaia")を指定。これにより、ヘッダー/フッターを除くカレンダー部分のみが印刷範囲となる。kintoneのカスタマイズ性の高さとjQueryプラグインの活用例を示している。

 

php-webdriverでセレクトボックスの値を選択する2

/** Geminiが自動生成した概要 **/
php-webdriverでセレクトボックスの値をvalue属性で選択する方法について。以前は表示名("京都府")で選択する方法を紹介したが、今回はvalue("26")で選択する方法を解説。`WebDriverBy::name()`でセレクトボックス要素を取得後、`WebDriverBy::cssSelector("option[value='26']")`で目的のoption要素を特定し、`click()`で選択する。チェーンメソッドで簡潔に記述できる。

 

管理画面の注文検索の拡張ポイントsoyshop.order.search.php

/** Geminiが自動生成した概要 **/
管理画面の注文検索フォームを拡張するsoyshop.order.search.php拡張ポイントの説明。searchItemsメソッドでフォームに検索項目を追加し、setParameterメソッドで対応するSQLサブクエリを指定する。 searchItemsはラベルとフォーム要素を配列で返し、フォームのname属性は"search[customs][モジュールID][ユニークなパラメータ]"形式。setParameterは"id IN (SELECT ...)"形式のサブクエリを返す。伝票番号記録プラグインのコードを読むと理解が深まる。

 

SOY Shopの配送モジュールのカスタマイズ例

/** Geminiが自動生成した概要 **/
SOY Shopの拡張ポイント`soyshop.payment.php`は、支払方法のカスタマイズを可能にします。このファイルで定義されたクラスは、`getPaymentModules()`で利用可能な支払いモジュールを返し、`getMethodName()`でモジュール名を表示します。`check()`メソッドで入力値の検証、`execute()`で決済処理、`onPageCheckout()`でチェックアウトページへの表示要素を追加、`onError()`でエラー処理を行います。標準モジュールを複製し、これらのメソッドをオーバーライドすることで、独自の決済方法を実装したり、既存のモジュールの動作を変更できます。例えば、決済手数料の追加や、特定の商品での支払い方法の制限などが可能です。

 

SOY Shopの注文一覧ページの検索フォームでプラグインから項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文一覧ページの検索フォームにプラグインから項目を追加できる拡張ポイントが実装されました。標準機能の納品書出力プラグインでは、出力時に最終出力日時を記録し、検索フォームで「最終出力日」または「納品書の未出力」を条件に注文検索が可能になりました。この拡張は業務アプリ向けの機能強化として実装され、在庫管理業務の効率化に貢献します。 開発者向けには、`soyshop.order.search.php` という拡張ポイントが用意され、独自の検索項目を追加できます。詳しくは`/article/管理画面の注文検索の拡張ポイントsoyshop.order.search.php`を参照ください。パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

php-webdriverでセレクトボックスの値を選択する

/** Geminiが自動生成した概要 **/
php-webdriverでセレクトボックスの値を選択するには、要素を指定してクリックし、キーボード操作で値を入力する。値はoptionタグ内のテキストで指定する。ただし、この方法では動作が不安定な場合があるため、要素を`$element`変数に格納し、クリック→入力→クリックの順で操作することで安定性を向上させる。この方法により、選択直後の画面遷移にも対応できる。

 

SOY Shopの管理画面の顧客検索でユーザーカスタムサーチフィールドの項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの管理画面の顧客検索に、ユーザーカスタムサーチフィールドが追加されました。管理画面でフィールドを追加すると、検索フォームが生成され、顧客情報の絞り込みが可能になります。CRMと連携せずとも、ある程度の顧客管理が可能になります。試作版のため対応漏れがあり、使用したいフィールドの種類が動作しない場合は問い合わせフォームから連絡できます。パッケージはサイトからダウンロード可能です。

 

SOY CMSのブロックから出力されるリンクで外部サイトのURLを使用したい

/** Geminiが自動生成した概要 **/
SOY CMSのブロックで、タイトルリンクを外部サイトに設定する方法を紹介します。まず、カスタムフィールドアドバンスドをインストールし、リンクタイプのフィールド(例:out_site_link)を追加します。記事投稿時に、このフィールドに外部サイトのURLを入力します。次に、ページテンプレートのブロック内にあるタイトル出力部分の`<a>`タグに、`cms:id="out_site_link"`属性を追加します。例:`<a cms:id="out_site_link"><cms:id="title_plain" /></a>`。これで、ブロックのタイトルが指定した外部サイトへのリンクになります。この方法は、ブログページ専用の`b_block:id="entry"`や`b_block:id="entry_list"`内でも同様に利用可能です。

 

ApacheサーバでBrotliを使用してみた

/** Geminiが自動生成した概要 **/
常時SSL化はSEO上効果がある。GoogleはHTTPSをランキングシグナルとして使用しており、サイトのセキュリティ向上はユーザー体験の向上に繋がるため、間接的にSEO効果が見込める。ただし、HTTPS化自体が劇的なランキング上昇をもたらすわけではない。相対的にHTTPサイトより優位になる程度の影響と考えられる。また、サイト表示速度の向上も期待できるが、適切な設定が必要。常時SSL化は必須事項となりつつあり、SEO対策としてだけでなく、セキュリティ向上とユーザーへの信頼感醸成という観点からも重要である。

 

SOY ShopのカテゴリCSVでカテゴリ名の多言語化

/** Geminiが自動生成した概要 **/
SOY ShopのカテゴリCSVインポート/エクスポート機能が強化され、カテゴリ名の多言語化に対応しました。多言語サイトプラグインで設定した言語ごとにチェックボックスが追加され、商品名と同様にカテゴリ名も多言語管理が可能になりました。このアップデートにより、各言語への対応が容易になり、グローバルなECサイト運営が効率化されます。最新のパッケージはsaitodev.co/soycms/soyshop/ からダウンロード可能です。以前公開された商品名の多言語化やカテゴリカスタムフィールドへの対応と合わせて、CSVによる多言語対応がさらに充実しました。

 

カスタムサーチフィールドのチェックボックスで商品詳細ページで選択した項目を表示したい

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドでチェックボックスの値を商品詳細ページに表示、更にリンク化する方法。管理画面でチェックボックス型のカスタムサーチフィールド(例:フィールドID「custom_check」、ラベル「カスタムチェック」)を作成し、各項目を設定。商品詳細テンプレートに`<!-- csf:id="custom_check_番号_visible" -->`と`<!-- csf:id="custom_check_番号" -->`を記述することで、選択された項目のみ表示される。番号は設定した項目の順番(0始まり)。リンク化は`<a href="{url}=<!-- csf:id="custom_check_番号" /-->">`で囲み、{url}をサイトURLに置き換える。

 

SOY Shopの顧客検索で登録状態の項目を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客検索機能に「登録状態」項目が追加され、仮登録顧客の数が把握できるようになりました。管理画面の顧客検索で「登録状態:仮登録」をチェックすることで、仮登録顧客のみを絞り込み検索できます。これにより、仮登録顧客の数を簡単に確認できます。このアップデートを含む最新パッケージは、saitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの商品一覧ページでカスタムフィールドによるソートを設定する

/** Geminiが自動生成した概要 **/
SOY Shopで商品一覧をカスタム順に表示するには、カスタムフィールドを利用します。プラグインでカスタムフィールドを有効化し、「一行テキスト」型のフィールドを作成、これをソートに使用することを指定します。ページ管理から対象の商品一覧ページの設定を開き、「カスタム項目でソート」を選択、作成したフィールドを指定します。商品ごとに並び順を設定するには、各商品詳細ページのカスタムフィールドに数値を入力します。文字列としてソートされるため、1, 2, 11ではなく、101, 102, 111のように3桁の数値を使うことで意図しない並び順を回避できます。

 

SOY CMSのブログで地図アプリを作ろう2

/** Geminiが自動生成した概要 **/
SOY CMSのブログ機能を利用した地図アプリ作成の第2弾では、マーカークリック時のインフォウィンドウ表示を実装しました。前回設定したカスタムフィールド(サムネイル、緯度経度)に加え、ブログ記事のタイトルとリンクをインフォウィンドウに表示するようにテンプレートを修正。具体的には、JavaScriptでインフォウィンドウの内容を生成し、マーカークリックイベントで表示する処理を追加しました。これにより、地図上のマーカーから各店舗の詳細ページへ遷移できるようになりました。将来的にはSOY Shopと連携させ、カテゴリを店舗名として地図上に店舗を表示するショップページの作成も構想されています。

 

SOY CMSのブログで地図アプリを作ろう1

/** Geminiが自動生成した概要 **/
Google Maps APIを用いてSOY CMSのブログに地図アプリを作成する手順の第一段階を解説した記事です。まずGoogle API ConsoleでAPIキーを取得し、SOY CMSにカスタムフィールド「lat(緯度)」と「lng(経度)」を追加します。ブログページを作成し、提供されたHTMLテンプレートを貼り付け、地図の中心座標とズームレベルを調整します。座標はGoogle Mapsで場所を検索し、右クリックメニューの「この場所について」から取得できます。最後に、ブログ記事を作成し、タイトルと本文に加え、カスタムフィールドに取得した緯度経度を入力して公開します。これにより、ブログトップの地図上にマーカーが追加され、訪問場所を視覚的に表示できます。次記事ではマーカーに詳細情報を表示する機能を追加する予定です。

 

SOY Shopの商品詳細ページで登録されている商品をランダムで表示する

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページで登録商品をランダム表示するPHPモジュールを作成する方法です。まず、管理画面でモジュールID「item.random」のPHPモジュールを作成し、指定のコードを記述します。このコードはSOY2DAOを使い、全商品、または指定カテゴリの商品をランダムに取得し、表示件数を制限するSQLを実行します。商品詳細ページテンプレートに`<!-- shop:module="item.random" -->`と`<!-- block:id="random_item_list" -->`を記述することで、ランダムに選ばれた商品が表示されます。カテゴリを指定するには、`$categoryId`変数にカテゴリIDを代入します。

 

SOY Shopの注文検索と顧客検索の結果をSOY Mailで利用する機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文・顧客検索機能が強化され、SOY Mailとの連携が向上しました。注文検索では顧客情報、商品、金額等の絞り込みが可能になり、顧客検索では購入合計と購入回数が追加されました。また、顧客属性の一括設定とCSV出力も実装。これらの機能拡張により、SOY Shopの注文状況に基づいたメール配信が容易になり、SOY Mailの下書き自動保存機能と合わせてメールマーケティングの効果的な運用を支援します。最新パッケージはGitHubからダウンロード可能です。

 

カスタムサーチフィールドの商品一覧ページで並び替えを追加

/** Geminiが自動生成した概要 **/
SOY Shopのカスタムサーチフィールドで複数カテゴリのような商品一覧ページを作成できる機能に加え、新たにソート機能が追加されました。カテゴリとして使用したフィールド以外の値で商品を並び替えることが可能になります。ソートボタン設置プラグインと同様のアンカータグをカスタムサーチフィールド側で設定できるようになりました。この機能追加により、より柔軟な商品表示が可能になります。追加機能を含むパッケージはGitHub(https://github.com/inunosinsi/soycms/tree/master/package)で公開されています。

 

SOY Shopのオーダーカスタムフィールドの項目でファイルを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopで商品注文時にファイルアップロードできるカスタムフィールド機能が追加されました。管理画面で「ファイル」種別の項目を作成すると、カートにアップロードフォームが表示され、注文完了後、管理画面のファイルマネージャで確認できます。ファイル名は日付に変換され上書きは防止されます。ストレージプラグインと併用すればダウンロードURLも利用可能です。現在は拡張子やファイルサイズ制限機能はありませんが、アップロード許可する拡張子設定は追加されました。要望があればお問い合わせください。この機能はhttps://saitodev.co/soycms/soyshop/のパッケージで利用可能です。

 

SOY Shopでブラック顧客リストプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用プラグイン「ブラック顧客リストプラグイン」は、顧客詳細画面にブラック顧客チェックボックスを追加し、チェックでブラック顧客として登録する。以後、該当顧客からの注文は注文詳細に赤字で警告表示され、注文登録画面でも通知が表示される。プラグイン詳細画面では登録済みのブラック顧客リストを確認可能。管理画面での注文登録業務を主とするユーザー向けに、ブラック顧客を一目で識別しやすくする機能を提供。コードは指定GitHubリポジトリのパッケージ内に含まれる。

 

SOY2DAOでSQLを実行して、オブジェクトで返す

/** Geminiが自動生成した概要 **/
SOY2DAOで複雑なSQLを実行しつつ、結果をオブジェクトで取得する方法が紹介されています。顧客テーブルとカスタムフィールドテーブルを結合し、特定のカスタムフィールド値を持つ顧客情報を取得する例が示されています。 `SOYShop_UserDAO` の `executeQuery` でSQLを実行し、結果の配列をループ処理で `getObject` メソッドに渡すことで、各レコードが `SOYShop_User` オブジェクトに変換されます。これにより、カスタムフィールドの値で検索しながら、必要な顧客情報のみをオブジェクトとして扱いやすく取得できます。この手法は、以前紹介されたSOY CMSの検索フォーム追加の記事でも活用されています。

 

SOY Shopで複数カテゴリの様な設定を行う

/** Geminiが自動生成した概要 **/
SOY Shopでは複数カテゴリ機能はパフォーマンス低下のため廃止され、代替としてカスタムサーチフィールドプラグインが推奨されています。カスタムサーチフィールドでは、チェックボックス形式で複数の「タグ」を商品に設定可能。管理画面で項目を追加し、商品詳細ページでタグを選択、商品一覧ページには専用ページを作成し、CustomSearchFieldItemListモジュールを適用することでタグによる絞り込みを実現します。URLは「http://ドメイン/ショップID/ページのURL/フィールドID/タグ値」となります。ただし、管理画面の商品検索ではカスタムサーチフィールドによる検索は不可。その対策として、各フィールドに一括設定ページが用意され、簡易的な商品検索フォームが利用可能です。

 

SOY CMSで表示直前で画像のリサイズ表示を行う

/** Geminiが自動生成した概要 **/
SOY CMSでサイト表示を高速化するために、表示直前にサーバ側で画像リサイズを行う方法を紹介しています。Google PageSpeed Insightsで低評価を受けた画像サイズの問題を解消するため、サムネイルプラグインではなく、SOY CMSの隠し機能を活用。 具体的には、カスタムフィールドに画像パスを入力し、imgタグのsrc属性に`im.php?src=[画像パス]&width=[幅]`を指定することで、動的にリサイズされた画像を表示。従来のHTMLのwidth属性による縮小表示よりもパフォーマンスが向上し、PageSpeed Insightsのスコアも改善。 記事では、設定変更前後の具体的なコード例やスクリーンショットを交えながら解説。リサイズ処理はJPEG、PNG、GIFに対応し、作業フローを簡略化しつつサイト高速化を実現。次回、CSSや画像のキャッシュ設定について解説予定。

 

SOY CMSのカスタムフィールドをCSVで並べ替え

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドは、記事に様々なフォームを追加できる便利な機能だが、管理画面での表示順の変更が手間だった。特に数が増えると、一つずつ上下させる従来の方法は非常に面倒。この問題を解決するため、カスタムフィールドアドバンスにCSVによる並び替え機能が追加された。CSVをエクスポートし、ファイル内で順番を調整後、インポートすることで、自由に並び替えが可能になった。

 

SOY Inquiryでお問い合わせフォームの確認画面で指定の箇所までジャンプしたい

/** Geminiが自動生成した概要 **/
SOY Inquiryで確認画面をフォームの先頭に表示する方法です。まず、form.phpの`<form>`タグに`action="#confirm"`を追加します。次に、confirm.phpの入力内容確認箇所の直前に`<div id="confirm"></div>`を挿入します。これで、確認画面表示時にフォームの先頭にジャンプします。完了画面にも適用する場合は、complete.phpでも同様の操作を行います。ただし、この方法ではURLに#confirmが残ります。URLを綺麗にしたい場合は、PHPでaction属性を動的に指定する必要があります。

 

SOY Shopの商品一覧ページでカスタムフィールドの値で商品の並び替え

/** Geminiが自動生成した概要 **/
SOY Shopのソートボタン設置プラグインでカスタムフィールドの値によるソートが可能になりました。商品カスタムフィールドの「高度な設定」で「ソートに使用する」にチェックを入れると、プラグイン管理画面にソート用タグが表示されます。このタグを商品一覧ページテンプレートに貼り付けることで、カスタムフィールド値に基づくソートボタンが設置できます。機能はsoyshop_1.17.3p7.2.zip以降のパッケージか、フォーラムの修正ファイルで利用可能です。

 

SOY Inquiryでアップロードフォームを設置した時、確認メールで画像を確認したい

/** Geminiが自動生成した概要 **/
SOY Inquiryでアップロードフォームを複数設置した場合、確認メールで全ての画像URLを確認する方法を紹介します。標準では管理画面でしか確認できませんが、メールテンプレートをカスタマイズすることで実現可能です。 `/インストールディレクトリ/app/webapp/inquiry/src/template/default/mail.admin.php` に記述を追加します。`$comments` から各コメントのコンテンツを取得し、正規表現で `<img src="">` タグ内のURLを抽出します。抽出したURLにサイトURLを付加して、確認メールの末尾に「添付ファイル」として表示します。複数画像に対応するため、ループ処理で全てのコメントをチェックし、画像URLを追記していきます。これにより、確認メールで全てのアップロード画像を直接確認できるようになります。


Powered by SOY CMS   ↑トップへ