ブログ内検索

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

やまどうぐレンタル屋様サイトの韓国語サイトの制作で、生成AIを活用して編集作業を大幅に削減しました

/** Geminiが自動生成した概要 **/
やまどうぐレンタル屋の韓国語サイト制作で、1000件超の商品情報翻訳を担当。膨大な翻訳量を効率化するため、生成AI「Gemini」のAPIをCMSに組み込み、商品情報の自動翻訳・データベース挿入システムを開発しました。 「手ぶら割」など独特な言い回しの翻訳失敗を避けるため、文字列分割・再結合処理を導入。これにより翻訳成功率は約80%に達し、手動修正を含めても当初予定の1/20の作業時間で完了しました。 また、既存の英語・中国語サイトの管理画面におけるページ周りのUI改善も行いました。

 

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

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

 

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

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

 

SOY CMSで管理画面のIPアドレス制限を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSの管理画面に、IPアドレス制限機能が追加されました。 従来の.htaccessによる制限だと、出張先などIPアドレスが異なる場所からアクセスする際に、都度設定変更が必要でした。 新機能では、管理画面から一時的に制限を解除する「アンロック」が可能になり、利便性が向上しました。 解除方法は、セキュリティに配慮し、URLを手動で作成する方式を採用しています。 今回のアップデートにより、柔軟かつ安全な管理画面へのアクセス制限が可能になりました。ダウンロードは公式サイトからどうぞ。

 

さくらインターネットのVPSでUbuntuのアップグレード後にapt updateが使えなくなった時の対処

/** Geminiが自動生成した概要 **/
さくらインターネットのVPSでUbuntu 20.04から22.04にアップグレード後、`sudo apt update`が使えなくなり、pingも通らなくなった問題の解決策です。 原因は`/etc/resolv.conf`内のnameserver設定にあり、`127.0.0.53`を`8.8.8.8` (Google DNS) に変更することで解決しました。 ただし、`/etc/resolv.conf`の直接編集は再起動時に初期化されるため、正しくは`/etc/systemd/resolved.conf`に`DNS=8.8.8.8`を追記し、`sudo systemctl restart systemd-resolved`を実行する必要があります。

 

漢方薬としてのトンボ

/** Geminiが自動生成した概要 **/
この記事は、トンボの色素に関する研究から、戦前に赤トンボが漢方薬として使われていたという興味深い事実を紹介しています。 赤トンボの色素キサントマチンは、還元されると赤色を呈します。還元剤にはビタミンCなどが有効で、実際にトンボの漢方薬は風邪薬としての効果が期待できます。 記事では、この発見が、意外なところから生活に役立つ知見の蓄積につながる好例だと締めくくられています。

 

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

 

SOY Shopで概要欄設置プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shopユーザーからの要望を受け、管理画面に概要欄を設置するプラグインを開発しました。ユーザーは2名で、ほぼ同時期に要望がありました。管理画面左下に、簡易編集可能な概要欄を追加することで、ショップ運営に関する情報を手軽に共有できます。 以前開発したメモウィジェットではテキストリンクの自動クリックに対応できないため、今回のプラグインではリンクテキストを自動でアンカータグに変換する機能を追加しました。これにより、例えば新人研修用の資料へのリンクを概要欄に記載し、参照を促すことで教育コスト削減に繋がります。 プラグインはサイト(/soycms/soyshop/)でダウンロード可能なパッケージに含まれており、有効化することで利用可能です。UIは現状改善の余地がありますが、ご容赦ください。

 

ChromebookのLinuxアプリで日本語入力をできるようにする

/** Geminiが自動生成した概要 **/
ChromebookのLinuxアプリで日本語入力をするために、MozcとFcitxをインストール・設定する方法を解説。locale設定後、MozcとFcitxをインストールし、設定ファイルを編集してFcitxを自動起動するように設定。fcitx-configtoolでMozcを追加し、geditで日本語入力を確認。geditでは挙動が怪しかったが、他のアプリでは正常に動作。Javaアプリでも日本語入力可能になった。cros-imを使う方法もあるが、geditでは漢字変換できない問題がある。

 

Let's Encryptでwwwありなしに対応する

/** Geminiが自動生成した概要 **/
Let's Encryptを用いて、wwwあり(www.example.com)なし(example.com)両方のドメインでhttpsアクセスを実現する方法。Ubuntu 18.04、Apache2環境を前提とする。 まず、certbotをsnapでインストールし、example.comのhttps化を行う。その後、www.example.comの証明書取得のため、`certbot certonly --webroot`コマンドを実行(webroot-pathはドキュメントルート)。最後に、Apacheの設定ファイル(000-default-le-ssl.conf)にwww.example.comのVirtualHost設定を追加し、example.comへのリダイレクトを設定、Apacheを再起動する。

 

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

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

 

OpenStreetMap + Leafletを試してみた

/** Geminiが自動生成した概要 **/
この記事では、Google Maps JavaScript APIの代わりにOpenStreetMapとLeafletを使って地図を表示する方法を紹介しています。OpenStreetMapは無料で利用でき、Leafletは簡単に地図を表示できるJavaScriptライブラリです。 記事では、大阪府高槻市の摂津峡を例に、緯度経度を指定して地図を表示し、マーカーを設置する手順をコード付きで解説しています。結果として、少ないコードで簡単に地図上にマーカーを表示することができました。

 

SOY Shopで簡易ショッピングモール運営プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop用の簡易ショッピングモール運営プラグインが開発されました。従来、複数ショップでは顧客ポイントの共有化が課題でしたが、本プラグインは単一ショップに複数の「出店者」アカウントを追加することで解決。各出店者は自身の商品登録・注文情報・顧客情報(閲覧のみ)へのアクセスに制限され、他出店者の情報は見えません。これにより、顧客ポイントの共有が可能になります。現状、出店者用ページやカテゴリ管理機能は未実装。ショッピングモール運営希望者は問い合わせを推奨。プラグインはSOY Shopパッケージに同梱されています。

 

森林生態系の物質循環

/** Geminiが自動生成した概要 **/
森林生態系の物質循環、特に窒素とリン酸の循環に焦点を当てた解説。森林の生産性は水や窒素の循環に影響され、窒素は降雨や落葉、窒素固定によって供給される一方、脱窒やアンモニア揮発、渓流水で流出する。窒素は植物体内や森林全体で再利用性が高い。リン酸も重要で、再利用性が高く、母岩からの溶出が供給源となる。窒素は肥料木や動物の活動で森林に蓄積され、リン酸は母岩由来の供給が大きい。全体として、森林生態系における窒素とリン酸の循環の複雑さと重要性を示唆している。

 

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の仕組みを利用しており、より深く理解するには関連の記事を参照ください。

 

PHPのガベージコレクションを学ぶにXdebugを入れる

/** Geminiが自動生成した概要 **/
XdebugはPHPのデバッグとプロファイリングツールです。`xdebug_debug_zval()`関数は、変数の内部表現であるzvalの情報を表示します。出力には、参照カウント(refcount)、参照かどうか(is_ref)、そして変数の型と値が含まれます。zvalの情報は、PHPのガベージコレクションの仕組みや変数の挙動を理解する上で重要です。Xdebugのドキュメントでは、`xdebug_debug_zval()`以外にも様々なデバッグ関数が紹介されています。これらを利用することで、PHPコードの実行状況を詳細に把握し、問題の特定やパフォーマンスの改善に役立てることができます。

 

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

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

 

SOY2HTMLで軽微なカスタマイズを加える為の機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMS/ShopのSOY2HTMLに、軽微なカスタマイズを容易にする隠し機能が追加されました。クラスファイルと同名のHTMLファイル名の頭にアンダースコア「_」を付けると、そのHTMLファイルが優先的に読み込まれます。これにより、プラグインのバージョンアップ時の上書きを回避できます。例えば、配送モジュールの文言変更など、PHP知識を必要とせず容易にカスタマイズできます。標準配送モジュールなら `delivery_normal/cart/_DeliveryNormalCartPage.html` を配置し、元のHTMLの内容をコピー・編集することで実現できます。SOY Shop 2系以降で利用可能、1系は `soy2_build.php` の修正が必要です。新パッケージはsaitodev.coからダウンロードできます。

 

SOY CMSで記事毎画像アップロードプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事毎に無制限に画像をアップロードできるプラグインを開発。カスタムフィールドでは複雑になる複数画像管理を、独立したプラグインで実現。記事投稿画面にアップロードフォームを設置し、公開側のブログ詳細ページで表示できる。SQLのTEXTカラム容量分まで画像パスを保存可能。操作性には改良の余地があるものの、即興で開発したパッケージはsaitodev.co/soycms/からダウンロードできる。

 

【SEO対策】サイトの滞在時間を増やす

/** Geminiが自動生成した概要 **/
SEO対策としてサイト滞在時間を増やす施策を行っている。記事の文量を増やすのではなく、一度のアクセスで複数記事を読んでもらうことを目指している。Google Analyticsでアクセス急上昇中の記事(例:「リン鉱石から考える未来のこと」)を分析し、記事末尾に関連する他記事へのリンクを追加することで、読者が他の記事にもアクセスする導線を増やし、サイト全体の平均滞在時間増加を狙う。アクセス増加の可視化は容易ではないが、読者の回遊促進による滞在時間増加を期待している。

 

SOY InquiryでParsley.jsを利用する

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

 

アブラナ科の花には単糖が多い

/** Geminiが自動生成した概要 **/
アブラナ科の花蜜は単糖類が多く、シソ科やキンポウゲ科はショ糖が多い。仮に花蜜の水分量と糖濃度が一定だとすると、ショ糖が多い花蜜はミツバチが巣に持ち帰りインベルターゼで分解すれば糖濃度が倍増する計算になる。しかし、実際はショ糖の全量分解は起こらない。それでも、ショ糖の割合の違いが、花蜜の甘味の濃淡(濃厚な甘み、爽やかな甘み)に影響するのではないか。アブラナ科の花は春に咲き、この時期の蜂蜜は爽やかな甘みになるかもしれない。

 

花蜜と花粉に含まれる成分

/** Geminiが自動生成した概要 **/
花粉と花蜜にはさまざまな成分が含まれています。花蜜には、主に糖分、アミノ酸、フェノール、アルカロイドなどがあります。一方、花粉には、糖質、タンパク質、ビタミン、ミネラル、色素(フラボノイド、カロテノイド)が含まれています。ビタミンやミネラルは、ハチミツ中のインベルターゼという酵素が糖を転化するのに必要な補酵素として作用する可能性があります。そのため、花粉の品質や量は、ハチミツの味わいに影響を与えると考えられています。

 

お茶で風邪予防の仕組みを見る

/** Geminiが自動生成した概要 **/
緑茶に含まれるカテキンは、インフルエンザなどのウイルスに吸着し感染を予防する効果がある。ウイルスは非生物で、宿主細胞の器官を乗っ取って増殖する。宿主細胞表面の糖鎖をウイルスが認識することで感染が成立する。カテキンはウイルスのスパイクタンパクを封じ、この認識プロセスを阻害すると考えられる。しかし、カテキンは体内に留まる時間が短いため、日常的に緑茶を摂取する必要がある。緑茶の甘みが少ない、苦味と渋みのバランスが良いものが効果的と考えられる。ウイルスは自己増殖できないため、特効薬がない。mRNAワクチンは、体内で無毒なスパイクタンパクを生成させ、抗体生成を誘導する新しいアプローチである。

 

SOY Shopで振込先情報プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop管理画面に振込先情報編集機能を追加するプラグインを作成しました。このプラグインを使用すると、顧客の振込先情報を管理し、返金時の送金に利用できます。顧客はマイページからも振込先情報を登録可能です。

 

解毒物質供給機能としての糖

/** Geminiが自動生成した概要 **/
植物における糖の機能の一つとして、解毒物質の供給がある。動物ではグルクロン酸が毒物と結合し排出されるグルクロン酸抱合が知られる。植物でもグルクロン酸はビタミンC(アスコルビン酸)の合成経路であるD-グルクロン酸経路の中間体となる。アスコルビン酸は抗酸化作用を持つため、間接的に解毒に関与していると言える。また、植物はD-ガラクツロン酸経路、D-マンノース/L-ガラクトース経路でもアスコルビン酸を合成する。糖はエネルギー源以外にも様々な機能を持ち、植物の生産性や病害虫耐性にも関わる可能性がある。

 

ペクチンは何から出来ている?

/** Geminiが自動生成した概要 **/
ペクチンは植物の細胞壁や細胞間層に存在する多糖類で、主要構成成分はガラクツロン酸である。ガラクツロン酸はグルコースからUDP-糖代謝を経て合成されるガラクトースが酸化されたもの。つまり、ペクチンの材料は光合成産物であるグルコースを起点としている。ガラクトース自体は主要な炭素源である一方、細胞伸長阻害等の有害性も持つため、植物は単糖再利用経路でリサイクルまたは代謝する。ペクチン合成にはマンガンクラスターによる光合成の明反応が重要だが、家畜糞の連続使用はマンガン欠乏を招き、光合成を阻害する可能性がある。つまり、健全な土壌作り、ひいては良好な植物生育のためには、マンガン供給にも配慮が必要となる。

 

水溶性の食物繊維のペクチンは吸着能を持つ

/** Geminiが自動生成した概要 **/
土壌改良剤の効果を検証するため、腐植酸、ベントナイト、ゼオライト、モンモリロナイトを含む4種類の土壌改良剤と、対照群として石灰と堆肥を用いて実験を行った。結果、カルシウム添加による団粒構造形成促進効果は堆肥で顕著に見られ、土壌改良剤の効果は限定的だった。特に、ベントナイトは水分含有量が多く、ゼオライトは団粒形成にほとんど寄与しなかった。モンモリロナイトは若干の改善が見られたものの、腐植酸は効果が不明瞭だった。このことから、団粒構造形成にはカルシウムだけでなく、有機物との相互作用が重要であることが示唆された。

 

SOY CMSで記事一覧選択表示ブロックプラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY CMSの記事一覧表示を自由にカスタマイズできる「記事一覧選択表示ブロックプラグイン」の紹介です。 通常の記事一覧ブロックはカテゴリーや検索結果に基づいて表示されますが、このプラグインでは記事ごとにチェックボックスで表示/非表示を選択可能。 記事編集画面にチェックボックスが追加され、チェックを入れた記事のみがブロックに表示されます。 これにより、ラベルに関係なく任意の記事をピックアップした一覧を作成できます。ブロックの設定方法の詳細はプラグイン詳細画面に記載。プラグインを含むパッケージはsaitodev.co/soycms/からダウンロード可能です。

 

SOY Shopの商品詳細表示プラグインでパンくず中のリンクの設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの商品詳細表示プラグインで、パンくずのリンク先をカスタマイズできるようになりました。従来、商品詳細ページのパンくず内の「商品一覧」リンクは固定でしたが、今回のアップデートにより、管理画面の商品情報編集画面で任意のURLに変更可能になりました。 これにより、商品カテゴリページ以外にも、特定の特集ページなど、任意のページへリンクさせることができます。変更したURLは、商品詳細表示プラグインで出力されるパンくずに反映されます。 最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopの消費税別表示モジュールで軽減税率の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールが軽減税率に対応しました。2019年10月からの消費税増税に伴い、モジュールで増税日と税率を設定できる他、軽減税率の設定も可能になりました。軽減税率対象商品は、各商品の編集画面でチェックボックスにより指定します。対象商品の一覧表示機能は現状ありませんが、要望があれば追加予定です。最新版はsaitodev.co/soycms/soyshop/からダウンロードできます。

 

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

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

 

SOY Shopの管理画面からの注文で商品毎の価格設定を確認する

/** Geminiが自動生成した概要 **/
SOY Shopを顧客管理業務アプリとして活用する中で、顧客ごとに異なる価格設定が必要になったため、特別会員価格設定プラグインを導入。しかし管理画面からの注文登録時に商品ごとの価格一覧が確認できない問題が発生した。そこで、注文登録画面で商品に追加価格設定がある場合、価格一覧ボタンを表示し、ポップアップで確認できるように改良。これにより、商品編集画面を開かず価格を確認できるようになり、問屋業などでの利便性向上に繋がる。改良版はサイトからダウンロード可能。合わせて顧客管理機能強化、管理画面のみ使用モード、注文状態並び替え、商品確認済ステータス追加など関連記事も紹介。

 

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

/** Geminiが自動生成した概要 **/
SOY CMSのカスタムフィールドアドバンスドプラグインに、記事を出力できる「記事フィールド」機能が追加されました。記事の投稿・編集画面で、ラベル設定済みの公開記事を選択し、任意の場所にその記事内容を出力できます。 現状は試作段階で、パフォーマンスへの影響を考慮し、選択可能な記事はラベル設定済みの公開記事20件までに制限されています。これは、長い定型文を記事によって出し分けたいというニーズに応えるための機能で、セレクトボックスから記事を選択する方式です。 制約事項として、記事の投稿・編集画面で指定できるのはラベル設定済みの記事のみ、ラベル指定時のセレクトボックスに表示される記事数は20件、選択できるのは公開記事のみとなっています。これらの制約は、今後の使用状況に応じて調整される予定です。

 

ワードやエクセルファイルの編集はDropboxフォルダで行おう

/** Geminiが自動生成した概要 **/
IT関連以外の方との共同作業で、Wordファイルの消失を恐れる相手にDropboxの活用を提案した体験談。Dropboxにファイルを置くことで自動保存・共有、バージョン管理による変更履歴の保持が可能となり、ファイル消失や変更差し戻しへの不安を解消できる。バージョン管理はGit利用者には必須の機能で、DropboxのWebサイト上で過去のバージョンに戻せる。Dropbox利用でファイル名の変更によるバージョン管理の手間も省ける。ただし、企業によってはセキュリティ上の懸念からDropboxのような外部サービス利用を禁止している場合もある。競合他社はこうしたサービスを活用し、事務コスト削減で商品開発に注力し、競争優位に立つ可能性があるため、時代遅れにならないようWebサービス導入と個人スキルの向上が重要。

 

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を有効にする必要があります。

 

SOY CMSのラベル一覧でアコーディオンの機能を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSのラベル一覧画面が見やすくなりました!ラベル数が増えると管理画面が煩雑になる課題に対し、ユーザーからの改修提案を元にアコーディオン機能が実装されました。分類ごとにラベルを折り畳めるようになり、UIが大幅に改善。 HTMLモジュールで共通部分を管理する等の対策も紹介しつつ、ユーザー参加型の開発を推進していることが伺えます。GitHubでのプルリクエストや問い合わせフォームからの連絡を歓迎しており、最新版はsaitodev.co/soycms/からダウンロード可能です。

 

SOY CMSのブログの説明でWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのブログ説明欄がWYSIWYGエディタに対応しました。従来はHTML編集ができなかったブログの説明文を、リッチテキストで記述できるようになりました。 これを実現する「ブログ説明WYSIWYGプラグイン」が新たに開発され、HTMLを許可する`b_block:id="blog_description_raw"`タグも追加されました。このプラグインにより、ブログページの設定画面で、説明文入力欄がWYSIWYGエディタに切り替わり、より表現力豊かなブログ説明を作成できます。 ダウンロードはsaitodev.co/soycms/から可能です。この改良は、以前のカテゴリー詳細表示プラグインへのWYSIWYGエディタ対応に続くものです。

 

Go言語とQtで計算フォームを作成してみる

/** Geminiが自動生成した概要 **/
Go言語とQtでアルバイト給与計算フォームを作成。時給と時間を入力すると、合計金額が自動計算される。 QLineEditで入力値を取得し、strconv.Atoiで数値に変換、掛け算後、strconv.Itoaで文字列に戻し、goukeiInputに表示。入力値の変更を検知するために、jikanInputとjikyuuInputにConnectEditingFinishedを使い、calcAndInsert関数を呼び出している。 Clear()で以前の結果を消去してからInsert()で新しい結果を表示することで、値の更新を正しく行う工夫もされている。

 

Go言語でQtを扱ってみる on Windows

/** Geminiが自動生成した概要 **/
Windows10でGo言語とQtの開発環境を構築する方法を解説。MSYS2とQtをインストールし、Go言語のパッケージを取得・設定後、サンプルコードを実行する手順を説明。環境変数の設定やQtインストール時のコマンド、Goのパッケージ設定コマンド、サンプルコード実行コマンド、発生したエラーと解決策(libicudt61.dll不足)について記述。

 

SQLiteでデータを入れて取り出してみる

/** Geminiが自動生成した概要 **/
Windows 10 で SQLite を使い、データを操作する方法を解説しています。SQLite をダウンロード、インストールし、環境変数を設定後、コマンドプロンプトでデータベースファイル(sample.db)を作成します。SQL文を用いて、テーブル作成、データ挿入、削除、並び替え、表示など基本操作を例示しています。`CREATE TABLE` でテーブルを作り、`INSERT INTO` でデータ挿入、`SELECT * FROM` で全データ表示、`DELETE FROM` でデータ削除、`ORDER BY` で並び替え、`LIMIT` で表示件数制限を行います。DB Browser for SQLite での確認方法にも触れています。

 

Go言語 + Selenium + Agoutiでブラウザ操作の自動化

/** Geminiが自動生成した概要 **/
Go言語でSeleniumとAgoutiを使ってChromeブラウザを自動操作する方法を解説しています。まずJavaとSelenium Serverをインストールし、起動確認を行います。次にChromeドライバーをインストールし、環境変数Pathにドライバのパスを追加します。Go言語のパッケージ管理ツールgo getでAgoutiパッケージを取得後、サンプルコードを作成・実行します。サンプルコードでは、AgoutiでChromeDriverを起動し、新しいページを開いてGoogleのトップページに遷移させる処理を行っています。実行結果として、Chromeブラウザが起動しGoogleのトップページが表示されます。

 

SOY Shopの注文編集で配達時間帯の編集をセレクトボックス形式に変更しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文編集画面で、配送時間帯の入力をテキストエリアからセレクトボックスに変更しました。 従来、ヤマト運輸B2等外部システムとの連携時に、時間帯の書式誤りによる不具合が発生する可能性がありました。今回の変更で、管理画面上で正しいフォーマットを選択式で指定できるようになり、操作ミスを防止、作業効率改善を実現します。 最新版はsaitodev.co/soycms/soyshop/ からダウンロード可能です。

 

SOY Shopの注文詳細の支払い方法の変更をラジオボタン式に変更した

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細画面で、支払い方法の変更方式がテキストエリア入力からラジオボタン選択に変更されました。従来は支払い方法のラベル表示のみ変更可能で、注文データ上のモジュール自体は変更されませんでした。今回の変更により、ラジオボタンで選択した支払い方法のモジュール自体が変更されるようになりました。これにより、注文検索画面での絞り込み検索が正しく機能するようになります。ただし、手数料は変更時に削除されるため、手動で再設定が必要です。将来的には送料の自動計算機能も追加予定です。変更を含むパッケージはsaitodev.co/soycms/soyshop/からダウンロードできます。

 

チャットワークとGoogle Apps Scriptで音声入力で投稿してみる

/** Geminiが自動生成した概要 **/
Googleドキュメントの音声入力とGoogle Apps Scriptを連携させ、チャットワークへの投稿を音声で行う方法を紹介。 「チャットワーク(投稿内容)終了」と話しかけると、内容がチャットワークに送信されるスクリプトを作成。1分毎にスクリプトが実行され、ドキュメントの内容をチェック、投稿後ドキュメントはクリアされる。APIトークン、ルームIDの設定が必要。音声入力はドキュメントのツールから利用可能。Androidスマホでは音声入力の設定を事前に確認する必要がある。この方法で、両手が塞がっている状況でもチャットワークに投稿可能。実用時はタスク登録ルールやToの指定が推奨される。

 

SOY Shopで返金管理プラグインを作成しました

/** Geminiが自動生成した概要 **/
SOY Shop向け返金管理プラグインが開発されました。注文詳細画面から返金・増額の振込額や銀行口座情報を登録可能になり、管理画面の注文一覧検索で返金関連情報による絞り込み検索もできるようになりました。 プラグインはsaitodev.coからダウンロードできます。 このプラグインは、注文毎のキャンセルや変更に伴う返金・増額を記録し、処理状況を追跡する機能を提供します。注文状態に「返金処理待ち」ステータスも追加され、より詳細な注文管理が可能になります。 これは、既存の注文検索フォーム拡張ポイントと注文状態・支払状況フラグ追加拡張ポイントを利用して実現されています。

 

SOY Shopの注文詳細の編集で代金合計に含む項目を追加できるようにしました

/** Geminiが自動生成した概要 **/
SOY Shopの注文詳細編集機能に、代金合計に含めるかどうかのチェックボックスを追加しました。これにより、内税のように明細には表示するものの、合計額には含まない項目を指定できます。 ただし、注文詳細表示ではどの項目が合計額に含まれているかわかりにくいという課題があります。今後、わかりやすい表示方法の検討が進められます。

 

SOY2HTMLでリンクを出力する - HTMLLink編

/** Geminiが自動生成した概要 **/
SOY2HTMLのHTMLLinkクラスは、PHPでリンクを生成するためのクラスです。`text`属性でリンクテキストを、`link`属性でhref値を設定します。`SOY2PageController::createLink()`を使うと、管理画面のURLを簡単に生成できます。HTMLには`<a soy:id="detail_link"></a>`と記述します。HTMLActionLinkクラスはHTMLLinkを継承し、URLにトークンを付与することでセキュリティを強化します。`soy2_check_token`と併用し、URL直打ちを防止します。

 

SOY2HTMLで繰り返し表示 - HTMLList編

/** Geminiが自動生成した概要 **/
SOY CMSのブロック内で繰り返し表示される記事に、一定の間隔で任意の文字列を表示するには、下記の手順に従います。 1. HTMLListクラスを継承したPHPクラスを作成し、populateItemメソッドで表示したい内容をHTMLタグで記述します。 2. HTMLファイルで、populateItemメソッドで作成したHTMLタグをsoy:idを使用して囲みます。 3. 表示する間隔をsoy:id="loop"に指定します。 4. 表示する文字列をsoy:id="index"に指定します。 これで、指定した間隔で任意の文字列が繰り返し表示されます。

 

配送の拡張ポイントsoyshop.delivery.php

/** Geminiが自動生成した概要 **/
SOY Shopの配送拡張ポイント`soyshop.delivery.php`について解説。インターフェースは`onSelect`、`getName`、`getDescription`、`getPrice`など、支払い拡張ポイントと類似のメソッドを持つ。`onSelect`~`getPrice`はカートでの配送方法選択時の動作を定義し、`edit`と`update`はマイページの注文詳細編集で使用される。`edit`は編集フォームを出力するメソッドで、`update`はフォーム送信時の更新処理を行う。標準の配送モジュール(delivery_normal)のコードを読むことで、具体的な実装方法を理解できる。

 

SOY CMSのカテゴリー詳細表示プラグインでWYSIWYGエディタに対応しました

/** Geminiが自動生成した概要 **/
SOY CMSのカテゴリー詳細表示プラグインがアップデートされ、WYSIWYGエディタ(TinyMCE)に対応しました。ユーザーからの要望に応え、ラベルの詳細編集画面でHTMLタグだけでなく、画像や動画も手軽に挿入できるようになりました。プラグインの詳細設定でWYSIWYGエディタの使用をチェックすることで有効化できます。このアップデートにより、よりリッチなコンテンツをカテゴリー詳細に表示することが可能になります。最新のパッケージはsaitodev.co/soycms/からダウンロードできます。

 

社会人・学生向けプログラミング教室でHTML Serviceの勉強会を行いました

/** Geminiが自動生成した概要 **/
社会人・学生向けプログラミング教室で、Google Apps ScriptのHTML Serviceを使ったGoogleドキュメント連携の勉強会が行われました。前回のスプレッドシート拡張の勉強会に続き、今回はHTML Serviceを用いてGoogleドキュメントのUIをどこまでカスタマイズできるかを検証しました。これにより、業務改善に繋がる新たなアイディア創出を期待しています。 関連として、Google Apps ScriptでJPEG画像からOCRで文字列を取得する内容も扱われました。

 

SOY Shopのマイページで注文編集プラグインで商品の個数の変更を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、商品個数変更機能が追加されました。以前の商品の削除機能に続き、今回のアップデートでは、注文詳細画面で商品ごとに数量変更が可能になりました。変更に合わせて合計金額も再計算されます。これらの機能はまだ開発段階のため、今後のアップデートで更なる改善が期待されます。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

SOY Shopのマイページで注文編集プラグインでお届け先住所等の編集を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページ注文編集プラグインに、お届け先と請求先住所の編集機能が追加されました。有効化すると、注文詳細画面に編集ボタンが表示され、住所変更が可能になります。ただし、請求先住所を変更してもマイページの会員登録情報は更新されません。この機能追加により、ユーザーは注文後もお届け先や請求先の住所を柔軟に変更できるようになります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。開発段階のため、今後もブログで更新情報を確認しながら利用ください。

 

SOY Shopのマイページで注文編集プラグインで商品の削除を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文詳細を変更できるプラグインに、商品の削除機能が追加されました。以前は注文内容の変更のみ可能でしたが、今回のアップデートで不要な商品を削除できるようになりました。注文個数の変更機能は今後の実装予定です。プラグインは開発中で、今後も機能が追加される予定です。ダウンロードはsaitodev.co/soycms/soyshop/ から可能です。

 

SOY Shopのマイページで注文詳細の変更機能を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopのマイページで注文編集プラグインに商品の削除機能が追加されました。以前は商品追加のみでしたが、今回のアップデートで注文詳細編集画面から商品の削除が可能になりました。削除したい商品を選択し、削除ボタンを押すことで注文から商品を除外できます。変更内容を保存すると、お客様とショップ管理者に変更通知メールが送信され、管理画面の新着にも反映されます。これにより、顧客はコールセンターに連絡することなく、マイページ上で注文内容の変更をより柔軟に行えるようになりました。ただし、商品削除に伴う金額変更など、クレジット決済への対応は今後の開発課題となっています。完全な注文編集機能の実現に向けて開発は継続中です。

 

Google Apps ScriptのHTML Serviceを試してみた

/** Geminiが自動生成した概要 **/
Google Apps Script (GAS) のHTML Serviceを利用して、HTMLファイルとGASのコードを連携させる方法を紹介しています。 具体的な手順として、Googleドライブ上にGASプロジェクトを作成し、index.htmlファイルに"Hello, World!"と記述、コード.gsファイルにはdoGet関数でHTMLファイルを読み込むコードを記述します。 その後、ウェブアプリケーションとして公開することで、ブラウザでHTMLの内容が表示されることを確認しています。 さらに、GASを学ぶ上でJavaScriptの知識が重要であることを補足し、関連技術としてNode.js、NW.js、GoogleドキュメントのOCR機能についても言及しています。

 

社会人・学生向けプログラミング教室でGoogleスプレットシートの拡張の勉強会を行いました

/** Geminiが自動生成した概要 **/
社会人・学生向けプログラミング教室で、Googleスプレッドシートの拡張機能を活用した業務アプリ作成の勉強会を実施。備品管理表を作成し、GAS(JavaScript)で毎週金曜日に備品不足をチェック、関係者へ調達指示メールを自動送信する仕組みを構築した。Googleスプレッドシートの複数人管理機能とGASによるGmail連携で、備品調査とメール送信を自動化。GoogleドライブとGASで業務効率化を図り、クリエイティブな作業時間を増やすという狙い。

 

Ubuntuでタッチパッドでアイコンの上を軽く触れるだけでドラックしてしまう問題について

/** Geminiが自動生成した概要 **/
Ubuntu 17.10にアップグレード後、ASUS U37VCのタッチパッドで、軽く触れるだけでアイコンがドラッグされる問題が発生。Synapticsタッチパッドの設定ファイル(/etc/X11/xorg.conf.d/70-synaptics.conf)の"FingerHigh"オプションの下に、"MaxTapTime" "50"を追加し、再起動することで解決。このパラメータはタップ認識の強さを設定するもので、値を小さくすると誤認識を減らせる。設定反映には再起動が必要。

 

SOY ShopのPAY.JP定期課金モジュールで管理画面でプランの変更を追加しました

/** Geminiが自動生成した概要 **/
SOY ShopのPAY.JP定期課金モジュールがアップデートされ、管理画面から顧客の定期課金プラン変更が可能になりました。顧客詳細画面でプラン変更やキャンセル操作が行えます。プランは商品情報としてSOY Shop内で作成・管理します。ただし、商品情報の編集回数が多い場合、プラン一覧取得に不具合が生じる可能性があります。 このモジュールを活用することで、SOY CMSと連携した会員制有料ブログや、SOY Mailと連携した有料メルマガの運営が容易になります。最新版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

社会人・学生向けプログラミング教室でGoogleフォームの拡張の勉強会を行いました

/** Geminiが自動生成した概要 **/
社会人・学生向けプログラミング教室で、GoogleフォームをGASでカスタマイズする勉強会を実施しました。前回に続き、今回はGoogleフォームで作成したお問い合わせフォームに、複数人への通知機能を追加しました。具体的には、Googleスプレッドシートの名簿に記載されたメールアドレス宛にも、お問い合わせ通知メールが送信されるようGASで機能拡張を行いました。次回は、お問い合わせ内容に基づきメール文面を動的に生成する方法を学ぶ予定です。

 

SOY Shopの顧客詳細と顧客グループでGoogle Mapsとの連携を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの顧客管理機能が強化され、顧客詳細編集画面と顧客グループプラグインにGoogle Maps連携が追加されました。顧客詳細では住所入力フォーム下に地図が表示され、顧客グループプラグインでは地図付き住所フィールドが追加されました。管理画面でしか使用しない顧客情報に緯度経度情報を持たせた理由は後日公開予定です。アップデート版はsaitodev.co/soycms/soyshop/からダウンロード可能です。

 

Socket.IOで個別チャットを作りたい後編

/** Geminiが自動生成した概要 **/
Socket.IOで個別チャットを実現するため、namespacesを利用した検証が行われた。サーバー側では"hoge"と"huga"二つのnamespacesを作成し、クライアント側ではランダムにどちらかに接続するよう変更。結果、同じnamespaceに接続したクライアント間でリアルタイムなチャットが可能になった。namespacesによる個別チャットの可能性が示されたが、roomによる実現方法や動的なグループチャット作成機能の課題が残されている。

 

牛糞堆肥が良いと広まったのは何故なのか?を考えてみる

/** Geminiが自動生成した概要 **/
関東中心に牛糞堆肥が良いとされる理由を、土壌の特性から考察した記事です。関東に多い黒ボク土は、アルミニウムイオンが溶脱しやすく根の伸長を阻害する一方、アロフェンによるAECで硝酸イオンなどを吸着します。牛糞堆肥はリン酸がアルミニウムを無害化し、硝酸塩もAECが吸着するため、黒ボク土の欠点を補う効果があります。また、牛糞堆肥の腐植はアロフェンと結合し土壌に残ります。つまり、黒ボク土と牛糞堆肥は互いの短所を打ち消し、長所を引き立て合う関係です。この相乗効果は北海道東部、東北東部、関東一帯、九州中南部といった黒ボク土地域で有効ですが、他の地域では牛糞堆肥の負の側面が目立ち、特にハウス栽培で顕著になります。加えて、牛糞堆肥は窒素肥料代替として減肥率向上にも貢献します。

 

SOY ShopのCSVインポートエクスポートで0からはじまる数字を扱いたい

/** Geminiが自動生成した概要 **/
SOY ShopのCSVインポート・エクスポートで0から始まる数字を扱うには、冒頭の0が削除されるのを防ぐ必要があります。LibreOfficeでCSVを編集する際、セル書式設定から「先頭のゼロの値」に桁数を指定することで、0を保持できます。例えば、5桁の数字の場合は「5」を設定します。これにより、SOY Shopへのインポート時に0が削除されずに追加されます。

 

FFmpegとAudacityで動画の音声の調整に挑戦!

/** Geminiが自動生成した概要 **/
動画編集ソフトFFmpegとAudacityを使って、動画の音声調整に挑戦した記録。元の動画の音量が小さく、ノイズが多かったため、Audacityで音量増幅とノイズ除去を実施。FFmpegで動画と音声の結合を行い、改善された動画を作成した。具体的には、Audacityで波形を見ながら音量を30dB増幅し、ノイズプロファイルを採取してノイズ除去を2回行った。結果、「サー」というノイズが消え、以前より聞き取りやすい音声になった。

 

BracketsのBeautifyでXMLファイルの自動整形を行わないようにする

/** Geminiが自動生成した概要 **/
BracketsのBeautifyによるXMLファイルの自動整形を無効化する方法について解説されています。SOY CMS/Shop開発において、build.xmlがBeautifyによって整形され、Antビルドでエラーが発生する問題が発生しました。解決策として、brackets.jsonに`"language":{"xml":{"bb.beautify.onSave":false}}`を追加し、XMLファイルの自動整形を無効化することで、Antビルドが正常に動作するようになりました。

 

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"` の二つのモジュールタグで同じ機能を別々に表示できるようになる。

 

Webデザイナー向けのGitのハンズオンを行いました

/** Geminiが自動生成した概要 **/
アップラインの会議室にて、Webデザイナー向けにGitのハンズオンを開催。Webデザイナーは細かい編集作業が多く、バージョン管理の恩恵が大きい。今回はWindows向けTortoiseGitを用い、Gitの基本操作を体験、用語解説も行った。TortoiseGitはGUIで操作できるため、Gitへの苦手意識なく学習できる。共同作業の共有コスト削減、快適なサイト制作にGitの活用を推奨している。

 

SOY Shopで予約サイトを運営する

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

 

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

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

 

SOY CMSで記事編集中にブラウザを閉じる際にアラートを出す

/** Geminiが自動生成した概要 **/
SOY CMSの記事編集中にブラウザを閉じると、入力内容が失われるのを防ぐため、確認アラートを表示するプラグインが開発されました。フォーラムで要望があり、記事タイトル編集中に限られますが「本当に閉じますか?」とアラートを表示します。下書き自動保存と併用すると効果的です。プラグインはフォーラム、またはGitHubで配布されています。改良版はGitHubにあり、`alert.js`を修正すれば他の箇所にも対応可能。修正後はフォーラムで共有が推奨されています。

 

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 CMSのサイトのバックアップをDropboxで行う

/** Geminiが自動生成した概要 **/
SOY CMSサイトのDropboxバックアップ方法を紹介。まずDropboxアカウントを作成し、サーバーに64ビット版CLI版Dropboxをインストール。サーバをDropboxアカウントにリンク後、バックアップスクリプト(dbbackup.sh)を作成し、cronで毎朝3時にサイトディレクトリをzip圧縮してDropboxへ同期させるよう設定。自動起動設定としてcrontabの@rebootを利用。debファイル経由のインストール方法も追記。再起動しない場合はdropbox start -iコマンドを試す。パスワード付きzip化などの関連記事へのリンクも掲載。

 

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

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

 

SOY CMSのブログでプレビュー用のページを作成してみる

/** Geminiが自動生成した概要 **/
SOY CMSのブログにはプレビュー機能がないが、記事を任意の場所に貼り付けられる機能を利用してプレビューページを作成できる。まず、プレビュー用のページ(例:/preview)を作成し、「プレビュー」ラベルを設定、Basic認証で保護する。記事投稿時に「プレビュー」ラベルのみを選択すれば、プレビューページにのみ記事が表示される。確認後、「ブログ」ラベルを追加すれば本番公開となる。実際には、ダイナミック編集で非公開記事も確認できるため、プレビュー機能の代替として活用可能。

 

SOY CMSで利用しているelFinderでjsファイルのアップロードを許可する

/** Geminiが自動生成した概要 **/
SOY CMSのファイルマネージャelFinderでJSファイルのアップロードを許可する方法。`/CMSのインストールディレクトリ/soycms/js/elfinder/php/connector.php`内の`uploadAllow`配列にJSファイルのMIMEタイプ `text/javascript` を追加することで実現できる。デフォルトではセキュリティのためJSファイルのアップロードは禁止されているが、この設定変更によりアップロードと編集が可能になる。ただし、不正ログイン時に悪意あるコード実行のリスクも高まるため、注意が必要。

 

SOY Shopで注文変更の際に代引き手数料の自動計算を追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの注文変更画面で、代引き手数料を自動計算する機能が追加されました。 従来、注文内容変更時に商品個数を変更すると、代引き手数料を手動で修正する必要がありましたが、この機能により自動で再計算されます。例えば、商品価格の合計が10,000円を超えて手数料が無料になる場合など、変更後の金額に応じて手数料が自動更新されます。この機能は代引き支払いモジュールの設定で有効/無効を切り替え可能です。消費税の自動計算にも対応しており、要望があれば配送モジュールの手数料自動計算も検討されます。関連パッケージはGitHubで公開されています。

 

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を出力せずに済む。

 

WordPressのプラグインを作ってみた1

/** Geminiが自動生成した概要 **/
WordPressプラグイン作成の入門記事。REST APIサービスのWordPress対応のため、プラグイン「hoge_world」を作成する例を紹介。プラグインファイル(/wp-content/plugins/hoge_world/hoge_world.php)を作成し、コメントと`HogeWorld::call()`関数を定義。管理画面のプラグイン一覧に表示され、テーマファイル(例:sidebar.php)に`<?php HogeWorld::call(); ?>`を記述することで「hoge worldだー!」と表示されることを示している。

 

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が自動生成した概要 **/
SOY CMSに不正ログイン後、ファイルマネージャからのPHPアップロードは不可だが、フロントコントローラ(index.php)に悪意あるPHPコードを埋め込み可能。これにより、サイト閲覧時に勝手にメール送信などの踏み台攻撃が可能になる。対策はindex.phpの書き込み権限を外すこと。SOY ShopのテンプレートやPHPモジュールも悪用されうる。

 

ブログで絵文字の機能は使わない方が良いかもしれない

/** Geminiが自動生成した概要 **/
SOY CMSで絵文字を使うと、画像パスにCMSのインストールディレクトリが含まれるため、管理画面のURLが推測されやすく、総当り攻撃の標的になる危険性がある。記事に絵文字を使いたい場合は、画像パスを外部の無関係な場所に配置し、管理画面URLを特定できないようにする必要がある。そうでない場合は、侵入検知機能の導入が必須となる。 記事では絵文字の危険性を指摘し、対策として画像パスの変更と侵入検知システムの導入を推奨している。

 

SOY CMSのブログで投稿されたコメントを編集したい

/** Geminiが自動生成した概要 **/
SOY CMSブログのコメント編集機能が拡張されました。従来はコメント本文のみ編集可能でしたが、要望に応えタイトルと投稿者名の編集も可能になりました。管理画面のコメント一覧から該当コメントを選択し、「タイトル」または「投稿者名」ボタンをクリックすると編集フォームが表示され、変更が可能になります。投稿日時と記事タイトルの編集には未対応です。この機能の詳細はSOY CMSフォーラムで公開されています。

 

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

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

 

SOY CMSでプラグインブロックを追加してみた

/** Geminiが自動生成した概要 **/
SOY CMSのスクリプトモジュールブロックをプラグイン化し、簡単に導入できる「プラグインブロック」機能が追加されました。サイト構築時に毎回スクリプトを設定する手間を省き、記事一覧表示の効率化を実現します。プラグインをインストール後、ブロック設定でプラグインブロックを選択し、プラグインIDを指定するだけで利用可能です。プラグインIDは各プラグインの詳細説明に記載されています。この機能はsoycms_1.8.12p7.2以降で使用可能で、GitHubからパッケージをダウンロードできます。バージョンアップ時はuser.config.phpにPluginBlockComponentの追加が必要となる場合があります。

 

PHPで楽天市場の商品登録を楽しよう:Apacheのインストール編

/** Geminiが自動生成した概要 **/
楽天市場の商品登録作業効率化のため、PHPによるローカル検証環境構築を目指し、複数PCへのインストール手順を記録している。今回はApache2.4のインストール方法を紹介。まずPCが64ビットか確認後、Apache動作に必要なVisual C++再頒布可能パッケージをインストールする。次にApacheの64ビット最新版をダウンロード、解凍し、Apache24フォルダをCドライブ直下に配置。httpd.confのServerNameをlocalhost:80に修正する。Windows環境変数のPathにC:\Apache24\bin;を追加し、コマンドプロンプトでhttpd -k startを実行。ブラウザでhttp://localhostにアクセスし"It Works!"が表示されればApacheのインストールは完了。次回はPHPのインストールについて。

 

SSHで外部のネットワークからログインできるようにする

/** Geminiが自動生成した概要 **/
Sambaサーバに外部からSSH接続できるよう設定した手順の記録。まずSambaサーバにSSHをインストールし、プライベートIPアドレス(192.168.11.8)を設定、ルーターのIPアドレスをゲートウェイに設定した。次に外部からのSSH接続のため、rootログインを禁止し、無線LANルーターでポートフォワーディング(外部ポート71823→内部ポート22)を設定。外部IPアドレス(例:127.0.0.1)へポート71823を指定してSSH接続を確認した。パスワード認証はセキュリティ的に不安なので、次回は鍵認証を設定予定。

 

使わなくなったパソコンにSambaを入れて、ファイル共有用のサーバを構築してみた

/** Geminiが自動生成した概要 **/
使わなくなったWindows7マシンにUbuntuをインストールし、Sambaでファイル共有サーバーを構築する方法。 手順は、Ubuntuインストール後、端末でSambaをインストールし、共有フォルダ`/home/share`を作成、パーミッションを設定。`/etc/samba/smb.conf`を編集し、ゲストアクセスを許可する設定を追加。Sambaを再起動し、ファイアウォールで必要なポートを開放。自動起動設定も実施。 Windowsからは、ネットワークドライブの割り当て機能を使い、`\\SambaサーバーのIPアドレス\Share`でアクセス可能。`Share`部分はsmb.confで設定した共有名。

 

Dockerで構築したPHP7の環境でSOY CMSを動かしてみる

/** Geminiが自動生成した概要 **/
Docker上のPHP7環境でSOY CMSを動かす手順を解説。前回はmbstringが不足しエラーが発生したが、Dockerfileに`docker-php-ext-install mbstring`を追加し解決。elfinderは未対応だが、その他は動作し爆速に。Dockerfileとphp.iniの設定例、コンテナ起動コマンドも紹介。修正版SOY CMSはGitHubで公開中。

 

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 Shopで商品カテゴリの一括設定

/** Geminiが自動生成した概要 **/
SOY Shopで商品数が増えると、CSVでのカテゴリ編集が困難になる。特にカスタムフィールドを多用するとCSVファイルが肥大化し、作業効率が低下する。複数カテゴリ設定もSOY Shopでは非対応。 そこで、商品一覧画面で複数商品を選択し、一括でカテゴリを設定・変更・解除できる機能が開発された。このシンプルな機能追加により、カテゴリ分け作業が大幅に効率化される。ダウンロードはSOY CMSフォーラムにて提供されている。

 

さくらのレンタルサーバでSOY Shopをバージョンアップしたら画面が真っ白になった時の対処

/** Geminiが自動生成した概要 **/
さくらレンタルサーバでSOY Shopをバージョンアップ後、画面が真っ白になる場合、PHPのバージョンが古いためです。コントロールパネルの「PHPのバージョン設定」で推奨バージョン以上に変更、「PHP設定の編集」で`php.ini`に`cgi.fix_pathinfo = 1`と`date.timezone = "Asia/Tokyo"`を追加すれば解決します。

 

俺のPenはセミの鳴き声に苦戦する。夏である。

/** Geminiが自動生成した概要 **/
セミの鳴き声が集音されてしまい、動画の台詞が聞き取れなかった。そこで、動画編集ソフトでセミの鳴き声を除去できるよう取り組む。

 

SOY CMSでどのページでも使えるブログのサイドバーを作ってみた

/** Geminiが自動生成した概要 **/
SOY CMSのPHPモジュールを使用して、ブログページのサイドバーコンテンツを他のページでも表示できるようになった。最新の投稿、カテゴリー一覧、月別アーカイブを取得するロジックを実装し、表示を整形した。これにより、ブログページと同様のコンテンツを非ブログページでも表示できるようになった。また、使用したSOY2DAOFactoryとSOY2Logicはデータベース操作やロジック処理を行うために使用された。

 

GnuCashの文字化け対策

/** Geminiが自動生成した概要 **/
GnuCashで文字化けが起こった場合、pango.aliasesファイルを作成し、フォントをメイリオに設定することで解決できます。さらに、スタイルシートで数値セルをメイリオに設定すると、貸借対照表で数字が表示されます。この手順に従うことで、GnuCashの文字化けを解消し、複式簿記を始められます。

おすすめの検索キーワード
おすすめの記事

Powered by SOY CMS   ↑トップへ