サイト内検索について

サイト内検索について

- kenzo fukushima の投稿
返信数: 8

私共のサイトでは、生徒に動画閲覧してもらう構成になっております。

動画自体はAWSに保持し、moodleのページにiframeでストリーミングで表示させています。

各コースは10から20本の動画で構成されており、コースは毎月複製され、公開されます。よって同じ動画はサイト内に複数のページでえ利用されております。

ここでわたくしのやりたいことは、特定の動画がサイト内でどのページに使われているか検索するです。

検索ワードとしては、動画のファイル名(iframe内のパスsrc="httpsストリーミングで表示させています。


各コースは10から20本の動画で構成されており、コースは毎月複製され、公開されます。よって同じ動画はサイト内に複数のページでえ利用されております。


ここでわたくしのやりたいことは、特定の動画がサイト内でどのページに使われているか検索するです。


検索ワードとしては、動画のファイル名(iframe内のパスsrc="https**********の一部)となります。

何か方法はないでしょうか?グローバル検索で可能か試してみましたがヒットしましませんでした。

kenzo fukushima への返信

Re: サイト内検索について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

もし、リソースの「ページ」を使って埋め込み動画をコース内に設置されているのでしたら、以下のSQL文ではいかがでしょうか。

SELECT pg.name AS 'Movie Name',
       REGEXP_SUBSTR(pg.content,'https?://[^"]*') as 'URL',
       cs.fullname AS 'Course Fullname',
       cs.shortname AS 'Course Shortname'
FROM mdl_page AS pg
   JOIN mdl_course AS cs on pg.course = cs.id
ORDER BY cs.id, cs.shortname, pg.name;
Mitsuhiro Yoshida への返信

Re: サイト内検索について

- kenzo fukushima の投稿
返信ありがとうございます。
SQL文に関して全くの初心者です。
Ad-hoc database queries(https://moodle.org/plugins/report_customsql
をインストールし、ご教授いただいた文を適用してみました。

You are not allowed a ; character in the SQL.

と表示されてしまいました。
どのように適用するのか、どのような結果が返ってくるのか
予想できていません。

アドバイスいただければ幸いです。
添付 555.png
kenzo fukushima への返信

Re: サイト内検索について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

お使いのデータベースエンジン (MariaDB, MySQL等) の中に入って直接SQL文を実行するか、ローカルプラグインMoodle Adminerをお使いください。

[Moodle plugins directory: Moodle Adminer]
https://moodle.org/plugins/local_adminer

添付 Moodle Adminer.png
Mitsuhiro Yoshida への返信

Re: サイト内検索について

- kenzo fukushima の投稿
ローカルプラグインMoodle Adminer取得し、指示いただいたメニューにSQL文を入力し実行しました。
DBを指定せずに実行するとエラーが表示。DBは2つありましたのでそれぞれで実行。それぞれで以下のエラーが表示されました。
何が問題でしょうか?
添付 Image1.png
添付 Image2.png
添付 Image3.png
kenzo fukushima への返信

Re: サイト内検索について

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

Error in query (1109): Unknown table 'mdl_page' in information_schema」のエラーは存在しないテーブル「mdl_page」を指定していますというエラーです。

また、「Error in query (1370): execute command denied to user 'Mdl35Ssusr'@'localhost' for routine 'Mdl35db.REGEXP_SUBSTR」のエラーはデータベースユーザ「Mdl35Ssusr」に関数「REGEXP_SUBSTR」の実行権限がありませんというエラーです。

Mitsuhiro Yoshida への返信

Re: サイト内検索について

- kenzo fukushima の投稿
エラーのご説明ありがとうございます。
現状では、私にとってSQLに関する知識が未熟のため、構文の意味、エラーの対処方法など力及ばずといったところです。

出直してきます。
kenzo fukushima への返信

Re: サイト内検索について

- Tatsuya Shirai の投稿

 横から失礼します.
 当方の環境では以下のように(検索結果は無しでしたが)エラーは発生しませんでした.
 データベースの選択はMdl35DBの方で間違いありません.

 実行時のアカウントがroot@localhostではないことが直接的な原因だと思いますが…これは私もお手上げです.

なお,Adminer開始時の画面は以下の通りです.この"ログ”の部分は"root@localhost"になっているでしょうか.
設定個所がほとんど無いので違いがあったとしても私に対策方法は分かりませんが,問題の切り分けの材料にはなると思います.


Tatsuya Shirai への返信

Re: サイト内検索について

- kenzo fukushima の投稿
Adminerの使い方が少し理解できてきました。
私の知りたかったのは特定の動画がサイト内のどのコースで何か所使用されているかということでした。
動画は必ずページのcontentに適用しているため、添付のようにすれば、20か所に使われている情報を得ました。
courseのナンバーが分かるので容易にコースのトップ画面に遷移できます。nameでページのタイトルが分かるので該当ページに遷移できます。
ただ、理解できていないのが下図のidです。てっきりpageのIdだと思い、任意のページを表示させURLのidにこの番号で書き換えても該当ページには遷移しません。
このidはページ遷移には利用できないのでしょうか?検索結果から該当ページに効率よく遷移する方法はありますでしょうか?
添付 5656.png