Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CentOS7とXOOPSから今度こそ脱却!セミナータイムテーブルをCraftCMSに統合し...
Search
Akira Ouchi
September 06, 2025
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CentOS7とXOOPSから今度こそ脱却! セミナータイムテーブルをCraftCMSに統合した話 / 20250906-odc2025-ospn-craftcms
ODC2025にて発表
Akira Ouchi
September 06, 2025
Transcript
23 slides
CentOS7とXOOPSから 今度こそ脱却! セミナータイムテーブルを CraftCMSに統合した話 あっきぃ 2025/5/31 OSC2025 Nagoya
自己紹介 • あっきぃ(大内 明) • JapaneseRaspberry Pi Users Group •
Ejectコマンドユーザー会 • 日本仮想化技術 ←今日は多分この所属 • ※2007〜2009は兄弟会社である びぎねっと 所属 • OSPNのサーバーのシステム一式の運用と保守を スキマ時間で担当
OSPNのサーバーのシステム一式の運用 オフィス内のサーバールームのラック ネットワーク サーバー 仮想化基盤(VMware) 仮想マシン コンテナ基盤(LXD)とnginx CraftCMS XOOPS Web
DB _人人人人_ > 全部 <  ̄^Y^Y^Y^ ̄ 年1〜2回停電→ OSCの日程を知っているかのように被せてくる
None
次回停電 •10/17深夜〜10/18朝 •OSCオンラインの 1日目と2日目の間に 挟むんじゃないよ
OSPNのサーバーのシステム一式の保守 サーバールーム(オフィス内) ネットワーク サーバー 仮想化基盤(VMware) 仮想マシン コンテナ基盤(LXD)とnginx CraftCMS XOOPS Web
DB 今日はここの話↓
今回のお話 • XOOPSで動いてたタイムテーブル機能を 現在のOSCのサイトで使用しているCraftCMSに統合 • 5月のOSC名古屋から使用開始 • XOOPSを動かしていたCentOS7ごと退役 • というのを5月のOSC名古屋で発表しようとして
欠席してしまったので、発表リベンジ
CraftCMS • PHPで書かれたオープンソースのCMS • マルチサイト対応 • ただし、多言語対応の応用というかんじ • OSCでは2018年後半から部分的に運用開始 •
2020年春から本格採用 • しかし同時にきた新型コロナによっていろいろ狂う • ついでにオンライン向けのページの実装とかも生えた
XOOPS • PHPで書かれたオープンソースのCMS • OSCで使われていたのは2006年頃のバージョン • 2020年のリニューアル後も「事前登録機能」と 「タイムテーブル」のために延命 • CentOS7上のPHP7.0で動くよう魔改造
• 事前登録機能はコロナのドサクサでConnpassに移行 • コロナ以降はタイムテーブル機能のみ使用
XOOPSは上部が緑色
脱・CentOS 7 + XOOPS • CentOS 7は去年EoL • XOOPSのEoL?なにそれおいしいの? •
XOOPSで実現しているテーブル機能だけ Craftに移行すれば解決! • 簡単に言ってくれるじゃないの…… • スキマ時間で……!?
Before: XOOPSでのデータ入力方法 • 時間枠×セミナー部屋でテーブルを作成 • 各枠に独自記法のテキストで情報を入力 • CraftCMSへのリンクなどに変換
独自記法のテキスト • CraftCMSに記法の生成(コピペボタン)機能を実装 • 動画リンクを追記するときとかは手書きが発生
After: CraftCMSでのデータ入力方法 • テーブル画面で編集という概念がなくなった • というか作れなかった…… • 開催日・時間枠・セミナー部屋のエントリーを作成 • 申込みデータ内のセミナー情報に、
開催日・時間枠・セミナールームの情報を当てはめる • パズルっぽい感じ
開催日・時間枠・セミナー部屋の作成
申込データでそれぞれを指定 • 時間枠は複数選択可能
生成されたタイムテーブル • XOOPSとほぼ変わらないテーブルが生成されるようになった
タイムテーブルの生成 • CraftCMSはTwigテンプレートエンジン採用 • テーブルの生成はCraftCMSのモジュール機能を使用 • PHPスクリプト • Twigでは厳しいループとか変数のやりくりができる •
モジュールで「ループを回しやすいデータ」を生成 して、Twigテンプレートでデータをループして表示 • データ生成にもループを使うのでたくさん回ってるけど やむなし
セミナー枠の重複対策 • 申込データの編集状況によっては、 セミナー枠にセミナーが重複した 状態が作れるようになってしまった • XOOPSでは起きない • 管理者向けに枠の背景を赤くして、 異常がわかりくなるように配慮
セミナーの枠への割り当て忘れ対策 • セミナー枠が指定されていない申込みデータの一覧を ページ上部に表示 • 編集リンクから作業に入れるように
さよなら、CentOS7とXOOPS •既存のXOOPSをHTML化して、 HTML置き場用のコンテナに移動 •CentOS7のコンテナを廃止 •めでた……し……? コンテナ基盤(LXD)とnginx CraftCMS XOOPS Web DB
今後の予定 • 他のコンテナとコンテナホストの Ubuntu Server 20.04を24.04化 • CraftCMSのバージョンアップ • メジャーバージョンが2つ離れており……
• 開発が終了したプラグインが使われており…… • OSC2026から新しいUbuntuとCraftCMSに移ろうと したけど検証が間に合わず、OSC2026 Osakaのサイ トがもうできてしまった!!1
おわらない •本業のスキマ時間で頑張るマンの 活躍にご期待ください •本業のスキマ時間で どうにかするものではない定期
More Decks by Akira Ouchi
See All by Akira Ouchi
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
650
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
1
3.1k
10GbEな蟹NIC RTL8127をラズパイの新カーネルで触ってみよう / 20260404-osunc26kg-rtl8127-on-pi5
akkiesoft
0
880
1GB RAMのラズピッピで何ができるのか試してみよう / 20260319-rpijam-1gb-rpi-whats-possible
akkiesoft
1
5.4k
EjecTea 2026 / 20260228-osc26tk-ejectea
akkiesoft
0
1.1k
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
1.1k
OSSのSNSツール「Misskey」をさわってみよう(右下ワイプで私のOSCの20年を振り返ります) / 20250705-osc2025-do
akkiesoft
0
1.4k
最近のラズピッピいじり / 20250308-rpijam-13th-birthday
akkiesoft
0
1.3k
Raspberry Pi 秋の新製品をチェックしてみよう / 20231202-rpi-jam-tokyo
akkiesoft
0
970
Other Decks in Technology
See All in Technology
Gifu WordPress Meetup #200 に向けて、私たちには何ができるだろうか?/ 2026-11-07 Gifu WordPress Meetup
torounit
0
300
AWS Emulator を評価する: 手元で動く AWS の API の仕組み、始め方、確かめ方
inariku
PRO
1
500
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
540
Gemma4 Hands-on at Nagoya
tsho
0
100
Kiro アップデート 2026 年 11 月号 (11 月 8 日時点) | 目指せ Kiro マスター アップデート編
inariku
PRO
2
120
[NW-JAWS DAY]「うちのAWS、インターネット出られないんで」― AWS外の自社サービスをPrivateLinkでシュッと公開する方法
ykimi
2
300
業務でAWSをあまり使っていない私が、AWSへのモチベを保つ方法
smt7174
0
200
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
300
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
0
240
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
1
170
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
520
AI対話型分析を作成し、リリースするまでの話 / The Road to Release: Buiding AI Conversational Analytics
yappli_developers
0
120
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
We Have a Design System, Now What?
morganepeng
55
8.4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Everyday Curiosity
cassininazir
0
400
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
350
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
23k
Become a Pro
speakerdeck
PRO
31
6.4k
Amusing Abliteration
ianozsvald
1
390
Optimizing for Happiness
mojombo
378
71k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Are puppies a ranking factor?
jonoalderson
2
4.2k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
2
3.9k