HOME / コンピュータTips / WikiPlus / デザインをコンバートする
Date: 2010/09/03 | | Tags: WikiPlus, デザインコンバート
このドキュメントは最新のものが、デベロッパーサイトに転載されています。
WikiPlusはシステムを利用しながらもデザイン自由度が高く、様々なシチュエーションで満足のいくデザインを当てはめることが出来ます。
しかし、システムでコンテンツ管理をする以上、「1つのデザインに複数のページを当てはめる」必要があります。
このために、動的に切り替わる部分(概念的には下記)を意識する必要があります。
これらのデザインの形は、一般的なWEBサイトで考慮されるものと同じで、グローバルナビゲーションが存在するWEBサイトと同じです。
Dreamweaver等を利用している場合は、テンプレートと同じ考え方だと思えばよいでしょう。
デザインを自分で作れない場合は、下記のサイトなどで公開されているデザインがあります。
このような公開されているデザインを利用する場合は、ライセンスの確認は必須です。利用する用途に応じて、お金を払う必要があったり、コピーライト表記が必須であったりする場合もあるため、この部分は各自でチェックする必要があります。
デザインをWikiPlusサーバにインストールするために、ルールが1つあります。
このために、いくつかの考慮が必要です。
外部参照型ファイルには次のものがあります。
これらは、すべて
のディレクトリに移動しなくてはなりません。
また、直下にファイルは直接参照できないので、これらもhtml以下に移動が必要です。
最終的には、直下のディレクトリが、
のみになるようにしなくてはなりません
''例'
元の場所 | 移動場所 |
css/ | html/css/ |
js/ | html/js/ |
images/ | html/images/ |
iframe.html | html/iframe.html |
title.swf | html/title.swf |
等 |
そのままではindex.htmlが崩れてしまっているので、index.htmlを開き、パスを修正します。
※Dreamweaver等のデザインツールで上記の移動を行った場合は、自動で行うために、このパスの修正が必要ない場合もあります。
エディタなどで編集している場合は、移動したファイルを検索し、パスを変更します。置換などを利用すると良いでしょう。
''例'
元ファイル | 移行先 |
style.css | html/style.css |
images/ | html/images/ |
js/ | htmlhtml/js/ |
cssファイル内にも、ファイルパスが設定されているので注意しなくてはなりませんが、cssの相対ファイル対象は、そのcssからの相対であるため、該当のcssファイルと、cssファイルからの外部参照ファイルとの関係が維持できている場合、ディレクトリ関係を操作しなければ、そのまま動作します。
デザインファイルの日本語コーデックは、WikiPlus1.2系ではEUC_JP、WikiPlus1.3系以降ではUTF-8である必要があります。
Dreamweaverなどの古いバージョン(MX等)では、EUC_JPを利用すると文字化けを起こすことがあります。
@charset "EUC-JP";
以上の状態で、index.htmlを開き、きちんとしたデザインになることは確認しておいてください。
実際にWikiPlusに組み込むための編集を行います。
index.htmlファイルを元に、base.design.htmlというファイルにコピーします。
そして以下の変数群をbase.design.htmlに入れ、自動的にページのデザインになるようにします。
変数に関しては、dev.wikiplus.jpのドキュメントを参考にしてください。
まずは<head>タグのエリアに、下記の変数を入れます(1.2.4以降)。
{$headers}
[headersは存在しません]には、WikiPlus下記の変数内容をすべて含んでいます。
変数名 | 内容 |
{[metaは存在しません]_content_type} | コンテンツ・タイプ。 |
{[metaは存在しません]_robots} | 検索エンジン巡回の可否。管理ツールから変更できる。 |
{[javascriptは存在しません] | WikiPlusが用意するjavascriptタグ |
{[headは存在しません]_tag} | WikiPlusのプラグインが必要とするヘッドタグ |
ほとんどのケースでは、{[headersは存在しません]のみを記載するだけで問題ありませんが、どうしてもデザインによって、個別に宣言する必要がある場合は、個別に記載してください。
※1.2.3以前のバージョンのWikiPlusでは、これらをすべて記載する必要があります。
Wiki本文が入るエリア
{$body}
メニュー領域(MenuBar)が入るエリア
{$menu}
ツールバー、ナビゲーションバーは、編集可能モード(公開用URLでは設定次第、編集用URLでは必ず)必要になるものです。
下記のものが必要です。
※この変数は、WikiPlus1.3以降は必要が無くなります。
コントロールパネルのオプション設定-サイト名に連動します。
変更場所の例
サイト名はイメージファイルで直接作ることが多いのですが、<title>タグの中は文字列が必要になることがあるでしょう。
現在表示中のページ名。
変更場所例
ぱんくず(トピック・パス)を指定する変数。
トピックパスは、ページ名を/で割った階層構造にすることで、利用することができます。
変更箇所例
いくつかの項目は、デザインHTMLファイルから削除しなくてはなりません。
DreamweaverなどでHTMLファイルを作成すると、XMLのDTD表記が付加されます。
これは消去し、同様のものをWikiPlusの管理ツール-DTD選択から選ぶ必要があります((この選択をすることで各種プラグインも、自動的にDTDにあったものを出力します))。
削除する例(概ね1行目です)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<META CONTENTS〜で始まるものは消去する。
たとえば、下記のものを付記しておくことで、自動的にRSSを追加します。
<link rel="alternate" type="application/rss+xml" title="RSS" href="{$link.rss}" />
これは、{[headersは存在しません]では自動的に付記されません。
たとえばニュース/以下のものだけをRSS配信にしたい場合は、
<link rel="alternate" type="application/rss+xml" title="RSS" href="{$link.rss}®ex=^ニュース" />
と記載します。
jrssのドキュメントを参照してください。
以上で、WikiPlusを利用したサイトへ、デザインを適用することが可能になります。
WikiPlus契約の開発会社用FTPアクセス権でFTPサーバに接続し、下記のものをwikitemplate/ディレクトリ以下にアップロードしてください。
デザインのアップロード直後に全く画面が出なくなってしまった場合、エラーが出ている可能性があります。
その場合は
''エラーログ表示(開発会社専用URL)'
https://収容サーバ名/~ユーザID/logwatch.php
にアクセスし、エラーログをみてください。
下記のようなスタイルシートの宣言があると、Smartyでエラーが出ます。
<!--[if lt IE 7]> <style type="text/css" media="screen"> #menuh{float:none;} body{behavior:url(csshover.htc); font-size:75%;} #menuh ul li{float:left; width: 100%;} #menuh a{height:1%;font:normal 1em/1.6em "Trebuchet MS", helvetica, arial, sans-serif;} </style> <![endif]-->
次のようなエラーです。
[client 61.197.171.162] PHP Fatal error: Smarty error: [in base.design.html line 28]: syntax error: unrecognized tag: float:none; (Smarty_Compiler.class.php, line 436) in /home/www/kohju.justplayer.com/wikisettings/smarty/libs/Smarty.class.php on line 1090
どうどう対応すべきかは、現在の課題です。
Wikiコンテンツ内のデザインはCSSで行う必要があります。
利用するデザインがCSSで、ある程度の体系化されたデザインであれば、およそそのまま表示することができます。
しかし、そうでない場合は、いくつかのcssを追加しなくてはなりません。
私が選んだデザインは、h2〜h4の扱いが無かったので、それっぽいデザインを入れてみました。h2〜h4の関係は次の通りです
HTMLタグ | Wiki書式 | 意味 |
h2 | * | 見出しレベル1 |
h3 | ** | 見出しレベル2 |
h4 | *** | 見出しレベル3 |
次のようにしてみました。
/* --- TITLE * -------------------------------------------------------- */ h2 { font-size: 160%; font-family: "A-OTF 新ゴ Pro M","メイリオ",verdana, arial, helvetica, Sans-Serif,"MS ゴシック"; color:#fff; background-color:#6E6A5A; padding:.1em; border:0px; margin:0px 0px .5em 0px; font-weight: bold; } /* --- TITLE ** -------------------------------------------------------- */ h3 { font-size: 120%; font-family: "A-OTF 新ゴ Pro M","メイリオ",verdana, arial, helvetica, Sans-Serif,"MS ゴシック"; border-left: 10px solid #404040; color:#fff; background-color:#6E6A5A; padding:.3em; margin:0px 0px .5em 0px; font-weight: bold; } /* --- TITLE *** -------------------------------------------------------- */ h4 { font-size: 100%; font-family: "A-OTF 新ゴ Pro M","メイリオ",verdana, arial, helvetica, Sans-Serif,"MS ゴシック"; border-left: 18px solid #404040; color:inherit; background:transparent; padding:.3em; margin:0px 0px .5em 0px; font-weight: bold; }
また、左に置いたメニューバーなどは、若干小さくなくてはいけません。たまたま、このデザインではメニューバーのエリアをleftnaviという<div>タグで囲っていたため、div#leftnavのスタイルを縮小気味にしてみました。
MenuBarのスタイル
<div id="leftnav"> {$menu} </div>
これにあわせたCSS
/* --- MENU BAR AREA-------------------------------------------------------- */ div#leftnav { width: 180px; padding: 0px; margin: 0px 0px 10px 0px; word-break: break-all; font-size:80%; overflow:hidden; word-break: break-all ; } div#leftnav ul { margin:0px 0px 0px .9em; padding:0px 0px 0px .9em; } div#leftnav ul li { line-height:150%; }