ブログ内検索

プログラミング教室
オンライン肥料教室を開催しています
 

SOY Shopのクーポン自由設定プラグインで送料無料クーポンを発行できる様にしました

/** Geminiが自動生成した概要 **/
SOY Shopのクーポン自由設定プラグインに送料無料クーポン発行機能が追加されました。管理画面で「送料無料」にチェックを入れてクーポンを作成すると、カートで利用時に送料と同額が値引きされます。値引き額/率に加えて送料無料クーポンも発行可能になったことで、より柔軟なクーポン設定が可能になります。最新版はGitHub(https://github.com/inunosinsi/soycms/tree/master/package/soyshop)からダウンロードできます。

 

電子書籍の販売を始めました

/** Geminiが自動生成した概要 **/
齋藤毅の妻、亮子が夫の農業ブログを電子書籍化。亮子はJAや農業法人での経験、ミャンマーでの農業研修を経て、従来の農業の常識を覆す齋藤の知識に感銘を受けた。牛糞堆肥の代わりにバーク堆肥や鉱物を推奨するなど、化学式に基づいた齋藤の土作り論は、亮子にとって衝撃的だった。土作りに悩む農家や、慣習的に資材を選んでいる人に向けて、齋藤の知見を共有したいと考え、書籍化に至った。価格は500円(税込)。サンプルの閲覧方法も用意されている。

 

ヤブガラシは葉物野菜に巻き付く

/** Geminiが自動生成した概要 **/
ヤブガラシは除草剤が効かず、葉物野菜に巻き付いてしまう厄介な雑草。知人の畑ではネギに絡みつき、除草剤散布後もヤブガラシだけが残ってしまった。手で抜くしか方法がないが、巻きひげが作物を傷つけるため、除草剤散布後の手作業も重労働となる。ヤブガラシへの効果的な対策がなく、農家にとって大きな負担となっている。しかし、筆者はヤブガラシに関する面白い発見をしたようで、次回に続く。

 

ブラウザのキャッシュの設定

/** Geminiが自動生成した概要 **/
SOY CMSのキャッシュモードを利用することで表示速度を大幅に向上させることができます。キャッシュモードには、「出力キャッシュ」「ブロックキャッシュ」「データキャッシュ」の3種類があります。出力キャッシュはページ全体をキャッシュし、ブロックキャッシュはページの一部のブロックをキャッシュ、データキャッシュはデータベースへのアクセス結果をキャッシュします。それぞれのキャッシュモードは管理画面から簡単に設定でき、サイトのアクセス状況や更新頻度に合わせて最適な設定を選択することで、サーバー負荷を軽減し、表示速度を向上させることができます。特に、頻繁に更新されない静的なページやアクセス数の多いページでは、出力キャッシュが効果的です。キャッシュのクリアも管理画面から簡単に行えます。

 

ヤブガラシの恐怖

/** Geminiが自動生成した概要 **/
庭園に生えたヤブガラシの脅威を紹介する記事。カボチャのような巻きひげを持つヤブガラシは、栽培者にとって厄介な雑草。カボチャが巻きひげで他の植物を抑えるのは問題ないが、ヤブガラシの場合は作物に悪影響を与える。写真では一見背の低い草を抑えているように見えるが、実際は深刻な被害をもたらす。記事はヤブガラシの真の恐ろしさを写真で示すことを予告し、次回へ続く。

 

SOY CMSのサムネイルプラグインでラベル毎に標準画像の設定を追加しました

/** Geminiが自動生成した概要 **/
SOY CMSで記事投稿時に毎回サムネイル画像を用意するのは手間がかかる。特に、カテゴリ毎に同じようなサムネイルを使い回したい場合、作業効率が悪い。そこで、サムネイルプラグインの設定画面でラベル毎に画像を設定できるように機能拡張した。記事投稿時に該当ラベルにチェックを入れるだけで、予め設定した画像パスがアップロードフォームに挿入される。異なる画像を使いたい場合は、通常通りアップロードフォームから画像を指定すれば良い。この改良により、カテゴリ毎に共通のサムネイル画像を設定する場合の作業負荷が大幅に軽減される。尚、サムネイルプラグインを使わずとも、記事本文の画像をリサイズ表示する方法もある。

 

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

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

 

夏に咲く花と厚い葉

/** Geminiが自動生成した概要 **/
夏に咲く厚い葉の花の名前を知りたい。多肉質の葉は乾燥地帯や海岸で見かけることが多く、蒸散を防ぐため葉を厚くしていると考えられる。気孔から中心までの距離を長くすることで、水ストレスの影響を低減し、体内の水分を保持する。この花は日本の多湿な環境でも元気に咲いている。一体、この花の名前は何だろう?

 

インストーラーで再インストール後にサイトを復元

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラによる再インストール後、サイトを復元する方法です。まず、再インストール前にサイトのソースコードからサイトID(例: /site/files/ の"site"部分)を確認しておきます。次に、インストーラで再インストールする際、インストール先ディレクトリを既存のものと異なる名前に変更します。インストール完了後、初期管理者を作成し、「サイトの復元」ではなく「サイトの作成」を選択します。ここで、事前に確認しておいたサイトIDを入力してサイトを作成します。サイトIDが正しければ、既存のファイル群が使用され、サイトが復元されます。最後に、元の管理画面URL(例: /cms/admin)で再インストールを行い、以前のデータベースに接続できないようにすることでセキュリティ対策を行います。データベース接続設定ファイル(例: mysql.db)を復旧すれば、元のアカウントも復元可能です。

 

ポップコーンは爆裂するトウモロコシ

/** Geminiが自動生成した概要 **/
ポップコーンは、爆裂種のトウモロコシを油で加熱することで作られる。加熱によって内部の水分が膨張し、胚乳(食用部分)も膨らむ。著者はポップコーンを見て、講義でテストに出ると言われたことを思い出した。ポップコーンは、トウモロコシの爆裂種であるため、加熱すると内部の水分が膨張し、外側の皮が破裂することであの独特の形になる。これは胚乳の粘性が高い品種だからこそ、爆裂しても破裂せずに形を保てるためである。トウモロコシには様々な種類があり、著者はテスト対策で丸暗記したことを懐かしく思い出している。

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

/** Geminiが自動生成した概要 **/
SOY CMSのインストーラを削除しないと、再インストールが可能になり、サイトデータが消去される危険性がある。攻撃者は用意したデータベース情報で再インストールし、初期管理者権限を奪取できる。管理画面URLが判明していれば、インストーラ経由でサイトを初期化・乗っ取りが可能。他CMSでもインストーラが残っていれば同様の危険があるため、インストール後は必ず削除する必要がある。

 

枝達の水の吸い上げ事情

/** Geminiが自動生成した概要 **/
線路沿いの過酷な環境で逞しく生きる草は、上部に枝を集中させている。成長著しい枝の葉は薄緑色で、盛んに蒸散を行うため、根からの水の吸い上げも活発だ。しかし、下の葉は元気がない。枝への水分の集中が原因で、下の葉まで行き渡らないのだろうか。それとも、枝が成長したため、下の葉の養分を回収し枯れようとしているのか。あるいは、茎を直射日光から守るための防御策なのか。いずれにせよ、この草の生存戦略の一端が垣間見える。

 

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から入手可能です。

 

みなを抑えこむように脇芽

/** Geminiが自動生成した概要 **/
線路沿いの背の高いキク科の草は、上部で枝分かれする。頂芽優勢が弱く、他の草丈を越えたところで脇芽を出し、周囲を覆うように葉を広げている。これは、強風への抵抗力を高めるためと考えられるが、頭でっかちな形状は折れやすいようにも見える。周りの草が支えになる可能性もあるが、周囲の状況に応じて脇芽を出すことから、頂芽優勢はオーキシンの抑制のみでは説明できないと考えられる。

 

水田を見て、イネが選抜された訳を想像する

/** Geminiが自動生成した概要 **/
水田のイネを見て、かつての先生が語った話を思い出す。歴史の教科書では、農民はコメをあまり食べられなかったとされるが、先生はイネの栽培効率の高さから反論した。イネは水田で雑草抑制が可能で、肥料も少なくて済む。窒素固定能力も持ち、収量も高い。栽培に適さない理由がない限り、イネを選ぶはずだと主張した。実際、農村部でのコメ消費量は多かったという。優れた特性を持つイネの原産地は中国大陸とされ、野生の状態はどのようなものだったのかと想像を膨らませる。

 

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

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

 

当サイトをHTTP/2対応して表示の爆速化してみた

/** Geminiが自動生成した概要 **/
Let's Encryptの証明書更新を自動化するため、CertBotを導入した。以前の方法は使えなくなったため、公式サイトの手順に従い、snapd経由でCertBotをインストール。`certbot certonly --apache`コマンドで証明書を取得し、Apacheの設定を自動更新。 cronで`certbot renew`を定期実行することで自動更新を実現。`--dry-run`オプションでテストも可能。以前の`letsencrypt-auto`コマンドは非推奨となったため、CertBotへの移行が必須。

 

発芽という難所をみんなで乗り越えて

/** Geminiが自動生成した概要 **/
いただいた変化アサガオの種は全て発芽したが、双葉の状態にばらつきが見られる。双葉が全くない株が一つ、なかなか開かない株、ねじれの強い株、表面が波打つ株など様々だ。特に、双葉が開かない株は開く兆しはあるものの、まだ双葉は開いていない。これらの双葉の異常は、生育に影響を与える可能性がある。特に、双葉が開かない株は、将来的に最も変化の大きい花を咲かせるかもしれないと予想される。

 

SOY CMSに総当り攻撃を仕掛けてみる。その4

/** Geminiが自動生成した概要 **/
Go言語で書かれたSOY CMSへの総当り攻撃スクリプトを改良し、CSVファイルからIDとパスワードを読み込むように変更した。これにより、コードの可読性が向上し、辞書を使い回せるようになった。 実行結果から、指定のIDとパスワードでログイン成功を確認。今後の課題として、メモリ効率の改善、対象サイトURLの指定、ログイン成功時の判定処理などが挙げられている。

 

陰イオン交換容量AEC

/** Geminiが自動生成した概要 **/
土壌中には陽イオン交換容量(CEC)だけでなく、陰イオン交換容量(AEC)も存在する。AECは一部の粘土鉱物、特に火山灰由来のアロフェン表面のOH<sub>2</sub><sup>+</sup>が陰イオンを保持する。しかし、AECは値が小さく、腐植などで増加せず、土壌改良の影響を受けにくい。アロフェン添加でAECは向上するが、土壌分析項目にAECが含まれないことから、実用的には重要視されていないと考えられる。

 

捻れた集合花は下を一律で下を向く

/** Geminiが自動生成した概要 **/
ネジバナは、クローバーに囲まれた草原で、小さいながらも目立つ花を咲かせる。集合花で、すべての花が下向きに咲くのが特徴。訪れる昆虫の種類は不明だが、周囲にクローバーが多いことから、ハチやチョウ、アリなどが考えられる。マメ科のクローバーは、ハチとチョウしか蜜を吸えないという記述もある。ネジバナの花の形状や下向きの向きが、どのような昆虫を誘引する役割を果たすのかは、観察が必要である。

 

SOY Shopの消費税別表示モジュールで税込通常価格と税込セール価格のタグを追加しました

/** Geminiが自動生成した概要 **/
SOY Shopの消費税別表示モジュールに、税込通常価格と税込セール価格を表示するタグが追加されました。これにより、セール価格がお得かどうかを税込価格で比較可能になります。 追加機能は、SOY CMSフォーラムかGitHubで公開されているパッケージからダウンロードできます。消費税別表示モジュールを使用しているユーザーは、税込価格表示で顧客に分かりやすい価格表示が可能になります。

 

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

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

 

東福寺塔頭天得院の桔梗たち

/** Geminiが自動生成した概要 **/
東福寺塔頭天得院は、様々な種類の桔梗が鑑賞できることで知られています。特に珍しいのは白と八重咲きの桔梗です。一般的な青色の桔梗に加え、白い桔梗、八重咲きの青い桔梗、そして白の八重咲き桔梗も存在します。訪れた際には、庭園いっぱいの桔梗の中でも、これらの珍しい桔梗は庭園の外に位置していました。八重咲きの青い桔梗は残念ながら時期を逃してしまい、しおれた状態でしたが、白の八重咲き桔梗は満開で、その美しい姿を拝むことができました。来年は、青い八重咲き桔梗の開花時期に合わせて再訪し、その姿を鑑賞したいと考えています。

 

SOY CMSに総当り攻撃を仕掛けてみる。その3

/** Geminiが自動生成した概要 **/
Go言語で書かれたコードを用いて、SOY CMSへの総当たり攻撃を試行。パスワード候補の配列を定義し、ループ処理でログインを試みる。一致するパスワードが見つかった場合、処理を中断し「ログイン成功」とID、パスワードを表示する。今回は"********"でログイン成功。このコードはパスワード候補を増やすことで、複雑なパスワードでも突破可能。しかし、SOY CMS側では複数回ログイン失敗するとエラーが表示される対策が取られていることが確認された。

 

発芽という最初の難所を乗り越えて

/** Geminiが自動生成した概要 **/
蒔いた変化アサガオの種が発芽した。発芽したのは5粒中3粒。うち2粒は双葉がなく、親の変異が強かった可能性を期待させる。残りの1粒は通常の双葉で、丸い花が咲きそう。少ない母集団のため断定はできないが、変化アサガオ栽培の季節が始まり、今後の成長に一喜一憂する日々が始まった。

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

/** Geminiが自動生成した概要 **/
EC-CUBE2.4系からSOY Shopへの移行時に、顧客のパスワードをそのまま利用できるようログインチェック機能を導入。EC-CUBEとSOY Shopのパスワード暗号化方式の違いを考慮し、SOY Shop側でEC-CUBEの暗号方式を適用する処理を追加。暗号化パスワードにスラッシュの有無でEC-CUBEかSOY Shopかを判別。EC-CUBE2.4.4以前のバージョンに対応しており、顧客がパスワードを変更すればSOY Shopの方式に自動更新されるため、特別な切り替えは不要。将来的には2.11.1以降のバージョンにも対応予定。修正版はフォーラムまたはGitHubから入手可能。


Powered by SOY CMS  ↑トップへ