TYPOlight 2.7での変更

このページは公式フォーラムにLeo Feyer氏が投稿した記事「TYPOlight 2.7での変更」を元に書いたもので、概ね元の記事を訳した内容となっています。

2.7が正式にリリースされた際に、移行の手助けになれば幸いです。本ドキュメントは必要に応じて随時更新していきます。

最終更新: 2009年4月18日


1. nav_defaultテンプレート

アクティブなメニュー項目を示すpタグはspanタグに置き換えられて、アクセスビリティの面を改善しました。

しかしながら、このためにスタイルシートを調整するか、カスタマイズしたテンプレートを作成して再びpタグを挿入するようにするか、いずれかが必要となります。

2. フォームのフィールドの "error" のクラス

バージョン2.7より前は、エラー・メッセージのdivタグだけ、スタイルシートのerrorクラスが設定されていました。これからは、すべてのフィールド要素(ラベル、入力フィールド、エラー・メッセージ)のすべてに設定され、より書式を制御しやすくなりました。
しかしながら、このためにスタイルシートを調整して、(単に .error ではなく、div.errorやp.errorといった)より厳密なセレクタを指定が必要となります。

フォームのフィールドの"error"クラスへの補足

将来、DIVタグの代わりにPタグによって、ウィジェットのエラーメッセージは表現されるようになります。この変更によって、フォームジェネレーターの動作と、ずっと以前からPタグでエラー・メッセージを囲んでいたモジュールのに整合が取れるようになります。また、div.errorに追加の書式を作成する余地を残し、チェックボックスとラジオボタンのウィジェットを曖昧に参照することを回避します。

しかしながら、この変更はバージョン2.7.0だけに含まれます。

3. Mootols version 1.2

最初のベータ版(2.7.RC1)は Mootools 1.1 を採用していましたが、2つ目のリリース(2.7.RC2)からはJavaScriptライブラリを Mootools 1.2 に更新しています。
このため、独自の Mootools を使用したスクリプトを使用している場合は、新しい文法に適合させる必要があるかもしれません。

4. ニュース・モジュールの日付の書式は廃止

ニュースを表示する各モジュールで提供されていた、「日付の書式」の指定は廃止されます、これは(ローカライズされた)テキスト形式の表示(January 2009といった)は、最終的にフロントエンドでサポートされるためです。
ニュース・モジュールに個別の日付形式を使用したい場合は、テンプレートをカスタマイズする必要があります(テンプレートでもテキストの日付は解釈されるようになりました。)

5. コンテンツ要素とモジュールのテキスト配置は廃止

バージョン2.7ではコンテンツ要素とモジュールで利用できた、"text aliginment"のドロップダウン・メニューは廃止されました。これは過去に(テキストと、表や画像で異なる影響があると言った)多くの混乱を招ていていたためです。
将来的には、このような配置はスタイルシートのクラスやリッチテキスト・エディタで行うべきです。

6. リダイレクト・ヘッダの変更

中心的な関数の redirect() はHTTP/1.1に適合して、デフォルトでは "303 See Other" ヘッダをデフォルトで送付するようになりました。
永続的または一時的なリダイレクトを行うには、第2引数にtrueやfalseに代えて状態コードを指定する必要があります。

$this->redirect($target);       // 303 See Other
$this->redirect($target, 302);  // 302 Found
$this->redirect($target, 301);  // 301 Moved Permanently

7. IE-8特有のスタイルシート

Acidテストを通ったにも関わらず、ie8fixes.cssの追加によってのみIE8互換は達成できます。このため、すべてのカスタマイズしたテンプレートは調整が必要です。加えて独自のバックエンドのテーマを使用しているなら、既存のスタイルシートへの変更を追跡を確認して、必要な変更を加える作業も必要です。

"be_main" テンプレートの新しいスタイルシートの順番は以下のようになっています。

<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/basic.css" media="screen" />
<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/main.css" media="screen" />
<link rel="stylesheet" type="text/css" href="plugins/calendar/calendar.css" media="screen" />
<?php if ($this->be27): ?>
<link rel="stylesheet" type="text/css" href="system/themes/<?php echo $this->theme; ?>/be27.css" media="screen" />
<?php endif; ?>
<?php if ($this->isMac): ?>
<link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/macfixes.css" media="screen" />
<?php endif; ?>
<!--[if lte IE 7]><link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/iefixes.css" media="screen" /><![endif]-->
<!--[if IE 8]><link type="text/css" rel="stylesheet" href="system/themes/<?php echo $this->theme; ?>/ie8fixes.css" media="screen" /><![endif]-->
<?php echo $this->stylesheets; ?>

8. mini-calendarモジュール

バージョン2.7でmini-calendarモジュールは廃止されます。代わりに、"mini-calendar" のビューをカレンダー・モジュールで選択でき、カスタム・レイアウト・モジュールの作成をさらに柔軟に行えるようになります。
しかし、カスタムシートに若干の調整が必要となるかもしれません。

/* バージョン2.7では無効な記述 */
.mod_calendar td { … }
.mod_minicalendar td { … }
 
/* 今から有効で、バージョン2.7での推奨 */
table.calendar td { … }
table.minicalendar td { … }

9. ニュースレターのテンプレート

ニュースレターの購読開始と購読終了のモジュールで、チャネルの選択メニューを非表示にできるようになりました。(チャネルは、ニュースレターの
そうして、チャネルは固定した設定となり、講読者が変更できなくなります。

この機能は"nl_default.tpl"のテンプレートの調整に伴い必要となりました。

<input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId; ?>" />
<?php if (!$this->showChannels): ?>
<?php foreach ($this->channels as $id=>$title): ?>
<input type="hidden" name="channels[]" value="<?php echo $id; ?>" />
<?php endforeach; ?>
<?php endif; ?>
<input type="text" name="email" class="text" value="<?php echo $this->email; ?>" />
<?php if ($this->showChannels): ?>
<div class="checkbox_container">
<?php foreach ($this->channels as $id=>$title): ?>
<span><input type="checkbox" name="channels[]" id="opt_<?php echo $this->id; ?>_<?php echo $id; ?>" value="<?php echo $id; ?>" class="checkbox" /> <label for="opt_<?php echo $this->id; ?>_<?php echo $id; ?>"><?php echo $title; ?></label></span>
<?php endforeach; ?>
</div>
<?php endif; ?>
<input type="submit" name="submit" class="submit" value="<?php echo $this->submit; ?>" />

10. 廃止されるnavigationモジュール

「ナビゲーションメインメニューアイテム」と「ナビゲーションサブメニューアイテム」の2つのモジュールは完全に削除されました。これらと同じ機能は通常の「ナビゲーション・メニュー」を使用して、「開始レベル」と「停止レベル」を調整することで得られます。

  • ナビゲーションメイン: 開始レベルを0、停止レベルを1、ハードリミットをチェックしたナビゲーションメニュー
  • ナビゲーションサブ: 開始レベルを1、任意の停止レベルのナビゲーションメニュー

ナビゲーション・モジュールの切り替えにより、スタイルシートの調整が必要な場合があります。具体的には、".mod_navigationMain"".mod_navigationSub"をスタイルシートで使用していた場合です。代わりに、IDを割り当てたでスタイルシートの使用をお勧めします。

11. 1カラムのログインのテンプレートの調整

ログイン用のテンプレート"mod_login_1cl"は、テーブルレスなフォームのフィールドに適合されます。

<form action="<?php echo $this->action; ?>" method="post">
<div class="formbody">
<?php if ($this->message): ?>
<p class="error"><?php echo $this->message; ?></p>
<?php endif; ?>
<input type="hidden" name="FORM_SUBMIT" value="tl_login" />
<label for="username"><?php echo $this->username; ?></label>
<input type="text" name="username" id="username" class="text" maxlength="64" value="<?php echo $this->value; ?>" /><br />
<label for="password"><?php echo $this->password; ?></label>
<input type="password" name="password" id="password" class="text password" maxlength="64" value="" /><br />
<div class="submit_container">
<input type="submit" class="submit" value="<?php echo $this->slabel; ?>" />
</div>
</div>
</form>

また、テンプレートには"tableless"(1カラムの場合)、または"tableform"(2カラムの場合)といったクラスが追加されます。