TYPOlight 2.8への移行メモ

TYPOlight 2.7系からTYPOlight 2.8系に移行したときの雑多なメモです。


ニュースアーカイブ

TYPOlight 2.8.1に移行した後で、ニュースアーカイブで「今月へジャンプ」を指定しているにも関わらず、見当違いの月が選択されるという問題が起きました。

ソースコードを追っかけたのですが、結局は設定していたキャッシュを削除して解決しました。というわけで、

  • TYPOlightのバージョンを更新
  • 何らかの不具合

といったときは、「システム」のグループの「システム保守」や「個人データ』からページのキャッシュを削除した方が良いでしょう。

(キャッシュを有効にしたページを使用していない場合は関係ありません。)

追記

ところが、何となく再発しているような気がします。うぅむ、バグ?

アコーディオン

ページにアコーディオンを使用している場合、TYPOlight 2.8に移行した後でページテンプレートの設定を確認しましょう。

ページテンプレートの「MootoolsのJavaScript」は、TYPOlight 2.7までは、以下から選択するようになっています。

  • (未指定)
  • moo_close_all
  • moo_default
  • moo_modify_foreground

TYPOlight 2.8では、以下から複数を選択できるようになっていて、順番も変えられます。

  • moo_mediabox
  • moo_accordion
  • moo_slimbox

(上記はデフォルトで用意されているもので、独自に加えたJavaScriptがある場合は、それらも表示されます。)

TYPOlight 2.7から移行すると、それぞれの項目は単純に対応しているわけではないため、moo_mediaboxが選択されたデフォルトの状態になるようです。アコーディオンが動作するのに必要なmoo_accordionを選択されなくなり、アコーディオンが動作しないという状態になっていました。

と、いうわけで本サイトも、一時アコーディオンの効果が無効になって、全部表示された状態になっていました。

再びアコーディオン

アコーディオンの動作の問題は一応解決したように見えましたが、まだ完全ではありませんでした。アーティクル内に複数のアコーディオンを使用して、ページを開いたところではすべて閉じた状態になるようにしていましたが、最初のアコーディオンが開いてしまっていました。

これはTYPOlight 2.7.6で、ページテンプレートで「MootoolsのJavaScript」に用意されていたmoo_close_allを指定することで実現されていました。私自身はmoo_close_allの中身も何もみていなかったのですが、これはテンプレートのファイルの1つとして提供されていました。TYPOlight 2.8ではmoo_close_all自体がなくなり、先に指定したmoo_accordionの動作となっていたのでした。

見たこともなかったmoo_close_allやmoo_accordionですが、中身をちょっと確認すると簡単に対処できることがわかりました。

  1. バックエンドで「レイアウト」から「コンテンツ』を選択します。
  2. 「新奇テンプレート」をクリックします。
  3. 「オリジナルのテンプレート」のプルダウンメニューからmoo_accordion.tplを選択します。
  4. 「テンプレートを作成』のボタンをクリックします。
  5. テンプレートの一覧が表示されて、作成したmoo_accordion.tplが表示されます。
  6. moo_accordion.tplの行の編集ボタン編集ボタンをクリックします。
  7. ファイル名の変更画面となりますので、moo_accordion_close_all.tplといった名前にします。(moo_で始まり、拡張子は.tplのまま変更してはなりません。)
  8. 「保存してて閉じる」のボタンをクリックします。
  9. 名前を変更したmoo_accordion_close_all.tplの行のエディタボタンエディタボタンをクリックします。
  10. 以下のdiffのように1行を追加します。
  11. 「保存して閉じる」のボタンをクリックします。

このようにして作成したテンプレートを、moo_close_allを使用していたページレイアウトで「MootoolsのJavaScript」に指定すると従来のデフォルトは閉じた状態のアコーディオンとなります。

但し、アップグレードしてしまった後では、どのページレイアウトでmoo_close_allを使用していたか、わからなくなってしまいます。予め、moo_close_allのテンプレートのコピーを作成しておくと良いかもしれません。

--- moo_accordion.tpl	2009-11-06 23:15:57.000000000 +0900
+++ moo_accordion_close_all.tpl	2010-04-05 11:55:39.000000000 +0900
@@ -4,6 +4,7 @@
 window.addEvent('domready', function() {
   new Accordion($$('div.toggler'), $$('div.accordion'), {
     alwaysHide: true,
+    display: false,
     opacity: false
   });
 });

以下に、変更を加えたテンプレートのファイルをZIP形式の圧縮ファイルに入れて置きました。