エントリー

freoのエントリーギャラリー表示のメディアファイルを限定する

【2016/06/16修正】
※限定するファイルをメディア挿入の画像だけでなく、本文に[&optionID|image]を挿入した登録オプション画像もエントリーギャラリーで表示できるよう /files/medias/~または /files/media_thumbnails/~より /files/~に変更しました。

※併せて js/admin.js のtinyMCEの設定で、element_format : "html",を追加してHTMLモードにすると、メディア挿入した画像のタグが<img ~ />にならないためにエントリーギャラリー表示プラグインでメディア挿入した画像が表示されない問題も修正しています。
今までの分から修正する場合は、
libs/freo/plugins/display.entry_gallery.php の46行目と libs/freo/plugins/page.entry_gallery.php の116行目、121行目、294行目、299行目にある

(text LIKE ¥'%<img %¥' AND text LIKE ¥'%/files/media%¥')

の部分を、

(text LIKE ¥'%<img %¥' AND text LIKE ¥'%/files/%¥' OR text LIKE ¥'%|image]%¥')

に、 libs/freo/plugins/display.entry_gallery.php の194行目と libs/freo/plugins/page.entry_gallery.php の269行目にある

preg_match('/<img[^>]+src="([^"]+¥/files¥/media[^"]+)"[^>]+¥/>/'

の部分を、

preg_match('/<img[^>]+src="([^"]+¥/files¥/[^"]+)"[^>]+>/'

にそれぞれ修正して下さい(緑字の部分を削除して赤字の部分を追加)。


freoに標準で添付されているエントリーギャラリー表示プラグインでは、記事内にエントリーの画像イメージ、添付画像ファイル、記事内の画像ファイル(最初の1つのみ)があれば自動的に取得して表示される機能がついていますが、画像イメージ、添付画像ファイルはさておき、記事内の画像ファイルがメディア挿入によるものに限らないので(例えば絵文字などでも取得されてしまう)、場合によってはギャラリーに絵文字のお化け(拡大表示されるため)も並ぶという恐ろしい状況になってしまいます。
ファイル 82-1.jpg
(絵文字は .:. PEPPER .:. さんのGIFアニメをお借りしているので実際の見た目はもっとすごい??)
これをメディア挿入したファイル(/files/medias/~ または /files/media_thumbnails/~/files/~ の画像に限定する方法です。

1) libs/freo/plugins/display.entry_gallery.php の46行目にある

$stmt = $freo->pdo->prepare( ~(略)~ AND (file LIKE ¥'%.gif¥' OR file LIKE ¥'%.jpeg¥' OR file LIKE ¥'%.jpg¥' OR file LIKE ¥'%.jpe¥' OR file LIKE ¥'%.png¥' OR image IS NOT NULL OR text LIKE ¥'%<img %¥')  ~(略)~

の部分を、

$stmt = $freo->pdo->prepare( ~(略)~ AND (file LIKE ¥'%.gif¥' OR file LIKE ¥'%.jpeg¥' OR file LIKE ¥'%.jpg¥' OR file LIKE ¥'%.jpe¥' OR file LIKE ¥'%.png¥' OR image IS NOT NULL OR (text LIKE ¥'%<img %¥' AND text LIKE ¥'%/files/%¥' OR text LIKE ¥'%|image]%¥'))   ~(略)~

に、また194行目の

if (preg_match('/<img[^>]+src="([^"]+)"[^>]+¥/>/', $entries[$entry]['text'], $matches)) {

の部分を、

if (preg_match('/<img[^>]+src="([^"]+¥/files¥/[^"]+)"[^>]+>/', $entries[$entry]['text'], $matches)) {

にそれぞれ変更(緑字赤字に)します。【2016/06/16修正】

2) 同様に libs/freo/plugins/page.entry_gallery.php の116行目、121行目、294行目、299行目の4箇所にある

$stmt = $freo->pdo->prepare( ~(略)~ AND (file LIKE ¥'%.gif¥' OR file LIKE ¥'%.jpeg¥' OR file LIKE ¥'%.jpg¥' OR file LIKE ¥'%.jpe¥' OR file LIKE ¥'%.png¥' OR image IS NOT NULL OR text LIKE ¥'%<img %¥')  ~(略)~

の部分を、

$stmt = $freo->pdo->prepare( ~(略)~ AND (file LIKE ¥'%.gif¥' OR file LIKE ¥'%.jpeg¥' OR file LIKE ¥'%.jpg¥' OR file LIKE ¥'%.jpe¥' OR file LIKE ¥'%.png¥' OR image IS NOT NULL OR (text LIKE ¥'%<img %¥' AND text LIKE ¥'%/files/%¥' OR text LIKE ¥'%|image]%¥'))   ~(略)~

に、269行目の

if (preg_match('/<img[^>]+src="([^"]+)"[^>]+¥/>/', $entries[$entry]['text'], $matches)) {

の部分を、

if (preg_match('/<img[^>]+src="([^"]+¥/files¥/[^"]+)"[^>]+>/', $entries[$entry]['text'], $matches)) {

に、それぞれ変更(緑字赤字に)します。【2016/06/16修正】

これで表示が
ファイル 82-2.jpg
のように絵文字が省かれるようになります。
※一部の画像は イラストわんパグ さんからお借りしました。

ページ移動

関連エントリー

コメント

Nana

待ってました!のTipsありがとうございます!

smarty用プラグインのテキストリンクプラグインも同じことが言えると思い、試行錯誤しているのですが…
結局出来ずに絵文字もテキスト化されてしまっています。
衰退ガラケーのためのプラグインですが…

お時間ありましたら是非ご考案いただければと思いコメントさせて頂きました。

  • 2013/09/17 00:46:00

ccc

smarty用プラグインのテキストリンクプラグインも同じことが言えると思い...

templates/mobiles/internals/view/default.htmlの

{$entry_text.excerpt|smarty:nodefaults}

の部分が

{$entry_text.excerpt|smarty:nodefaults|text_link}

になっていると仮定して、

libs/smarty/plugins/modifier.text_link.phpに3箇所ある

src="([^"]+)"

の部分を

src="([^"]+¥/files¥/media[^"]+)"

にすれば、メディア挿入したファイルにはテキストリンクが、絵文字は絵文字のまま表示できました(ガラケーで確認済み)がいかがでしょうか?

  • 2013/09/17 08:17:00

Nana

お返事ありがとうございます!

教えて頂いたsrc="([^"]+¥/files¥/media[^"]+)"に変える手順ですが、「試してみたんだけどな…」と思いつつ、にらめっこ。
実際にもテキストリンクになりませんでした。

しかし!わたしがバカでした。
私はメディア挿入ではなくオプション管理で写真をアップしていたんです。
ということで…
src="([^"]+¥/files¥/[^"]+)"
に変更で無事思い通りになりました。

合っていますよね…!?ちょっと不安…
ありがとうございました!

  • 2013/09/17 22:45:00

ccc

合っていますよね…!?

オプションの画像だったら、その表示でいいと思いますよ。しかもこれだったらメディア挿入でも適用されるはずです。

  • 2013/09/18 22:28:00

まい

記事を参考にしてオプション管理でアップロードした画像でも反映されるよう下記のようにしました。

(text LIKE ¥'%<img %¥' AND text LIKE ¥'%/files%¥')

するとメディア管理されたファイルのエントリーしか取得されません。
ちなみにメディア取得の部分では

'/<img[^>]+src="([^"]+¥/files¥/[^"]+)"[^>]+¥/>/'

としています。

何度見返してもミスが分かりません。
お返事いただけると助かります。

  • 2014/02/27 15:32:00

まい

コメント欄をお借りし申し訳ありません。
自己解決致しましたのでひとまず記載しておきます。

オプション管理の場合、記事内の文章は
http://freo.jp/document/function/option.html
の通り、独自の記述での登録でした。
よって通常のような<img>タグでは検出されなかった事が判明。

よって、オプションを画像で登録し、表示する際は
[$test1|image]
との記載とし、
text LIKE ¥'%|image]%¥'
を追加することで解決致しました。

  • 2014/02/28 17:58:00

taka

先日はfreoサポート掲示板で漫画プラグインについて御助力いただきありがとうございました。

今度はこちらの記事を参考に絵文字をギャラリーや新着画像に表示させない様にしたのですが、
かわりにメディア挿入した画像も表示されないので困り果てております。

添付ファイルの画像は普通に表示されているのですが、
メディア挿入した画像はギャラリーでは"?"と表示されて新着画像の方はテキストリンクが表示されている状態です。
書き換えが間違ったのかと思い、何回かやり直してみたのですがやはり同じになってしまいます。

何度も本当に申し訳ありませんが、また御助言をお願いできますでしょうか。

  • 2015/01/08 18:54:00

ccc

特に方法に問題があるとは思えないのですが...

念のためtemplates_c/フォルダの.htaccessファイル以外の.phpファイルを全部削除してからアクセスしてみてください。
参考:テンプレートを編集しても反映されない
http://freo.jp/setup/trouble/template_display.html
phpファイルの編集なのでたぶん関係ないとは思いますけど。

それでもダメだったら、当方でカスタマイズした
http://cccabinet.jpn.org/dlrank/dlranklog.cgi?dl=entry_gallery
をダウンロードしてphpファイルをlibs/freo/plugins/に上書きして試してみてください。

  • URL
  • 2015/01/11 10:08:00

taka

ファイルまで用意して頂き、本当に有難うございました。

頂いたファイルと自分の書き換えた物を比較したところ、+src=~の+が抜けていた事が判明しました。
恐らく何回か書き換えた時の物もペースト時に同じ様な凡ミスをしていたのだと思います。

こんな単純なミスに気付かずにccc様にお手数をお掛けしてしまい、本当に申し訳ございませんでした。
これからはもっと気をつけます。ご返信、有難うございました。

  • 2015/01/11 14:48:00

コメント登録

  • コメントを入力してください。
  • 一旦登録したコメントは、あとで編集できませんのでご注意下さい。
登録フォーム

基本的には「全体に公開」されますが、内容によっては管理人の方で公開を制限する場合がありますので、その旨ご了承下さい。

ユーティリティ

2024年04月

- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

キーワード検索

キーワード検索フォーム

ユーザー

  • cccのアバター

新着画像

ブログパーツ

Twitter

Twilogを見る

Feed