ブログ内検索

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

SOY CMSで静的テンプレートプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの静的テンプレートプラグインは、HTMLファイルから直接テンプレートを読み込むことで、同じデザインの複数ページ管理を簡素化します。従来、URL構造の違い(例:/soycms/soycms/tutorial/1 と /soycms/soyshop/tutorial/1)により、同じデザインでも別ページとして管理が必要でした。このプラグインは静的テンプレートを利用することでこの問題を解決し、管理の手間を削減します。SOY Shopでは標準機能ですが、SOY CMSではプラグインとして提供されます。ダウンロードはsaitodev.co/soycms/ から可能です。

 

ざくろ石帯とはどんな所?

/** Geminiが自動生成した概要 **/
山口県岩国市の「ざくろ石帯」は、石灰岩とマグマが反応して形成されたスカルン鉱床です。スカルン鉱床は、石灰岩中の柘榴石を多く含んでいます。柘榴石は、カルシウム、マグネシウム、鉄を含むネソケイ酸塩鉱物で、Yにアルミニウム、Zにケイ素が入っているのが一般的です。この地域では、柘榴石が土壌の母岩として風化するため、柘榴石に由来する土壌が形成されていると考えられます。

 

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

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

 

SOY CMSとSOY Shopで多言語サイトの構築を見直しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopの多言語サイト構築方法を大幅に改修しました。 従来はテンプレート数増加による管理コスト増大が課題でしたが、今回は以下の改善を行いました。 * 日本語ページと英語ページで同じテンプレートを使用可能に * 画像ファイル名に言語キーを付与することで自動切り替え * 記事とラベルを他言語のものと紐付け可能に これらの改善により、管理画面の簡素化、多言語サイト構築の効率化を実現しました。 新パッケージはサイトからダウンロード可能です。

 

栽培者の求める最高の肥料は地下深くで形成される

/** Geminiが自動生成した概要 **/
この記事は、「青い石」と呼ばれる緑色片岩が、どのようにして優れた肥料となるのかを地質学的な視点から解説しています。 海底火山で生まれた玄武岩は、プレート移動により日本列島へ移動し、陸のプレート下に沈み込みます。その過程で強い圧力と熱を受け、変成作用によって緑泥石を多く含む緑色片岩へと変化します。 緑色片岩は、もとの玄武岩由来のミネラルに加え、海水由来のミネラルも含み、さらに、その層状構造から容易に粉砕され、植物が吸収しやすい状態になります。また、粘土鉱物である緑泥石は腐植と相性が良く、理想的な土壌環境を作ります。 このように、地下深くで長い年月をかけて形成された緑色片岩は、栽培者にとって理想的な肥料と言えるでしょう。

 

田道間守が目指した常世の国はヤンバルの事か?

/** Geminiが自動生成した概要 **/
この記事は、日本の神話に登場する田道間守が持ち帰ったとされる橘の起源について考察しています。著者は、和歌山県下津町で見たミカンの山の風景と、沖縄県ヤンバル地方の風景の類似点、そして両地域に共通する緑色片岩の存在に着目します。さらに、橘の起源が沖縄のタニブターという植物であるという研究結果を踏まえ、田道間守が目指した常世の国はヤンバル地方だったのではと推測します。そして、下津町はヤンバル地方と地質・気候が似ており、当時の大和政権の拠点に近いことから、橘を植えるのに最適な場所だったのではないかと結論付けています。

 

肥饒き地の阿波国

/** Geminiが自動生成した概要 **/
記事は、緑泥石と緑色片岩への興味から、古代日本の形成に関する壮大な話へと展開していきます。 「邪馬壹国は阿波から始まる」という本では、古語拾遺を引用し、肥沃な土地を求めて阿波国へと向かった記述があることを紹介。阿波国が吉野川の影響で形成された肥沃な土地であったこと、そして、その吉野川がイザナギプレートの活動によって生まれたことを解説しています。 さらに、阿波国には皇族の御衣に関連する麻植郡や三木氏が存在していたことにも触れ、緑泥石との関連を示唆しています。そして、篠山川の恐竜化石発掘現場周辺でも緑泥片岩が見られることを紹介し、古代日本と緑泥石の興味深い関係を強調しています。

 

ヤンバルで緑色片岩と出会う

/** Geminiが自動生成した概要 **/
ヤンバルの緑色片岩を探訪し、その下の土壌を調査した。観察の結果、団粒構造が形成されたフカフカの土が見つかり、この地域では適切な管理により土壌中に有機物が蓄積する可能性があることが示唆された。 この地域では緑色片岩の影響により、かつて稲作が盛んであったことが判明。緑色片岩は土壌のアルカリ性を高め、有機物の分解を抑制することで、土壌の保肥力を向上させると考えられる。 また、緑色片岩は硬い性質のため取り扱いにくいことが指摘された。これらの発見は、緑色片岩が土壌形成に果たす役割と、ヤンバルの農業の歴史的意義を浮き彫りにしており、沖縄の土壌環境を考える上で貴重な知見を提供している。

 

SOY CMSでCMSタグチェックプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSのテンプレート編集で発生する、CMSタグの閉じタグ忘れによるエラーを防止するプラグイン「CMSタグチェックプラグイン」の紹介記事です。 記事では、CMSタグの閉じタグ忘れが原因で発生するエラーとその修正方法、タグが増えることによる確認作業の煩雑さを解説し、このプラグインによってタグの記述ミスをテンプレート更新時に検知できることを説明しています。 プラグインの導入により、製作時間の短縮などのメリットがあると期待されます。

 

SOY CMSで多言語ラベルプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで英語サイトを同じURLで運営したい方向けに、多言語ラベルプラグインを作成しました。 このプラグインにより、ラベルごとに日本語と英語の両方の表記を管理できます。 ただし、同一URLでの多言語サイト運営には、PHPモジュールや画像パス変換プラグインなど、追加の対応が必要です。 これらの対応が必要な方は、フォーラムからお問い合わせください。 プラグインを含むパッケージは、サイトからダウンロードできます。

 

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でカテゴリを分類分けして出力したい場合に便利なモジュールが新たに開発されました。 このモジュールを使用すると、サイトの設定で「ラベルのカテゴリ分け」を有効化し、カテゴリを分類分けして作成することで、テンプレート上で分類名ごとにカテゴリ一覧を出力できます。 モジュールの設置は、テンプレート編集画面で所定のコードを記述するだけで完了します。標準ページに設置する場合はブログページIDの指定が必要です。 詳細な使用方法やダウンロードは、以下のサイトをご確認ください。 - SOY CMS公式サイト: https://saitodev.co/soycms/

 

SOY CMSのMIMEタイプの制限設定でページ毎の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのファイルアップロード制限をページごとに設定できるようになりました。記事投稿画面とファイルマネージャで許可するMIMEタイプを分けたいという要望に応え、設定ファイルにELFINDER_MODEという定数を追加。これにより、例えば記事投稿画面では画像ファイルのみ、ファイルマネージャではCSSやJSファイルのみ許可するといった設定が可能になりました。設定は /CMSインストールディレクトリ/common/config/upload.config.php 内でELFINDER_MODEの条件分岐を用いて$mimetypes配列を定義することで行います。最新のパッケージは公式サイトからダウンロードできます。

 

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

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドに、複数の値を管理できる「リストフィールド」が追加されました。記事投稿画面ではリスト形式で値を入力し、公開側ではul/liタグで出力できます。 特徴的なのはテンプレートへの記述方法です。通常のフィールドと異なり、 `cms:id="{フィールドID}_list"` で囲んだ部分が繰り返し出力となり、繰り返しの中では `cms:id="value"` で各値を出力します。 このアップデートを含むパッケージは、サイトー開発のSOY CMS公式サイトからダウンロードできます。

 

SOY CMSで履歴自動削除プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの履歴自動削除プラグインが公開されました。記事とテンプレートの古い履歴を任意の日付で一括削除、または個別に残す履歴件数を指定できます。記事履歴のみ自動削除、テンプレートは保持といった個別設定も可能です。SQLite版ではSQLite VACUUMプラグインと併用でサーバー負荷軽減が期待できます。利用時はデータベースのバックアップ推奨(SQLite版は専用プラグインあり、MySQL版は無し)。パッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY ShopのGoogle Sign-In for WebsitesプラグインをSign In With Googleに変更しました

/** Geminiが自動生成した概要 **/
SOY ShopのGoogleログインプラグインが、Google Sign-In for WebsitesからSign In With Googleにアップデートされました。変更に伴い、HTMLタグやスクリプトを修正する必要があります。 以前は`googleUser.getBasicProfile()`でユーザー情報が取得できていましたが、現在はJWTが返却されるため、Base64デコードが必要です。`parseJwt`関数でJWTをデコードし、`json.email`でメールアドレスを取得します。 詳細はプラグイン詳細画面とサイト(saitodev.co/soycms/soyshop/)を参照してください。

 

SOY CMSのモジュールで公開期限付きのcms:ignoreのようなものを作成してみる

/** Geminiが自動生成した概要 **/
SOY CMSで公開期限付きcms:ignoreを実現するモジュールの作成方法を解説。指定期間内のみコンテンツを表示する機能で、`/ドキュメントルート/サイトID/.module/parts/ignore.php`にPHPコードを記述する。コードでは`mktime`と`time`関数で期間を指定し、`addModel`で表示条件を設定。テンプレートには`<!-- cms:module="parts.ignore" -->`等を記述して使用する。SOY Shopでは`soycms_ignore`を`soyshop_ignore`に、`cms:module`を`shop:module`に変更すれば利用可能。

 

SOY CMS / SOY ShopでファイルのアップロードをMIMEタイプで制限できる設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/SOY Shopで、ファイルアップロード時のMIMEタイプ制限設定が追加されました。ユーザー要望に応え、記事作成、テンプレート、elFinderからのアップロード時に、JavaScriptファイルの許可やPDFの禁止等が可能になります。従来のバージョンアップでカスタマイズが消える問題も解消。設定は、`/CMSインストールディレクトリ/common/config/upload.config.php.sample`を`upload.config.php`にリネームし、許可するMIMEタイプを`$mimetypes`配列に追加するだけです。最新パッケージはサイト(https://saitodev.co/soycms/)からダウンロード可能です。

 

SOY ShopのB2CSVプラグインの送り状種類の項目で送料で分ける方法

/** Geminiが自動生成した概要 **/
SOY ShopのB2CSVプラグインで、送料ごとに送り状種類を自動で変更する隠し機能が追加されました。送料800円なら発払い(0)、200円ならネコポス(7)のように設定可能です。`/soyshop/webapp/src/module/plugins/b2_order_csv/form/B2ExportFormPage.html`を`_B2ExportFormPage.html`にリネームし、`<input type="hidden" name="Pattern[金額]" value="送り状種類">`をHTMLに追加することでカスタマイズできます。金額と送り状種類の対応を複数指定可能です。最新版のSOY Shopへのアップデート推奨。

 

SOY CMSでSOY Inquiry連携プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSブログの記事ページからSOY Inquiryで作成したお問い合わせフォームへ遷移する際、記事名を引き継ぎたいという要望に応えるため、SOY CMSとSOY Inquiry双方に機能追加を行いました。 SOY CMS側では「SOY Inquiry連携プラグイン」を追加。記事ページにフォームへのリンクを設置し、クリックすると記事名を渡しつつフォームへ遷移します。SOY Inquiry側では「記事名 [SOY CMSブログ連携]」カラムを追加し、受信した記事名を表示します。 プラグインの設定方法はSOY CMS側のプラグイン詳細画面に記載されています。記事名以外の項目連携も要望に応じて対応可能です。利用にはSOY CMSとSOY Inquiry両方のアップデートが必要です。

 

SOY CMSとSOY ShopにAceコードエディタを設置しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY ShopにJavaScript製のコードエディタ「Ace」が導入されました。導入箇所は両CMSのテンプレート、HTMLモジュール、PHPモジュールの編集画面です。以前の色付きエディタはブラウザの進化への対応と動作の不安定さを理由に廃止されましたが、block:idタグの視認性向上のため、Aceが採用されました。現在はHTML/PHPモードのみですが、今後便利な機能の有効化を検討中です。最新版はsaitodev.co/soycms/からダウンロード可能です。

 

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

/** Geminiが自動生成した概要 **/
SOY CMSのブログとOpenStreetMapで地図アプリを作る手順は以下の通り。カスタムサーチフィールドで緯度(lat)・経度(lng)フィールドを作成し、地図ラベルを設定。地図出力ページを作成し、OpenStreetMap + LeafletのHTMLを貼り付ける。JavaScript内のマーカー情報をSOY CMSのタグに置き換え、記事タイトル、URL、緯度経度を動的に表示。標準ページに地図ラベルの記事一覧を表示する設定を行い、緯度経度情報付きの記事を投稿すれば、記事の位置にマーカーが設置された地図が自動的に生成される。

 

SOY CMSのCumulative Layout Shiftプラグインにpicture要素設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのCore Web Vitals改善用プラグイン「Cumulative Layout Shift」にpicture要素設定が追加されました。 picture要素はレスポンシブ画像を実現するHTMLタグで、画面幅に応じて最適な画像を出力します。プラグインでは、imgタグにsize属性を自動挿入するか、pictureタグで囲うかを選択できます。ただし、既にHTMLテンプレートでpictureタグを使用している場合は正常に動作しないため注意が必要です。この機能はsaitodev.co/soycms/で提供されるパッケージに含まれています。画像のwidthが小さい場合はsize属性が自動挿入されます。

 

SOY CMSの管理画面のHTMLファイルの探し方

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面UIをカスタマイズするには、該当HTMLファイルを見つける必要があります。例としてページテンプレート編集画面(URL例: `http://example.com/cms/soycms/index.php/Page/Detail/3`)を挙げます。 HTMLファイルは`cms/soycms/webapp/pages`ディレクトリ以下に配置されています。URLの`Page/Detail`部分がディレクトリとファイル名に対応します。まず`pages`ディレクトリ内の`Page`ディレクトリを探します。次に`Detail`ディレクトリを探しますが、存在しない場合は`DetailPage.html`が目的のファイルです。通常、`DetailPage.class.php`というPHPファイルも対で存在します。これらはSOY2HTMLの仕組みを利用しており、より深く理解するには関連の記事を参照ください。

 

SOY Shop 2.0.0

/** Geminiが自動生成した概要 **/
非公式にメンテナンスされているSOY Shop 2.0.0βが公開されました。データベース構造は1系とほぼ変わらず、通常のバージョンアップ手順で適用可能です。主な変更点は、Bootstrapを使ったレスポンシブ対応の管理画面UIと、公開側ページの読み込み速度最適化です。後者は必要なクラスファイルのみを読み込むことでメモリ消費量を削減し、表示速度向上と同時アクセス耐性向上を実現しています。 HTMLキャッシュプラグインも同梱され、キャッシュ機能で更なるメモリ消費削減が可能です。ダウンロードはsaitodev.co/soycms/soyshop/ から。一部プラグインのUIはまだ2系に対応していませんが、順次修正予定です。

 

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

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

 

【SEO対策】HTMLの圧縮

/** Geminiが自動生成した概要 **/
HTMLの圧縮は、Webページの表示速度向上とデータ転送量削減に効果的なSEO対策です。HTMLソースコードには、可読性向上のために改行やタブが含まれていますが、これらは表示には不要なため、転送前に削除することでデータ量を減らせます。SOY CMSでは、HTML圧縮プラグインを利用することで、テンプレート編集時の可読性を維持しつつ、転送時には自動的にHTMLを圧縮できます。このプラグインは、HTMLキャッシュプラグインや静的化プラグインと併用することで、圧縮処理の負荷を軽減し、更なる高速化を実現します。HTML圧縮プラグインを含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shop 2.0.0 β

/** Geminiが自動生成した概要 **/
SOY Shop 2.0.0βでは、管理画面のUIをSOY CMS 3系に刷新。開発元の停滞を受け、非公式ながらバージョンアップを実施。拡張性向上のため、デザイン崩れを防ぐ3系テンプレートを採用した。標準機能のUI変更は完了し、プラグイン対応を進めている。現在はカスタムフィールド系、初期プラグイン、PAY.JP/Coiney決済プラグインが対応済み。今後、予約カレンダーや伝票管理プラグインへの対応を予定。データベース構造は変更なし。ダウンロードはsaitodev.co/soycms/soyshop/ から可能。管理画面のみ使用モードの追加により、ECサイト構築だけでなく、会員管理システムなど多様な用途にも対応できるようになった。

 

SOY ShopでFacebookページショップと連携する

/** Geminiが自動生成した概要 **/
SOY Shopの商品をFacebookページショップ/Instagramショッピングで販売する手順は以下の通り。 1. SOY ShopのFacebookページショップ用XMLプラグインを有効化し、XMLページを作成する。 2. Facebookページを作成し、ショップタブを追加。 3. 別のウェブサイトでチェックアウトを選択し、ダミー商品を登録。 4. カタログマネージャでXMLページのURLを登録。一括アップロードで「スケジュール設定したフィードを利用」を選択し、XMLページURLを設定。 5. エラーがなければ連携完了。Instagramショッピングは別途申請が必要。 最新版はサイト(https://saitodev.co/soycms/soyshop/)からダウンロード可能。

 

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

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

 

【SEO対策】他のCMS向けの総当り攻撃を避ける

/** Geminiが自動生成した概要 **/
サイバー攻撃の増加は深刻な問題であり、特にCMSを狙った攻撃は増加傾向にある。記事ではSOY CMSへの攻撃事例を通して、その脅威を具体的に示している。攻撃者は管理画面へのログインを試みたり、脆弱性を突いて不正アクセスを試みる。対策としては、管理画面のURLを変更したり、.htaccessでアクセス制限をかけることが有効である。また、WAFの導入やセキュリティプラグインの活用も推奨されている。常に最新の情報に注意し、適切なセキュリティ対策を実施することで、被害を最小限に抑えることが重要である。

 

SOY InquiryでParsley.jsを利用する

/** Geminiが自動生成した概要 **/
SOY InquiryにParsley.jsを組み込むと、見栄えの良い入力内容チェックが利用できます。フォームテンプレートにParsley.jsのスクリプトを挿入し、SOY Inquiryのフォーム設定画面で各項目にdata-parsely-triggerとrequired属性を設定します。さらに、data-parsely-required-message属性を追加すると、エラーメッセージをカスタマイズできます。これにより、各項目に合わせたエラーメッセージが表示され、ユーザーフレンドリーなフォームが作成できます。

 

SOY Shopの顧客機能を活用して買取管理アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopを活用した買取管理アプリが人文と社会の書林様サイト(https://www.tetsugakukaitori.com/)に導入されました。従来のSOY Inquiryでの買取依頼フォームに加え、SOY Shopの顧客管理機能と連携し、買取依頼の一元管理を実現。管理画面には専用の買取管理ページが設けられ、SOY Inquiryからの申込情報と連携。顧客はマイページから査定手続き、身分証登録、問い合わせ、査定額承認などが行えます。運営側は手続き状況変更、状況に応じたメール送信、査定結果アップロード、集荷伝票自動作成が可能。顧客情報はSOY Shopの顧客データベースと連携し、2回目以降の買取依頼を簡略化。管理画面のみ使用モードも活用しています。

 

阿波の青石

/** Geminiが自動生成した概要 **/
徳島県の吉野川周辺でよく見られる緑色の石「阿波の青石」は、緑泥片岩という種類の岩石です。鳴門インターチェンジ付近には、扁平な緑泥片岩が重なった美しい石碑や、大鳴門橋の石碑があります。大鳴門橋の石碑は、岩を割って研磨したもので、波打つ模様が特徴的です。この模様は、プレートの沈み込みによる圧力の影響と考えられます。緑泥片岩は加工しやすいため、古墳時代から石室などに使われてきました。 ちなみに、緑泥片岩は「く溶性苦土と緑泥石」の記事にも関連しています。

 

大歩危の三名含礫片岩

/** Geminiが自動生成した概要 **/
著者は高知からの帰路、車窓から大歩危の鮮やかな緑色の岩に気づき、三波川変成帯の緑泥岩等と関連付け、秀品率への影響に興味を持った。現地では、薄く押しつぶされた片岩を多数確認し、プレートの圧力の強さを実感。目的は徳島県指定天然記念物の三名含礫片岩を見ることで、礫岩が高圧変成作用で扁平化した様子、うっすら緑色の岩に含まれる緑色の扁平な石を確認した。大歩危での観察は複数回に渡り報告される予定。

 

SOY Shopで商品毎パーツモジュール選択読み込みプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページで商品ごとに異なる定型文を表示するプラグインが開発されました。 通常、プラグインで定型文を設定するところを、このプラグインはパーツモジュール内で他のパーツモジュールを呼び出すことで実現しています。商品情報に設定したモジュールIDに対応するパーツモジュールを`shop:module="common.fixed_form_module"`で呼び出すと、商品に応じた定型文が表示されます。HTMLだけでなくPHPのモジュールも使用可能なので、動的な表示にも対応できます。このプラグインを含むパッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで顧客宛メールの送信を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopに顧客宛メール送信機能が追加されました。従来は注文関連の連絡のみでしたが、今回のアップデートで任意の用件でメールを送信できるようになりました。これは、別途追加されたマイページお問い合わせフォームへの返信機能を補完するものです。顧客はフォームから問い合わせ、管理者は今回追加された機能で返信できます。これにより、マイページ上での円滑な顧客対応が可能になります。Bootstrapテンプレート利用時、お問い合わせフォームと今回のメール機能で、問い合わせから返信までをマイページ内で完結できます。最新版はsaitodev.coからダウンロード可能です。

 

粘土鉱物が出来る場所、続成作用

/** Geminiが自動生成した概要 **/
この記事では、粘土鉱物の生成過程、特に続成作用に着目しています。海底で風化した鉱物は海底に堆積し、海のプレートの移動に伴って海溝付近で圧力を受けることで続成作用が起こります。この作用により、堆積物中の水分が反応に関与したり、熱水変質が起こったりすることで、スメクタイト、緑泥石、イライト、混合層鉱物といった2:1型の粘土鉱物が生成されます。これらの粘土鉱物は粘土鉱物系の肥料の成分として重要であり、この記事は肥料検討に必要な知識を提供することを目的としています。海底風化は陸上風化とは異なり、海水中のミネラルイオンや硫酸イオンが関与し、隆起後の風化にも影響を与えます。

 

石灰岩の成り立ちから石灰性暗赤色土を考える

/** Geminiが自動生成した概要 **/
石灰性暗赤色土を理解するために、石灰岩の成り立ちから考察している。石灰岩はサンゴ礁の遺骸が堆積して形成されるが、海底のプレートテクトニクスによる地層の堆積順序を踏まえると、玄武岩質の火成岩層の上に形成される。滋賀県醒ヶ井宿や山口県秋吉台など、石灰岩地域周辺に玄武岩が存在することはこの堆積順序と一致する。つまり、石灰性暗赤色土は石灰岩だけでなく、周辺の玄武岩の影響も受けていると考えられる。玄武岩の影響は土壌の赤色や粘土質を説明する要素となる。暗赤色土に見られる色の違い(赤~黄)は玄武岩質成分の量の差と推測できる。

 

大陸の暗赤色土での栽培を考える

/** Geminiが自動生成した概要 **/
中国西部の赤色粘土質の土壌で、石灰過剰という分析結果から、石灰性暗赤色土での栽培について考察されている。石灰岩の風化によって生成されるこの土壌は、日本では珍しく、大陸で多く見られる。石灰岩は炭酸カルシウムが主成分で、pH調整に用いる石灰質肥料と同じ成分だが、過剰施用は有害となる。醒ヶ井宿の居醒の清水のような石灰岩地域での知見を活かし、中国の土壌で多様な作物を育てる方法を探る。具体的には、石灰岩土壌の性質を理解し、適切な作物選択、土壌改良、水管理などを検討する必要がある。

 

SOY Shopで注文キャンセルメール追加プラグインを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文キャンセル時、自動/手動でキャンセルメールを送信するプラグインが追加されました。メールテンプレートは既存のプラグインで作成可能ですが、新プラグインでは商品毎にメールアドレスを設定でき、キャンセル時に該当商品があれば指定アドレスにも送信されます。商品毎メールアドレス追加プラグインと併用すれば、購入時とキャンセル時に指定アドレスへ自動送信が可能になり、代理店販売サイトで特に役立ちます。対応パッケージはsaitodev.co/soycms/soyshop/ からダウンロードできます。

 

SOY Shopの納品書等で軽減税率の区分記載を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの納品書に軽減税率商品の区分記載機能が追加されました。従来の「印刷用納品書作成プラグイン」を改修し、軽減税率対象商品と標準税率商品が混在する注文において、各商品の税率区分を自動で明記するようになりました。現在はdefaultテンプレートのみ対応しています。新規プラグイン開発ではなく既存機能の改修による対応で、https://saitodev.co/soycms/soyshop/からダウンロード可能なパッケージに含まれています。詳細な設定方法は既存の納品書作成チュートリアルを参照ください。

 

篠山川の恐竜化石発掘周辺で観察できるもの1

/** Geminiが自動生成した概要 **/
丹波竜発見地周辺の川代渓谷では、川の浸食作用でできた地形や地質を観察できる。渓谷の両岸には、斜めに傾いた地層や逆断層が露出し、過去の地震活動の痕跡を示している。また、川床には小石の回転で形成された甌穴(ポットホール)が見られ、水面付近だけでなく高い位置にも存在する。これらの特徴的な地形は、イザナギプレートの活動とも関連していると考えられるが、詳細は不明。記事では、もう一つ感動的な発見についても触れられており、次回に紹介される予定。

 

SOY Shopで商品毎にメール文面に挿入できる定型文のプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品毎にメール文面に定型文を挿入できるプラグインが開発されました。特定商品の注文時にのみ必要な情報を伝えるため、ワインの管理方法など、商品に応じた定型文をメールに自動挿入できます。プラグイン設定画面で定型文を作成し、商品登録時に選択することで、注文受付メールに反映されます。これにより、不要な情報を含めずに商品固有の注意点を伝えられます。現在は注文受付メールのみ対応ですが、今後の要望に応じて対応範囲を拡大する可能性があります。プラグインはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopでキャンセルが頻繁に発生する事業向けの予約アプリを開発しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能を活用し、キャンセル発生頻度の高い就学前児童向けWebサービスの予約カレンダーを開発。Googleアカウントログイン機能、仮登録による会員限定アクセス制限、運営者による本登録承認フローを実装。スマホで空き状況確認・予約を簡素化し、クリック操作で予約完了までスムーズな導線を構築。Bootstrapテンプレートのカスタマイズにより操作性を向上。兄弟利用を想定した予約時情報入力機能も搭載。キャンセル発生時の迅速な空き状況更新にも対応。

 

SOY ShopでBootstrapの4系のカートとマイページを追加しました

/** Geminiが自動生成した概要 **/
SOY ShopにBootstrap 4ベースのカート・マイページテンプレートが追加されました。レスポンシブ対応はもちろん、予約カレンダー連携機能も強化されています。仕様の見直しにより、簡易予約カレンダープラグインとの連携で便利な機能が利用可能になりました。使用方法の詳細はプラグインページをご覧ください。ダウンロードはsaitodev.co/soycms/soyshop/から可能です。

 

高槻の原大橋付近のメランジュ

/** Geminiが自動生成した概要 **/
大阪に引っ越してきた著者は、大阪市立自然史博物館の「大阪の地質 見どころガイド」を参考に、高槻の原大橋付近を訪れた。そこは超丹波帯・丹波帯のメランジュとして紹介されている。丹波帯は大阪北摂や京都、滋賀を含む地域で、超丹波帯はその上位にあたる。 原大橋付近では、泥岩の中に砂岩のブロックが混在する様子が観察でき、これはジュラ紀に形成されたメランジュと考えられている。 著者は以前訪れた摂津峡と本山寺周辺も、ガイドブックで紹介された地質スポットであることに触れている。

 

SOY InquiryでjQuery UIのDatepickerを利用してみる

/** Geminiが自動生成した概要 **/
SOY Inquiryで日付入力にカレンダー形式を追加するには、jQuery UIのDatepickerを利用します。まず、フォーム設置ページのテンプレートにjQueryとjQuery UI、日本語化ファイルのCDNを読み込むscriptタグを追加します。次に、SOY Inquiryで日付のカラムを作成し、属性に`id="datepicker"`を設定します。これにより、フォームにフォーカスを当てるとカレンダーが表示され、日付を選択できるようになります。Datepickerは日付選択の制限等、高度な設定も可能です。詳細はjQuery UIの公式ドキュメントを参照ください。

 

SOY Inquiryの自動送信メールの多言語化

/** Geminiが自動生成した概要 **/
SOY Inquiryで多言語サイトを構築する際、問い合わせ番号や日時が日本語で送信される問題を解決する方法です。mail.user.phpをカスタマイズし、メール本文中の「問い合わせ番号」「問い合わせ日時」を各言語に置換します。コード例では、explodeで本文を分割し、strposで該当箇所を特定、str_replaceで置換後、implodeで再構築しています。この方法で各言語用のフォームを用意すれば、多言語対応の問い合わせメールを実現できます。

 

SOY Inquiryで連番カラムを追加しました

/** Geminiが自動生成した概要 **/
SOY Inquiryにフォーム毎の通し番号を自動生成する機能が追加されました。この機能は、送信完了画面、自動返信メール、管理画面の受信一覧に表示可能です。通し番号は連番カラムで管理され、非表示設定も可能です。管理画面で連番カラムをフォームの最初に配置すれば、受信一覧での表示も実現できます。「次回お問い合わせ時に生成する番号」を設定することで、番号を飛ばすことも可能です。機能追加版はサイトからダウンロードできます。ただし、自作デザインのフォームを使用する場合は、PHPファイルの修正が必要です。修正方法の解説ページも用意されていますが、難しい場合はサイトから問い合わせも可能です。

 

SOY CMSでカノニカルURL挿入プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSで現在開いているURLを出力する`cms:id="page_link"`タグが追加されました。これにより、OGPタグなどに動的なURLを挿入できます。また、カノニカルURL挿入プラグインも作成されました。サイト内に同じ内容のページがある場合、canonicalメタタグで重複を回避し、SEOペナルティを防ぎます。プラグインは</head>タグの上に`<link rel="canonical" href="ページURL">`を自動挿入します。ブログ記事では、エイリアス付きURLがカノニカルURLとして使用されます。新機能はhttps://saitodev.co/soycms/からダウンロードできます。

 

SOY Inqiuryでお問い合わせ内容をコンパクトにする

/** Geminiが自動生成した概要 **/
SOY Inquiryで長い項目名によってメール表示が崩れる問題を解決する方法です。フォームテンプレートディレクトリ(例:default)にmail.admin.phpを作成し、PHPでメール内容を整形します。 提供されたコードは、メール本文の各行を処理し、コロン以降の空白文字を削除して出力します。これにより、項目名と入力値の間のスペースが詰まり、コンパクトな表示になります。管理者宛メールのみ変更され、公開側の表示は変わりません。

 

カスタムフィールドアドバンスドの記事フィールドの使いどころ

/** Geminiが自動生成した概要 **/
SOY CMSのGravatar連携プラグインは、ブログ投稿者のプロフィール画像を簡単に表示できるツールです。Gravatarに登録されたメールアドレスと連携し、自動的に画像を取得・表示します。プラグイン設定画面でGravatarの画像サイズを指定でき、記事詳細ページやブログのサイドバーなど、任意の場所に設置可能です。 記事投稿時に投稿者のメールアドレスを入力するだけで、Gravatar画像が反映されるため、ユーザーの手間を省き、サイトの見栄えを向上させます。 画像がない場合はデフォルト画像が表示され、Gravatar未登録ユーザーにも対応しています。このプラグインで、手軽にブログに個性を加えることができます。

 

SOY Shopで管理画面のみ使用モードを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopは、9年の歴史の中で機能強化を重ね、ネットショップだけでなく業務アプリとしての需要が高まっている。今回、業務アプリ利用時のサンプルデータ削除の手間を省くため、「管理画面のみ使用モード」が追加された。サイト作成時にチェックを入れるだけで、サンプルデータなしで管理画面を利用できる。 業務アプリとして利用する場合はMySQLデータベース推奨。併せて、管理画面の使い始めのガイダンスも追加された。このアップデートにより、在庫管理や顧客管理など、SOY Shopを業務システム基盤として活用する際の初期設定が簡素化される。ダウンロードは公式サイトから可能。

 

SOY CMSでBootstrap4で作成したブログページ用のページ雛形を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSにBootstrap4ベースのブログページ用テンプレートを追加しました。ダウンロードURL(https://github.com/inunosinsi/soycms/raw/master/cms/common/logic/admin/Site/TemplatePack/bootstrap4.zip)からテンプレートzipファイルをダウンロードし、管理画面からアップロード・インストールすることで利用可能です。手順は添付画像を参照ください。新規サイト作成時にはこのテンプレートがデフォルトで含まれるようになりました。同梱パッケージはsaitodev.co/soycms/ からダウンロードできます。

 

SOY Shopで業種に合わせて高度なメール種別を追加してみる

/** Geminiが自動生成した概要 **/
登山用品レンタルサイト「やまどうぐレンタル屋」では、返却完了メールにレビュー割引適用者への催促文面を自動挿入する機能を追加した。まず「メール送信種類追加プラグイン」で「返却完了メール」を作成。次に、`soyshop.order.mail`拡張ポイントを利用したプラグイン`notify_review_discount`を開発。このプラグインの`getMailBody`メソッドで催促文面を返し、`SOYShopPlugin::extension`の第一引数に`soyshop.order.mail.henkyaku` (henkyakuはメールID) を指定することで、返却完了メールへの挿入を実現した。この手法は特定メール種別へのカスタマイズを可能にする。他にも隠れた拡張ポイントが存在し、サイトの特殊な要件に対応できる可能性があるため、必要に応じて開発元に相談するのが良い。

 

SOY Appの管理画面のUIのレスポンシブウェブデザイン対応

/** Geminiが自動生成した概要 **/
SOY CMS ASP版運営プラグインに続き、SOY AppのUIをSOY CMS 3系のレスポンシブウェブデザインに合わせました。これにより、SOY Shopサイトの新規作成画面、SOY Mail、SOY InquiryのUIがBootstrapベースのレスポンシブデザインで表示されます。SOY Appのバージョンアップ前にSOY CMSのバージョンアップが必要です。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

SOY CMSのブログで年毎に月別アーカイブのリンクを出力するブログブロックを追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログで、長年の運用による月別アーカイブの増加でデザインが崩れる問題を解決するブログブロックが追加されました。従来の縦に長いアーカイブ表示を、年毎に折りたたみ可能な形式で出力します。 新しいブロック`b_block:id="archive_every_year"`は、`cms:id="year"`で年を、`cms:id="archive"`で各月のアーカイブリンクを生成し、年毎に異なるIDを割り当てます。これにより、jQuery等で年毎の折りたたみ表示を実装可能になります。表示例では2018年、2017年、2016年と年ごとに月別アーカイブをまとめて表示しています。新機能はパッケージに含まれ、サイト(https://saitodev.co/soycms/)からダウンロードできます。ただし、古いバージョンからのアップデートでは、ブログページ毎のブロック使用設定でarchive_every_yearを有効にする必要があります。

 

あの山に海底火山の跡はあるか?

/** Geminiが自動生成した概要 **/
植物の生育には二価鉄が重要で、安山岩・玄武岩質火山由来の土壌が適している。しかし、海底火山の痕跡がある山周辺の土壌も生育に良い可能性がある。海底火山はプレート移動で隆起し、玄武岩質になるため鉄分が豊富。高槻市の山で実例を確認。水源に海底火山の地質がある土地は特に恵まれている。三波川変成岩帯も鉄分に富む。徳島のある地域は海底火山由来の地質で、土地の優位性を裏付けている。地質と栽培の関係を理解するため、GPSで地質を確認できるツール「Soil & Geo Logger」を作成。周辺の地形や地質への意識で、新たな発見があるかもしれない。

 

P/T境界の露頭からわかること

/** Geminiが自動生成した概要 **/
京都府福知山市のP/T境界露頭は、ペルム紀末期と三畳紀初期の地層が連続しており、地球史上最大の大量絶滅を示唆する貴重な場所です。下部の灰色の地層からは古生代型の放散虫、上部の黒色の地層からは中生代のコノドントの化石が発見され、生物相の劇的な変化が確認できます。 海生生物の化石が内陸部で見つかるのは、プレート移動により海洋で形成された地層が運ばれてきたためです。大量絶滅の原因として、海底のメタンハイドレートの溶脱による海洋無酸素化が有力視されています。 これは、現代のメタンハイドレート採掘やCO2増加による環境問題と類似しており、大気中のCO2を土壌や炭酸塩に固定する技術の重要性を示唆しています。

 

メタンハイドレートと火山活動

/** Geminiが自動生成した概要 **/
ペルム紀末から三畳紀初期にかけて、海洋無酸素事変と呼ばれる現象が起きた。石炭紀に大気中の酸素濃度が上昇したが、リグニン分解生物の出現で酸素濃度は低下したものの、石炭の埋蔵により地球全体では酸素は多かったはずだった。しかし、活発な火山活動により、メタンハイドレートを含む堆積岩が溶解し、大量の炭素が放出。地球全体で酸素濃度が急減し、二酸化炭素濃度が急増した。結果、大型単弓類は絶滅したが、酸素利用効率の良い小型爬虫類は生き延び、後の恐竜繁栄に繋がる可能性を秘めていた。この火山活動とメタンハイドレートの関係は、日本科学未来館のdeep scienceでも解説されている。

 

SOY2HTMLのIgnoreプラグインを使ってみる

/** Geminiが自動生成した概要 **/
SOY2HTMLのIgnoreプラグインの使い方を解説。index.phpに`SOY2HTMLPlugin::addPlugin("ignore", "IgnorePlugin");`を追加することで、HTMLテンプレート内で`<!-- soy:ignore="***" --><!-- /soy:ignore="***" -->`で囲まれた部分がSOY2HTMLによるレンダリング時に無視される。ブラウザで直接HTMLファイルを開いた場合は、無視された部分がそのまま表示される。これにより、SOY CMSに組み込む前のテンプレートファイルにおいて、デザイナ向けの説明文などを記述し、CMS組み込み時には表示させないといった使い方ができる。

 

SOY CMSを介さずにSOY2HTMLを使ってみる

/** Geminiが自動生成した概要 **/
SOY CMSを使わずにそのテンプレートエンジンであるSOY2HTMLのみを利用する方法を解説。ルートディレクトリにindex.php、webappディレクトリ下に必要なファイルを設置する構成で、index.phpでSOY2ライブラリを読み込み、SOY2HTMLの設定を行う。HTMLファイル(TopPage.html)と対応するPHPファイル(TopPage.class.php)を作成し、soy:idを使った表示内容の変更例を示している。PHPファイルではWebPageクラスを継承し、コンストラクタでHTMLファイルを読み込み、addLabelでsoy:idに対応する値を設定することで、HTMLのsoy:id部分がPHPで指定した値に置き換わって表示される。

 

SOY CMSのブログブロックの使用を制限して、ブログページの高速化

/** Geminiが自動生成した概要 **/
Googleは常時SSL化をランキング要因の一つとしています。つまり、サイトがHTTPSを使用しているかどうかは、検索結果の順位に影響を与えます。しかし、その影響は軽微であり、他のSEO対策と比べると優先度は低いと言えるでしょう。 常時SSL化の主なメリットはセキュリティの向上です。ユーザーの情報を暗号化することで、盗聴や改ざんのリスクを軽減できます。これはユーザーの信頼感向上に繋がり、間接的にSEO効果に繋がる可能性があります。 また、常時SSL化によってサイトの表示速度が向上する可能性も指摘されています。Googleはサイトの表示速度もランキング要因としているため、結果的にSEOに良い影響を与える可能性があります。 しかし、常時SSL化自体が劇的なSEO効果をもたらすわけではないので、他の重要なSEO対策を疎かにしてまで優先するべきではありません。コンテンツの質やユーザーエクスペリエンスの向上など、他のSEO対策と並行して行うことが重要です。

 

冒険の身支度は美大のカフェで

/** Geminiが自動生成した概要 **/
京都造形芸術大学内にあるカフェ・ヴェルディには、大学に寄贈された本が置かれたスペースがある。美術大学らしくない、地質学や宇宙関連の本が多く、中には特定の土地でしか買えないような珍しい本も。筆者は室戸ジオパーク訪問前にここで予習することを決意。カフェの存在だけでなく、美術創作の多様な着想源を示す興味深いエピソードとなっている。

 

SOY CMSの開発秘話後編

/** Geminiが自動生成した概要 **/
オープンソースのネットショップパッケージは自由度が高い反面、軌道に乗るとカスタマイズの蓄積によりバージョンアップが困難になる。独自改修した部分を把握し続ける必要があり、アップデートコストが増大。さらに、開発者のスキル不足や多忙化で保守が滞るリスクも。結果として、セキュリティ脆弱性や機能追加の遅延といった問題に直面する。自由と引き換えに保守コストが増大し、最新版への追従が難しくなるジレンマが生まれる。

 

有馬温泉名物の炭酸せんべい

/** Geminiが自動生成した概要 **/
有馬温泉名物の炭酸せんべいは、小麦粉、砂糖、でんぷんなどに、温泉の炭酸冷泉を加えて焼いたもの。この炭酸冷泉は、銀泉と呼ばれる無色透明な冷泉で、単純二酸化炭素冷鉱泉に分類される。 湧出口付近では水路に茶色の沈着が見られることから、少量の鉄分も含んでいる。有馬温泉は化石海水型のため、炭酸冷泉といえども塩分濃度は高い。炭酸ガスの由来は、海洋プレートの沈み込みに伴い、石灰岩層が熱水で溶解したものと考えられている。炭酸せんべいは、この塩分と炭酸ガス、そして微量の鉄分を含んだ冷泉を用いて作られるため、独特の風味を持つと推測される。

 

化石海水型の温泉

/** Geminiが自動生成した概要 **/
有馬温泉は、プレートテクトニクスにより海洋プレートが陸のプレート下に沈み込む際に、海水も一緒に地下深くへ引きずり込まれることで形成される「化石海水型」温泉。地下深くで熱せられた海水は「亜臨界」流体となり、石英流紋岩脈に沿って上昇し、様々な成分を溶かし込みながら湧出する。海から遠い山間部に高濃度の塩分を含む温泉が存在するのは、この壮大な地質学的メカニズムによるもので、「化石」の名は、それが非常に長い時間をかけて形成されたことを示唆している。

 

従来の温泉の理論では説明できなかった有馬温泉

/** Geminiが自動生成した概要 **/
温泉の成分が植物の生育に影響を与える可能性に着目し、温泉の成因を探る筆者は、従来の火山性・非火山性(深層地下水型)の温泉理論では、有馬温泉のような高塩濃度温泉を説明できないことに言及する。 地熱による地下鉱物の溶解や放射性鉱物の崩壊熱など、温泉の熱源と成分の関係に触れつつ、飛騨小坂の炭酸冷泉や良質な米との関連性を考察する。そして、既存の理論では説明がつかない有馬温泉の成因解明に、プレートテクトニクス理論の登場が大きな役割を果たすことを示唆し、更なる探求へと繋げる。

 

SOY Shopで注文時の合計金額を固定し、経費や粗利を確認できる機能を追加してみた

/** Geminiが自動生成した概要 **/
SOY Shopを在庫管理業務アプリ化するため、注文合計金額を固定し経費と粗利を確認できるプラグインを開発。施工費20万円の案件で、部品代金合計に加え、人件費などの経費を入力し、粗利を自動計算。合計金額は施工費で固定されるため、利益管理が容易に。注文複製プラグインと組み合わせることで、案件ごとの部品在庫管理が可能になり、見積書・納品書出力機能と連携すれば業務効率化に貢献。この機能は物販サイトには直接関係ないものの、SOY Shopの基本機能を拡張しており、間接的に物販サイト運営にもプラスの効果をもたらす。

 

飛騨小坂の炭酸冷泉

/** Geminiが自動生成した概要 **/
飛騨小坂の炭酸冷泉は、御嶽山の噴火による溶岩流でできた場所に湧き、高い炭酸含有量を誇る飲用可能な鉱泉です。サイダーのような発泡と、鉄由来の独特の血のような味が特徴で、慢性消化器病などに効能があります。成分は含鉄(Ⅱ)-ナトリウム-炭酸水素塩、塩化物冷鉱泉。火山由来の二酸化炭素と重炭酸塩を多く含み、重曹の成分も含まれています。湧水には鉄が多く含まれ、空気に触れて酸化し、周辺は赤い川となっています。

 

火山のあるところと再び京都夜久野高原の宝山に目を向けてみると

/** Geminiが自動生成した概要 **/
日本の火山の形成は、プレートの沈み込みに関係している。海溝からの距離に規則性があり、南海トラフのような海溝に沿って火山が分布する。兵庫、鳥取、島根などにも火山が存在し、京都夜久野高原の宝山も南海トラフの影響を受けた火山と考えられる。

 

再び四国徳島の三波川帯へと目を向けてみると

/** Geminiが自動生成した概要 **/
四国徳島で見られる緑色の石は、三波川変成帯に由来する。これは、かつてユーラシア大陸端に存在した日本列島に、海のプレートが沈み込む際に玄武岩質の岩体が潜り込み、高圧で変成、隆起したものだ。同様のメカニズムで秩父帯、四万十帯も形成され、日本列島の大陸からの分離後も、これらの地質帯は関東から九州へ横断して存在する。徳島の土壌の豊かさも、玄武岩質変成岩由来の粘土鉱物の豊富さに起因する可能性がある。地体構造を理解することで、地質図の「付加体」のブラックボックスが解消される。

 

日本列島がまだ大陸内にあった頃に形成された中央構造線

/** Geminiが自動生成した概要 **/
約1億年前、ユーラシア大陸の端に位置していた日本列島で、ユーラシアプレートと太平洋プレートの衝突により中央構造線が形成された。太平洋プレートは玄武岩、石灰岩、チャートを大陸側に運び、これらが変成・堆積して三波川帯、秩父帯、四万十帯を形成した。中央構造線は、付加体が大陸プレートに載り隆起することで右下方向に伸びている。 その後、日本列島は大陸から分離し、更に後にフォッサマグナが形成された。中央構造線周辺の地形は、過去の地殻変動を知る上で重要な手がかりとなっている。

 

大鹿村の中央構造線安康露頭

/** Geminiが自動生成した概要 **/
大鹿村で中央構造線の露頭を観察し、ユーラシアプレートとフィリピン プレートの境界を目の当たりにした。内帯(北側)は花崗岩の破砕岩、外帯(南側)は緑色岩(付加体)の破砕岩で、全く異なる地質だった。大鹿村では中央構造線は西南日本内帯と西南日本外帯を分ける。糸魚川-静岡構造線と中央構造線の関係、伊豆半島の影響についても触れ、過去のフォッサマグナや城ヶ島の地質に関する考察の誤りを訂正した。フォッサマグナの付加体と岐阜の最古の石は形成時期が異なるため、関連性がないことがわかった。今回の観察は、徳島県吉野川市で見た緑色岩の理解にも役立った。

 

京丹波の質志鍾乳洞

/** Geminiが自動生成した概要 **/
鉄鉱石採掘跡の近くにある鍾乳洞を探検した記録。丹波地方の鐘乳洞は、かつて製鉄所で使われた鉄鉱石の産地付近に位置している。鉄鉱石は、鍾乳洞と同じく石灰岩地帯に多く存在する。鍾乳洞形成には、石灰岩を溶かす水と、空洞を作る地殻変動が必要となる。丹波地方は、地殻変動が活発な地域で、多くの鍾乳洞が存在する理由もそこにある。探検した鍾乳洞は、急斜面や狭い通路があり、内部は美しく、自然の神秘を感じさせる空間だった。鍾乳石や石筍などの鍾乳洞特有の景観も楽しめた。鉄鉱石と鍾乳洞という、一見無関係に見えるものが、地質学的な繋がりを持つことを示す興味深い探検だった。

 

ヒスイ輝石のあるところ

/** Geminiが自動生成した概要 **/
糸魚川で発見されたヒスイ輝石は、プレート沈み込み帯の低温高圧下で生成される。大陸プレートと海洋プレートの衝突地点付近の付加体最下層で、曹長石を原料に生成された後、蛇紋岩に捕獲され地表付近まで上昇してきた。そのため、ヒスイは糸魚川-静岡構造線ではなく、その西側の付加体エリアで発見される。小滝川上流の明星山麓も蛇紋岩地帯であり、この生成過程と合致する。しかし、同じ蛇紋岩地帯である大江山ではヒスイ発見の報告がないため、更なる調査が必要である。

 

ヒスイ輝石発見の地、小滝川ヒスイ峡

/** Geminiが自動生成した概要 **/
新潟県糸魚川市にある小滝川ヒスイ峡は、日本でヒスイが発見された場所として有名です。フォッサマグナと糸魚川-静岡構造線上に位置し、プレートの衝突による特殊な地質条件がヒスイの生成を促しました。明星山という石灰岩の山の下を流れる小滝川で発見され、近隣住民はまな板などに使っていたという逸話も残っています。ヒスイは低温高圧の変成作用で生成される鉱物で、古墳時代の勾玉の原料でもありました。糸魚川ジオパークのジオサイトの一つとして、地質学的にも貴重な場所となっています。

 

フォッサマグナから考える日本の農業

/** Geminiが自動生成した概要 **/
フォッサマグナ西側の土壌は、東側と比べて排水性・保水性が悪く、栽培に苦労が多い。西日本で研修を受けた農家が東日本で成功しやすい一方、逆の場合は苦労する傾向がある。土壌の硬さや水はけの悪さから、西日本の畑ではトラクターの刃の交換頻度も高く、NPK肥料以前の土壌改良が重要となる。関東中心の栽培研究では、西日本の土壌環境が考慮されていないため、排水性・保水性に着目した西日本主体の研究が必要だ。もし関西で農学が盛んであれば、NPKではなく排水性・保水性を重視した栽培体系が確立していた可能性があり、東西の土壌環境の違いを理解した研究が日本の農業に革新をもたらすと筆者は主張する。

 

日本列島誕生。フォッサマグナ

/** Geminiが自動生成した概要 **/
日本列島は、ユーラシア大陸東端がプレートの衝突によって分離、二つの島となり、その後再び衝突して形成された。この衝突で生まれた巨大な溝「フォッサマグナ」は、激しい火山活動によって火山灰で埋め立てられ、特徴的な地質と土壌を生み出した。フォッサマグナ西側の西日本は付加体によって隆起し、岐阜の最古の石や滋賀・奈良の石灰岩地形、京都のチャートなどが見られる。一方、フォッサマグナ内部は火山灰質の地層が6000m以上堆積し、長野県栄村の深い腐植層を持つ黒ボク土もこの成り立ちと関連する。西日本と東日本では地質・土壌が大きく異なるため、フォッサマグナは日本列島の形成を理解する上で重要な地域と言える。

 

日本列島誕生。大陸からの分離

/** Geminiが自動生成した概要 **/
約3000万年前、ユーラシア大陸東端にあった日本列島は、大陸プレートと海洋プレートの衝突により分離した。分離した二つの島は回転しながら再び結合し、その結合部分がフォッサマグナとなった。鳥取の浦富海岸の花崗岩や岐阜県七宗町の日本最古の石の存在は、この大陸からの分離とプレートの沈み込みを裏付ける証拠となっている。七宗町はフォッサマグナの西側に位置し、今後の議論に繋がる。

 

フォッサマグナ 糸魚川-静岡構造線

/** Geminiが自動生成した概要 **/
フォッサマグナは、日本の本州中央部を南北に走る大きな地溝帯で、ナウマン博士によって発見された。糸魚川-静岡構造線はその西縁を画し、ユーラシアプレートと北アメリカプレートの境界にあたる。フォッサマグナパークではこの断層が観察でき、西側の変成したはんれい岩と東側の火山岩である安山岩が地質の違いを明確に示している。フォッサマグナは火山由来の堆積物で埋められており、この地質学的特徴は富士山の西側を境界として土壌や地質に大きな変化をもたらし、人々の生活や農業に影響を与えている。

 

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"`内でも同様に利用可能です。

 

隆起して露頭した地層

/** Geminiが自動生成した概要 **/
海底で水平に堆積した地層は、プレートの衝突により隆起し、傾斜する。陸のプレートに押し上げられた堆積物は「付加体」と呼ばれ、地層の新しい側が押している海のプレートの方向を向く。城ヶ島では、南側のフィリピン海プレート(海)が北側の北アメリカプレート(陸)に沈み込むため、南側の地層が新しく、北側に傾斜している。写真からも、地層の南側が上向き、北側が下向きになっている様子が確認でき、付加体の端であることがわかる。

 

城ヶ島の砂岩凝灰岩互層

/** Geminiが自動生成した概要 **/
城ヶ島はフィリピン海プレートと北アメリカプレートの境界、相模トラフ上に位置する隆起した島。火山活動と地震の影響を受けており、特徴的な砂岩凝灰岩互層が見られる。これは海底で砂の堆積と火山灰の堆積が繰り返されて形成された層が、地震の影響で隆起し、傾斜した状態で露出しているもの。しかし、なぜ垂直方向に傾斜しているのかは記事内で説明されておらず、更なる調査が必要とされている。

 

SOY CMSで常時SSL化対応後の各記事内の画像のパスの対応

/** Geminiが自動生成した概要 **/
SOY CMSの常時SSL化後、記事内の画像パスがhttpのままとなり、エラーが発生する問題を解決するプラグインが作成されました。記事内の画像はhttpで始まる絶対パスで挿入されるため、手動またはデータベース操作で修正が必要ですが、このプラグインを使えば記事内の画像パスを一括でスラッシュから始まる絶対パス(例:/site/files/hoge.jpg)に変換でき、常時SSLに対応できます。プラグイン名は「画像URL変換プラグイン」で、saitodev.co/soycms/からダウンロード可能です。

 

天文館の建物での石材

/** Geminiが自動生成した概要 **/
鹿児島天文館のホテルで、外壁に使われている石材が桜島の溶岩に似ていることに気づいた。以前に、建材は運搬の都合上、近隣で採掘されたものを使うことが多いと知っていたので、桜島が近いこの場所で、桜島の岩石が使われている可能性が高いと思った。また、ホテル内には桜島の凝灰岩を使ったオブジェも多数あり、この外壁の石材も地元で採掘されたものだろうと推測した。

 

SOY ShopでSOY CMS連携プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSとSOY Shopの連携強化を図るプラグインが開発されました。従来、SOY CMSのブログパーツは標準ページでは利用できませんでしたが、最近のアップデートで可能になりました。今回さらに、SOY Shop側でSOY CMSの`cms:module`を利用できるプラグインが追加され、相互運用性が向上しました。これにより、ショップページでブログパーツや自作モジュールを容易に表示できるようになります。 この機能を利用するには、SOY CMSとSOY Shop両方のバージョンアップが必要です。 有料ブログ、販促ブログ付きネットショップ、カタログサイト構築など、多様な連携事例も紹介されています。

 

ヤンゴンで長粒米を食す

/** Geminiが自動生成した概要 **/
ヤンゴンで長粒米を食べた著者は、日本米との味の違いに驚き、その原因を考察する。パサパサした食感の長粒米は単体では美味しくなく、チャーハンなどに向いている。日本米との味の違いは品種だけでなく、土壌や水質も影響すると推測。蛇紋岩米や小滝米の例を挙げ、日本の複雑な地形が生む水質の多様性が米の味に影響を与えているのではないかと考察。過去の経験から、長粒米でも栽培地によって味が異なることを実感し、今後の出会いに期待を寄せている。

 

ボーキサイトは土になるのか?

/** Geminiが自動生成した概要 **/
ボーキサイトは、酸化アルミニウムを主成分とする鉱物で、ラテライトという土壌が岩化したものである。ギブス石など複数の鉱物の混合物であり、水酸化アルミニウムを含むため、土壌pHによっては水に溶け出す。溶出したアルミニウムは植物の生育に悪影響を与えるが、土壌中の珪酸と結合し白色粘土となる。ヤンゴンの赤い土に白いものが多く見られたのは、ボーキサイト由来のアルミニウムと珪酸の反応による可能性がある。ボーキサイトの多い花崗岩地帯は宝石の産地となる一方、アルミニウム溶脱の影響で農業には適さない可能性がある。

 

大陸のプレートは花崗岩

/** Geminiが自動生成した概要 **/
ミャンマーの土壌ポテンシャルは、花崗岩に含まれるボーキサイトによるラテライト(紅土)形成の影響で低い。建築石材に茶色の花崗岩が多く見られ、これはボーキサイトを含むためと考えられる。ボーキサイトは酸化アルミニウムを主成分とし、風化するとラテライトとなる。ラテライトは農業に不向きな土壌として知られる。ミャンマーで真っ赤な土の畑が少ないのは、この土壌の栽培困難性によるものと推測される。地質図からもボーキサイトの存在が示唆されている。

 

三波川変成帯の岩々

/** Geminiが自動生成した概要 **/
この記事は、徳島の名水周辺の地質である三波川変成帯について解説しています。三波川変成帯は低温高圧型変成帯であり、これはプレートの沈み込みによって形成される広域変成岩の一種です。海洋プレートが陸のプレートの下に沈み込む際、高圧環境が生じ、海洋プレート上の堆積岩が変成岩へと変化します。三波川変成帯の岩石はこのような過程で形成されたとされています。ただし、単純なプレート沈み込みモデルでは説明できない複雑な形成過程があることも示唆されています。最後に、関連するスカルン鉱床の記事へのリンクが紹介されています。

 

SOY Shopでフォーマットなしの商品価格を表示する

/** Geminiが自動生成した概要 **/
SOY Shopで商品価格の数字をカンマ無しで表示したいという要望に応えるため、カンマなし商品価格表示プラグインを作成した。標準機能のcms:id出力ではPHPのnumber_format関数により価格にカンマが入ってしまうため、プラグインでnumber_format関数をかまさないcms:idを追加する。プラグイン有効化後、テンプレートを修正することでカンマなし価格が表示される。プラグイン導入により、不要なユーザーに余計な処理負荷をかけることなく要望に対応できる。対応版パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能。

 

SOY Shopでお届け予定日の自動計算の置換文字列を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの発送メールでお届け予定日を自動計算する機能が追加されました。これまでお届け予定日未指定の顧客へのメールは手動で日付を入力する必要がありましたが、注文増加に伴う対応困難を解消するため、発送日から設定日数を加算した日付を自動挿入できるようになりました。標準配送モジュールの設定画面で「お届け日(自動)」の置換文字列を使用する設定を行い、メールテンプレート編集画面で当該置換文字列を挿入することで、管理画面からのメール送信時に自動計算されたお届け予定日(Y-m-d形式)が挿入されます。最新パッケージはsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopで一つのページで同じshop:moduleを二回使用したい

/** Geminiが自動生成した概要 **/
SOY Shopで同じshop:module(例:パンくずナビゲーション)を一つのページで二回使用する方法。 1. `/soyshop/webapp/src/module/site/common/breadcrumb_navigation.php` をショップIDディレクトリ内の `.module/common/` にコピーする。 2. コピーしたファイルを複製し、`breadcrumb_navigation2.php` 等にリネームする。 3. `breadcrumb_navigation2.php` 内の関数名を `soyshop_breadcrumb_navigation2` に変更し、`soyshop_breadcrumb_navigation` 関数が存在しない場合に元の `breadcrumb_navigation.php` をインクルードして実行するように修正する。 これにより、`shop:module="common.breadcrumb_navigation"` と `shop:module="common.breadcrumb_navigation2"` の二つのモジュールタグで同じ機能を別々に表示できるようになる。

 

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

/** 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が自動生成した概要 **/
スパーク運動療育西京極スタジオ様のWebサイト制作では、SOY Shopを活用した予約システムが導入されました。これにより、保護者はサイト上で簡単に療育の予約を行うことが可能になり、スタジオ側の手間も軽減されました。サイトデザインは、子供たちの成長をイメージした明るい色使いと、スタジオの温かい雰囲気を伝える写真が特徴です。また、レスポンシブデザインを採用し、様々なデバイスで快適に閲覧できます。さらに、SEO対策も施され、検索エンジンからの集客向上も期待できます。ブログ機能も備え、スタジオの最新情報や療育に関する有益な情報を発信することで、保護者とのコミュニケーション強化にも繋がっています。このサイトは、SOY Shopの柔軟性と拡張性を活かした好例と言えるでしょう。

 

SOY Shopで注文と商品のタブの表示の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shop開発者は、顧客から多様なアプリ開発依頼を受けている。従来はSOY CMSのログイン機能を活用したフルスクラッチ開発で対応していたが、開発者自身へのフィードバックが少なく割高になるため、SOY Shopの機能を部分的に切り出してプラグイン化する方針に転換した。 今回、SOY Shop管理画面に注文と商品のタブ表示設定を追加。チェックを外すとタブが非表示になる。これは一見小さな変更だが、ユーザーにとって機能が多すぎると学習意欲を阻害したり、操作説明が煩雑になるため、必要な機能のみを表示させることでユーザビリティ向上に繋がる。 この修正はGitHub上のSOY Shopパッケージに反映されている。開発者は今後もSOY Shopの可能性を探るべく、管理画面の改善を進めていく。

 

SOY Shopでカートかマイページの機能を使用しない場合は404を返そう

/** Geminiが自動生成した概要 **/
SOY Shopでカートやマイページ機能を使用しない場合、404エラーを返す設定が可能になった。カート設定でカートIDを「none」にすることで、カートページへのアクセス時に404エラーが返される。マイページも同様に、マイページIDを「none」に設定することで404エラーを返すことができる。これにより、顧客管理のみを行う場合などに、不要な機能へのアクセスを制限できる。表示内容はテンプレート管理の「none」テンプレートで編集可能。この機能はGitHub上のパッケージに含まれている。

 

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 CMSとSOY Shopで会員制ブログを運営してみよう

/** Geminiが自動生成した概要 **/
SOY CMSはショップ系サイト開発に注力しているため、ブログ機能は弱いというイメージがあるが、ショップ特有のセキュリティ強化により、安全な会員制ブログ構築が可能になっている。方法は、SOY CMSとSOY Shopをそれぞれ顧客管理用とブログ投稿用に設置し、ブログ投稿サイトにSOY Shop連携プラグインとSOY Shopログインチェックプラグインを導入する。ログインチェックプラグインで顧客管理サイトを指定し、ブログ記事のテンプレートを編集。`cms:id="is_login"`でログイン時表示部分を、`cms:id="no_login"`で非ログイン時表示部分を囲むことで、閲覧制限を実現する。非ログイン時にはログインページへのリンクが表示され、ログイン後は制限されていたコンテンツが閲覧可能になる。この仕組みにSOY Mailを連携させれば、顧客情報に基づいたメルマガ配信も可能。HTMLのみで構築できるため、デザインの自由度やSEO対策も容易で、有料ブログや有料メルマガへの拡張も容易である。

 

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でメールテンプレートを追加できるプラグイン

/** Geminiが自動生成した概要 **/
SOY Shop用の「メール送信種類追加プラグイン」が開発されました。このプラグインは、管理画面から送信可能なメールテンプレートを自由に増やすことができます。注文詳細画面のメール送信項目に、任意のテンプレートを追加し、柔軟なメール送信が可能になります。 新機能として、メールテンプレート編集画面で注文詳細情報の出力を選択できるようになりました。また、「SOY Shopのメールビルダから出力される商品一覧に並び順設定を追加しました」で紹介されている並び順設定機能にも対応しています。さらに、伝票番号など、既存プラグインの情報もメール本文に挿入できるようになり、置換文字列も追加されました。プラグインパッケージはsaitodev.coからダウンロード可能です。

 

SOY CMSで新着情報をトップページに表示してみる

/** Geminiが自動生成した概要 **/
SOY CMSのブログでプレビュー用のページを作成する方法は、記事公開前に特定ユーザーだけに内容を確認させるためのものです。まず、ブログページとは別にプレビュー用の隠しページを作成し、ブログ記事と紐づけます。プレビューページのテンプレートには、ブログ記事の内容を表示するための記述を追加します。次に、ブログ記事編集画面にプレビューページへのリンクを追加します。このリンクは、特定の条件下でのみ表示されるように設定します。具体的には、記事の公開状態が非公開で、ログインしているユーザーがプレビュー権限を持っている場合にのみ表示させます。これにより、指定したユーザーだけがプレビューページにアクセスし、記事の内容を確認できるようになります。この方法を利用することで、公開前の記事を安全に確認し、修正を行うことができます。

 

SOY Shopでカートに一括で商品を入れてみる

/** Geminiが自動生成した概要 **/
SOY Shopでカートに複数商品を一括登録する方法。商品詳細ページのテンプレートに `<input type="hidden" name="item[]" value="商品ID">` を複数記述することで実現できる。`<form cms:id="item_cart_default_form">` で囲まれたフォーム内に、hiddenで指定した商品IDのinput要素を配置する。カートに入れるボタンを押すと、これらのhiddenの値が商品IDとしてカートに追加される。

 

SOY CMS/Shopのブロックで最後とそれ以外のデータで表示を変えたい

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのブロックで、リストの最初と最後で表示を変える方法を紹介。`soy:id="at_last"`と`soy:id="not_last"`を使えば、最後の要素だけ、または最後以外の要素だけに特定のHTMLを出力できる。例えば、記事一覧で最後の記事の下にだけ太線を表示するといったことが可能。 さらに、`soy:id="at_first"`と`soy:id="not_first"`と組み合わせることで、より複雑な表示制御が可能になる。例えば、カテゴリ一覧で最初の要素にのみカテゴリタイトルと`<ol>`タグを出力し、最後の要素にのみ`</ol>`タグを出力することで、無駄なHTMLを出力せずに済む。

 

SOY Shopのマイページでログインの有無でテンプレートを分ける機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで、ログイン有無によるテンプレート切り替え機能が追加されました。従来はログイン前後で同じテンプレートを使用していましたが、ログイン前は1カラム、ログイン後は2カラムといったレイアウト変更の要望に応えるため、ログイン時に別のテンプレートを読み込む仕組みが実装されました。 具体的には、`mypage.html` というテンプレートを使用している場合、ログイン時は `mypage_no_login.html` と `mypage_no_login.ini` があればそちらが優先的に使用されます。これらのファイルは管理画面からは生成できず、手動でサーバーにアップロードする必要があります。機能の詳細はSOY CMSフォーラムとGitHubリポジトリで公開されています。

 

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/ShopでPHPモジュールに使用の制限を設けました

/** Geminiが自動生成した概要 **/
SOY CMS/Shopのセキュリティ強化のため、テンプレートエディタとPHPモジュールでのPHP実行に制限が加わりました。PHPの使用は、`user.config.php`で`SOYCMS_ALLOW_PHP_SCRIPT`を`true`にすることで許可されます。 PHPモジュールはさらに`SOYCMS_ALLOW_PHP_MODULE`を`true`にすることで利用可能になります。これらの設定により、テンプレートやモジュールでPHPコードの実行を制御し、セキュリティリスクを軽減します。アップデートはGitHubから入手可能です。

 

CMSに不正にログインした後、何をする?

/** Geminiが自動生成した概要 **/
ウェブサイトがサイバー攻撃の標的となる脆弱性を抱えているかを判断する方法が解説されています。攻撃者は古いバージョンのCMSや安全でないお問い合わせフォームなどを利用して不正アクセスを試みます。記事では、SOY CMSを例に、不正ログイン後に攻撃者が踏み台として悪用する具体的な手順と、その対策が示されています。具体的には、ファイルマネージャーからのPHPファイルアップロードの制限、フロントコントローラーの編集制限、そしてファイルパーミッションの変更による対策が紹介されています。攻撃者はウェブサイトのソースコード、ログインフォームのバージョン、お問い合わせフォームのHTTPS化などを確認することで攻撃対象を選定するため、これらの対策が重要となります。

 

SOY CMSのブログで記事表示順番号(通し番号)を出力させたい

/** Geminiが自動生成した概要 **/
SOY CMSのブログで記事の表示順番号(通し番号)を出力する方法を紹介します。記事一覧を出力するブログテンプレートで、`<div>この記事は何記事目?→<strong><!-- soy:id="index" --></strong>1<strong><!-- /soy:id="index" --></strong>記事目</div>`のように`soy:id="index"`を記述することで、記事の表示順番号が出力されます。これはSOY2HTMLのHTMLListクラスの機能を利用しています。HTMLListには最初/最後の記事用のタグや、特定の条件に一致する記事用のタグなども用意されています。

 

SOY Shopで非同期で商品をカートに入れたい2

/** Geminiが自動生成した概要 **/
SOY Shopで商品を非同期にカートに追加するJavaScriptのカスタマイズ方法。カートの表示部分にIDを付与し、JavaScriptで非同期通信(XMLHttpRequest)を使ってカート情報を更新する。非同期通信に対応していないブラウザのために同期処理へのフォールバックと、タイムアウト時の処理も追加。さらに、ボタンの連打防止策として実行中フラグを用いて多重リクエストを防いでいる。これらの機能をプラグイン化することも検討中。

 

SOY Shopで高度な検索フォームを設置してみよう

/** Geminiが自動生成した概要 **/
SOY Shop用のプラグイン「カスタムサーチフィールド」の紹介。このプラグインは、高度な検索フォームをサイトに簡単に設置できる。カスタムフィールドのように項目を追加し、生成されたタグを貼り付けるだけでフォームが表示される。商品カタログサイトでの活用が想定され、複数選択可能なチェックボックスフィールドをタグのように使う事例もある。カスタムフィールドからのデータ移行も可能。プラグインはsaitodev.co/soycms/soyshop/ からダウンロードできる。

 

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以降のパッケージか、フォーラムの修正ファイルで利用可能です。

 

八重咲きのフジ

/** Geminiが自動生成した概要 **/
ゴールデンウィーク頃に咲く八重黒龍藤という八重咲きの藤を紹介している。通常の藤の花はマメ科特有の形をしているが、八重黒龍藤は花弁が多く、花の形が異なる。雄しべが変異して八重咲きになることは知られているが、通常の藤の花がどのように八重咲きになるのか疑問を呈している。また、マメ科の植物でも八重咲きになることを示している。記事には、藤棚から垂れ下がる八重黒龍藤と通常の藤の写真、八重咲きのメカニズムに関する記事へのリンク、そして撮影場所を示すGoogleマップが埋め込まれている。

 

SOY CMSのブロックで記事のランダム表示

/** Geminiが自動生成した概要 **/
SOY CMSのブロックで記事をランダム表示するスクリプトモジュールブロックのコードが紹介されています。指定したラベルの記事をランダムに並び替え、指定件数分出力します。 `/site(サイトID)/script/soycms_random.php` にPHPコードを記述し、テンプレートで `cms:label` にラベルID、`cms:count` に取得件数を指定することで利用できます。コードはフォーラムにもアップロードされています。記事の取得件数を指定しない場合は、該当ラベルのすべての記事を取得しランダムに表示します。

 

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

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

 

SOY CMSのカテゴリページでカテゴリごとに画像の出し分けを行う

/** Geminiが自動生成した概要 **/
SOY CMSのブログカテゴリページで、カテゴリごとに画像や文章を出し分ける方法を紹介します。各カテゴリページに異なるコンテンツを表示するには、モジュール機能を活用します。モジュール内にPHPコードを記述し、`$htmlObj->mode == "_category_"`でカテゴリページかどうかを判断、`$htmlObj->label->getCaption()`で現在のカテゴリ名を取得します。switch文でカテゴリ名ごとにcaseを追加し、それぞれに表示したいHTMLをechoで出力します。モジュールタグ(`<!-- cms:module="モジュール名" -->`)をテンプレートに挿入すれば完了です。HTMLコメントタグで記述されるため、テンプレートをPHPで汚染しません。

 

SOY Inquiryでコンバージョンタグを利用する

/** Geminiが自動生成した概要 **/
SOY Inquiryでコンバージョンタグを利用する方法を解説します。URLパラメータ`sample_conv`で渡された値をセッションに保存し、お問い合わせ完了画面でhiddenフィールドに表示、メール本文にも含めることができます。 `index.php`にセッション保存処理を追加し、新規テンプレート`soy`の`complete.php`にhiddenフィールド出力処理を追加します。`mail.admin.php`と`mail.user.php`にコンバージョンタグに関する表記を追加することで、管理者・ユーザー向けメールにも表示可能です。完了画面表示前にメールが送信されるため、完了画面で値を利用しない場合はセッションを破棄する処理のコメントアウトを外してください。

 

SOY Shopでログインしているお客様へポイントの使用期限を表示する

/** Geminiが自動生成した概要 **/
SOY Shopでログイン中のお客様にポイント残高と使用期限を表示するモジュール作成方法を紹介。モジュールID「parts.point_limit」を作成し、提供されたPHPコードを記述することで実現。コードは、ログイン状態、ポイントプラグインの有効性を確認後、ユーザー情報を取得し、ポイント残高と使用期限を表示。期限切れや無期限の場合の表示も追加可能。コードにはコメントが添えられており、カスタマイズのヒントも提供。ポイントはログインユーザーのみに表示され、未ログイン時は何も表示されない。より詳細なカスタマイズや機能要望は問い合わせフォームから。

 

SOY Shopで商品詳細ページの下に同じカテゴリの商品一覧を表示する

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細ページ下部に、同カテゴリ商品一覧を表示する方法を解説。 パーツモジュールを追加し、IDを「parts.item_list」、モジュール名を「商品一覧モジュール」とする。 モジュール内では、商品詳細ページの場合のみ、表示商品のカテゴリIDを取得し、DAOで同カテゴリの公開商品を取得、`SOYShop_ItemListComponent`を用いて商品一覧ブロックを生成する。 商品詳細テンプレートに`shop:module="parts.item_list"`を記述し、内部に`block:id="item_list_by_detail"`と商品表示用のcms:idを記述することで、一覧表示を実現する。 カート追加機能も確認済。 パーツモジュールを活用すれば、簡単なプラグイン機能を開発可能。

 

そもそもSOY CMSを使っていると特定されないために

/** Geminiが自動生成した概要 **/
SOY CMS使用の痕跡を隠す方法を紹介。404 Not FoundページはCMS、ショップ共にデザイン変更可能。ブログ記事URLも設定で変更できる。お問い合わせフォームはCMSスタイルシートを停止すればSOY Inquiryタグは消える。ただし、フォーム設置プラグイン使用時はSOY CMS特有の文字列がソースコードに残るため、完全な隠蔽は難しい。

 

SOY CMSで記事の内容ごとに文末のリンクを出し分けたい

/** Geminiが自動生成した概要 **/
SOY CMSで記事の内容ごとに文末リンクを出し分ける方法を解説しています。テンプレートにPHPを記述せず、モジュール機能を利用することで実現しています。記事に設定されたラベルIDを取得し、条件分岐で表示するリンク内容を決定します。ラベルIDが9なら栽培系セミナー、5か16ならSOY CMS関連のリンクを表示します。モジュールタグをテンプレートに挿入するだけで、PHPを記述することなく、記事の内容に合わせた文末リンクの出し分けが可能です。

 

Golangのsessionの取り扱いの際の型で苦戦した

/** Geminiが自動生成した概要 **/
Go言語でgorilla/sessionsを使ってセッションを扱う際、セッションから取得した値の型がinterface{}となり、string型の構造体フィールドに代入できない問題が発生した。ログ出力ではstring型に見えたが、構造体への代入時に型エラーが発生。stringへの型アサーションを試みても解決せず、最終的に構造体のフィールド型をinterface{}に変更することで回避した。セッション値取得時の動的な型定義と構造体の静的な型チェックの不一致が原因と考えられる。より良い解決策を模索中。

 

SOY ShopでGoogle+の投稿ウィジェットを作成してみた

/** Geminiが自動生成した概要 **/
SOY ShopでGoogle+の投稿を表示するウィジェットを作成する方法を紹介しています。Google+は投稿表示ウィジェットを公式に提供していないため、自作する必要があります。 SOY Shopのパーツモジュール機能を利用し、PHPで記述することで実現しました。`http://rss2lj.net/g+/{Google+ID}` からGoogle+の投稿をXML形式で取得し、PHPの`simplexml_load_file()`関数で解析、整形して表示します。具体的には、日付とタイトル、リンクを取得し、リスト形式で5件まで表示する処理を実装しています。

 

検索フォームと検索結果ページを作ってみた3

/** Geminiが自動生成した概要 **/
SOY CMSで検索機能を実装する方法を解説。`/site(サイトID)/script/soycms_search.php`に検索スクリプトを記述。SQLで記事タイトル、本文、追記フィールドを検索し、公開期間内の記事を抽出。結果はEntryオブジェクトに変換後、配列`$soycms_search_result`に格納。テンプレートには`<form method="get" action="/search">`で検索フォームを設置し、クエリパラメータ`q`で検索文字列を受け取るようにする。`$dao->getObject($row)`で検索結果をEntryオブジェクトに変換することで、テンプレートに記述した`<!-- block:id="result" -->`で表示可能になる。

 

粘土鉱物は買ってでも入れろ

/** Geminiが自動生成した概要 **/
粘土鉱物モンモリロナイトは土壌に潤沢にあると、水分と肥料分を保持し、作物の成長に役立つ。しかし、過多になると根付きにくくなる。

 

スマホ対応のお問い合わせフォームを作ってみた

/** Geminiが自動生成した概要 **/
SOY Inquiryでスマホ対応のレスポンシブなお問い合わせフォームを作成する方法を紹介。標準のフォームはスマホで表示が崩れるため、新しいテンプレートを作成し、HTMLを`<dl>`タグに変更することで解決。`/cmsインストールディレクトリ/app/webapp/inquiry/src/template/`以下にresponsiveディレクトリを作成し、サンプルファイルをコピー。form.phpのテーブル表示を`<dl>`に変更。設定画面でデザインをresponsiveに変更することで、PC・スマホ両対応のフォームが完成。確認画面(confirm.php)と完了画面(complete.php)も同様に`<dl>`タグを用いて修正することで、一貫したデザインを実現。


Powered by SOY CMS   ↑トップへ