MENTAを触りはじめた時に、テンプレート内で後置型のifがちゃんと使えたのだが、少なくとも「static_file_path」と同時に使うことで、不具合が発生するようです。

ローカルでMENTAのインデックスにスタイルシートを適用しようとしたところ、タイトルがおかしくなっていました。

スタイルシートへのパスが入ってしまうようになりました。

今のところ原因はわかりませんが、普通にifブロックを使う、ということで回避はできるので大きな問題はありません。

で、コードにも書いていますが、MENTAのインデックスにjQueryを使ってファイルとディレクトリをツリー表示するライブラリである「jQueryFileTree」を使ってみました。

いずれ、ここからソースコードを見ることが出来るようにしようと思っています。

このライブラリはjQueryから(デフォルトでは)PHPを利用してファイルとディレクトリを取得して、その結果をjQueryで表示するものです。

参考

オフィシャルでは「jQuery Easing Plugin」というのが必要ということになっているので入れていますが、読み込んでなくても動いているようではあります。

Dependencies jQuery File Tree requires jQuery 1.2 or above. For easing effects, you will need the jQuery Easing Plugin or another jQuery easing plugin of your choice.

[jQuery File Tree]

ローカルにPHPが入ってなかったので、それを入れるのがなかなか面倒でした。

Perlで書かれたファイルがあればそれを使ったのに…、と思いながら。

また、ローカルのテスト環境では微妙なエラーメッセージが出ているので、それもどうにかしたい…、と思いながら。

Perlで書いてみようかなぁ。

1
PHP Notice: Undefined variable: root in *****/jqueryFileTree.php on line 21

app/controller/header.mt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
? my $title = shift;
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><? if ($title) { ?><?= "$title - " ?><? } ?>menta.nqou.net</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="./jquery.easing.1.3.js"></script>
<script type="text/javascript" src="./jqueryFileTree.js"></script>
<link rel="stylesheet" type="text/css" href="<?= static_file_path("default.css") ?>">
<link rel="stylesheet" type="text/css" href="./jqueryFileTree.css">
<script type="text/javascript">
$(document).ready(function () {
$('#fileTree').fileTree({
root: './',
}, function(file) {
alert(file);
});
});
</script>
</head>
<body>
<h1><? if ($title) { ?><?= "$title - " ?><? } ?>menta.nqou.net</h1>
<h1><?= "$title - " if $title ?>menta.nqou.net</h1>