tagsファイルについて

tagsファイルについて

- hideki ichihashi の投稿
返信数: 8
お世話になります。
ちょっと困っておりまして、もしご存じの方がおられたらぜひご教示いただけましたら幸いです。

index.phpと同じ階層に
tagsというファイルがありますが、これは一体なんでしょうか?


と申しますのも、
Ver1.9を使用しており、moodle for mobileで携帯対応をして、
利用させていただいておりましたが、
auのW62Sという機種について、画面に以下のように表示されます。
(これは一部です。また、手写しなので誤字があると思いますが・・)

----------------------------------------
サイト管理をスキップする
サイト管理
";}function expand(i){if(parkplatz[i]===null{return;}var nothing=document.getElementById("vh_div"+String(i))+varobj=parkplatz[i]=null;nothing.parent Node.replacechild(obj,nothing);varicon=document.getElementBYId("vh_div"+String(i)+"indicator");icon.innerHTML=\ ";]\}function expandall(){for(i=1;i〈=vh_numdivs;i++) {expand(i);}}function collapseall(){for(vari=vh_numdivs;i〉0;i--) {collapse(i);}}//]]〉
----------------------------------------

しかし、他のauやdocmoもソフトバンクもそのような問題は確認できず、
普通にログイン画面が表示されます。
それでこのようなコードを生成しているところを探したところ、
/blocks/admin_tree/block_admin_tree.php
にあることがわかったのですが、
ここのクラスを使用しているところは、
このtagsというファイルだけだったのです。
しかし、このファイルを参照しているところは不明で、
またPHPファイルでもないため、何をしているのかがよくわからず、
お願いした次第です。

何卒よろしくお願いします。


hideki ichihashi への返信

Re: tagsファイルについて

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
ソースコードにタグ付けするためのファイルみたいですね。
ご参考までに下記ページをご覧ください。笑顔

[Vimでシステム開発 tagファイルとtaglistプラグイン(その1)]
http://uprush.net/2009/05/vimでシステム開発-tagファイルとtaglistプラグイン(その/

それでは、tagsファイルを削除しても良いかどうかとういことになるかと思いますが、削除してもMoodleの運用に関して特に問題はありません。
Mitsuhiro Yoshida への返信

Re: tagsファイルについて

- hideki ichihashi の投稿
Yoshida様

早々にご連絡いただきまして、ありがとうございます。
moodleとは無関係なファイルなのですね。。
大変失礼しました。
おそらくECLIPSEがはき出しているものかなと思います。
ありがとうございます。
hideki ichihashi への返信

Re: tagsファイルについて

- Tatsuya Shirai の投稿

 tagsファイル自体は実行するものではありません.これは全関数がどのファイルのどの位置にあるのかを記録してるファイルで,適切なプログラム(エディタなど)を使えば容易にジャンプできる,そういうインデックスのためのデータファイルです(だと思います^^;).

 原因は別にあります.blocks/admin_tree/blocks_admin_tree.php

            $this->content = new object();
            $this->content->text  = '
<script type="text/javascript">

このシングルクオート以下は$this->content->textに格納される文字列なのですが,これのシングルクオートの対応がauを端末とした時だけ壊れているのではないかと推察されます.その続きです.

    var icon = document.getElementById("vh_div"+String(i)+"indicator");
    icon.innerHTML = "'.addslashes_js($closedimg).'";
}

function expand(i) {
    if (parkplatz[i] === null) {

漏れ出ているのはこの青いダブルクオート以下の文字列ですね.もし,addslashes_js($closedimg)の戻り値である文字列中にシングルクオートが含まれるならば,このような挙動の発生は理解できます.

 なぜそのようなことが発生するのか,その根本的な原因については私も分かりません(MFMを使っていないため).

Tatsuya Shirai への返信

Re: tagsファイルについて

- Tatsuya Shirai の投稿

$closedimgは閉じた状態のフォルダのアイコン画像です(ツリー表示のところで使います).

addslashes_js($closedimg)のちょっと上のところで,

        if ($this->tempcontent !== '') {
            $closedimg = '<img src="'.$CFG->pixpath.'/i/closed.gif" alt="'.s(get_string('folderclosed')).'" />';
            $openedimg = '<img src="'.$CFG->pixpath.'/i/open.gif" alt="'.s(get_string('folderopened')).'" />';

このように生成されていますね.日本語を選択しているならば,get_string('folderclosed')は,

$string['folderclosed'] = 'クローズフォルダ';

別に問題は無さそうです.あと,addslashes_js()関数はmoodle/lib/weblib.phpの中にあります.今回は$varはis_string()だと思います.

$closedimgを生成している箇所で,var_dump($closedimg)を見てみたいですね.addslashs_js()で特殊文字ををエスケープした結果にも興味あります.もしかしたらそのエスケープを問題の携帯電話のブラウザが理解できないのかも知れませんね.

hideki ichihashi への返信

Re: tagsファイルについて

- Tatsuya Shirai の投稿
 ちなみにサイト管理ブロックのアイコン表示が原因だとするのでしたら,管理者以外のユーザでログインしてみてはどうでしょう? それでも上記ゴミが画面上に現れますか?
Tatsuya Shirai への返信

Re: tagsファイルについて

- hideki ichihashi の投稿
Shirai様

早々に教えて頂きましてありがとうございます。
確かにそちらのコードが原因のようです。
今、テスト環境を整えておりますので、上記教えて頂いたことを
確認してみたいと思います。

>管理者以外のユーザでログインしてみてはどうでしょう?

まだログインする前の状態での出来事でして、なぜ管理画面関連のコードが実行されているのかよくわかりません。
画面上に散らばったリンクの断片のようなものがあり、
それを押すと問題のau W62Sでも通常のログイン画面が表示されるという現象になっています。
(携帯の所持者が私ではないので詳細がつかみにくい状態でして。。)
おそらくdocomoではここのコードを通っていないのではと推測していますが、
これからそれも含めて確認させていただきます。
またご報告させていただきます。
ありがとうございます。
Tatsuya Shirai への返信

Re: tagsファイルについて

- hideki ichihashi の投稿
お世話になります。

ちょっとした動きがありましたので、ご報告させていただきます。

結果としましては、不具合が再現しなくなってしまいました。
何をしたかと言いますと、

崩れた画面にあるリンクを押す

ログイン画面になる

ゲストログインする

以上で、その後再現しなくなってしまいました。
Shirai様の
>管理者以外のユーザでログインしてみてはどうでしょう?
という意味を間違えて捉えていました。
つまりはこれをしてみたらとおっしゃっていたのですね。。
失礼しました。

予想でしか無いですが、
その方の携帯は3ヶ月前に管理者権限でログインしたことがあり、
その後一度も携帯でログインしていませんでした。
そのときのセッション情報がひょっとしたら残っていたのかなと。。
データベースのデータもそのときとは変わっていますし。
化けて出ていた文字はどう見ても管理者画面の内容なのですね。
しかし、たとえ管理者で再度ログインしても再現しませんし、
javascriptを表示しているコードは通っていないのです。

気持ちがわるいので、引き続き調査をしたいと思っていますが、
皆様には大変お手数をおかけいたしました。
また進展ありましたらご報告させていただきます。


hideki ichihashi への返信

Re: tagsファイルについて

- Tatsuya Shirai の投稿
何となくスッキリとはしませんが、取り敢えず再現性の高い現象では無いのであれば様子見でいくしかないですね。

管理ブロックは教師以外では表示されないと思ったので、管理者以外でログイン(正しくは教師以外と言うべきだったかも)されたらどうなるか、と提案した次第です。それ以上でもそれ以下でも無く。

とりあえず様子見ですね。