ConcreteCMS

ConcreteCMSの健忘録
#
Concrete CMSのエクスプレスデータベースには標準でCSV入力が無いのですね。そこでJOBに登録して簡単に利用できるものを作ってみました。
#
1万件を超えるConcrete CMSエクスプレスデータを削除しようと「エントリーをクリア」を実行したところ、タイムアウトエラーが発生。 手作業で一つずつ削除するのは現実的ではないため、一括削除プログラム を作成しました。
#
Concrete CMSのExpressデータを大量に扱う中で、同一レコードの重複登録や既存データの更新が必要になることがあります。 このジョブプログラムは、最終更新日を基準に最新のレコードを残し、古い重複データを自動的に判別・整理することで、登録データの一括更新を効率化します。 これにより、管理作業の手間を減らし、常に最新かつ正確なデータを維持することができます。
#
Concrete CMSの標準機能では、説明(description)がmeta descriptionに変換されない問題を解決するための「Description to Meta」Jobプログラムを開発しました。これにより、記事概要を自動でmeta descriptionへコピーし、検索結果の表示を最適化できます。SEO対策と運用効率を向上させるための便利なツールです。
#
Concrete CMS の Express エントリ一覧において「最大 1000 件までしか取得できない」という制限に直面し、標準の EntryList や Express ブロックでは対応が難しかった。ORM の制約によりカスタマイズによる解決も困難だったが、Doctrine クエリビルダーを直接用いる方法へ移行。その結果、大規模データを扱う要件を満たす実装が実現できた。副次的にスペース区切りでのAND検索機能も獲得できた。
#
Concrete CMS の Express を使ってイラスト管理システムを構築しているとき、思わぬ落とし穴にはまった。 「キーワード検索を illust_kw だけでなく、illust_title や illust_no(数値)にも広げたい」 ──ただそれだけの話のはずだった。 しかし、実際に手を動かしてみると、numeric 属性の扱いが想像以上に曲者だった。
#
Concrete CMS の Express 機能は柔軟で扱いやすい反面、大量データを扱う際にはパフォーマンス面で課題が生じることがあります。 本記事では、15,000 件以上の Express エントリーを高速にランダム表示するための最適解を、実際の改善プロセスとともに紹介します。