サイトマップ | お問い合わせ  | ID  PASS 

SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
ۡ롼 > 裏番町通信 > XOOPS格闘記 > XCL > ゲストとメンバーでテーマを自動的に切り替える
ゲストとメンバーでテーマを自動的に切り替える
投稿者: Master 掲載日: 2009-8-11 (2834 回閲覧)
XCL2.1で登録メンバー用コンテンツに比重を置いたWebサイトを作りました。ゲスト用のテーマとメンバー用のテーマを用意し、ログイン前後で自動で切り替わるようにしたときの備忘録です。

  • Site Closedの状態にしてメンバーがログインできるようにする。この方法だと「お問い合わせ」など、ゲストにもアクセスさせたいページが表示できない。
  • X2のThemeChangerはXCLでは使えない。
  • 株式会社Ryusの旧スタッフブログで、ゲストユーザアクセス時にトップページのテーマだけを変更するpreloadが配布されていた。しかし、「お問い合わせ」など、トップページ以外はメンバーのテーマになってしまう。
  • 選択したテーマをユーザーテーブルに保存するpreloadがXOOPS Cube 日本サイトで紹介されていた。ログイン後に「テーマ選択」で切り替えれば、次回以降は自動的に切り替わるというもの。しかし、一度テーマを選択するという作業が必要。
  • ランダムにテーマが切り替わるようにするという話題をどこかで見つけたが、目的から逸れるので試さず。
  • XUGJでモジュール毎のテーマ変更方法が紹介されていた。GETでのテーマ切替方法も紹介されていた。

[結果]
XUGJで紹介されていた、theme.htmlにテーマを振り分けを記述する方法を採用。preloadを書くより簡単です。GETでのテーマ切替えは後日やってみたいと思います。

[方法]
XOOPS_ROOT_PATH/themes/2stageをデフォルトテーマに設定し、2stage/を以下のような構成にします。theme.html以外のファイル名は任意でOK。
theme.html ←最初に読み込まれるHTMLで振替え設定を行う
guest/guest.html ←ゲスト用HTML
guest/images ←ゲスト用テーマで使う画像
guest/style.css ←guest.htmlで使うCSS
member/member.html ←member用HTML
member/images ←メンバー用テーマで使う画像
member/style.css ←member.htmlで使うCSS
member/pico.html ←特定のモジュールだけ違うテーマにする場合
member/pico.css ←同上

theme.htmlには以下の内容のみ書きます。
<{if $xoops_isuser}>
	<{include file="`$xoops_theme`/menber/member.html"}>
<{elseif $xoops_dirname == "pico"}>
	<{include file="`$xoops_theme`/menber/pico.html"}>
<{else}>
	<{include file="`$xoops_theme`/guest/guest.html"}>
<{/if}>
最初、画面が真っ白になり、ページのソースを表示しても真っ白でした。元のフルに記述されたtheme.htmlに入れ替えても戻らないので、バックアップしていた前工程のテーマをフォルダごと入れ替えたら戻りました。DOCTYPE宣言ぐらい必要じゃ?と思ったのですが、単に記述が間違っていたために空白のHTMLとなったのでした。あと、各テーマ共通のCSSができたので、2stage/common.cssを作りました。後日CSSを整理すると良いかもしれません。
  この記事を PDF フォーマットで見る 記事を印刷する 記事をメールで送信

良く読まれた記事 メンバー以外にはアカウント情報を非公開にする XOOPS Cube LegacyをUTF8でインストール 次の記事
メインメニュー
大橋デザイン室