サポート

メディア管理の挿入時、閲覧制限をかけた時にソースコードが変わる件

miya (2016/04/18 19:24)

設置URL : http://mobelhandler.com/

エントリーやページから メディア管理を呼び出しして、
画像を挿入する場面で、メディア管理のディレクトリに、ユーザー別に閲覧制限を入れている場合と、閲覧制限をかけていない場合とで、挿入時のHTMLソースが変わってしまうのですが、何か意味があるのでしょうか・・・

具体的には、通常時のメディア管理の挿入すると
<p><a href="画像パス"><img title="" src="画像本体パス" alt="" width="120" height="90" /></a></p>
となり、、サムネイルが表示されて、クリックで本体が表示されるソースなのですが

フォルダに閲覧制限をかけたディレクトリから、画像ファイルを指定し、挿入ボタンを押すと

<p><a href="画像パス">ファイル名</a></p>

と テキストのファイルなにリンクが貼るように、挿入時のソースが変わってしまいます。

閲覧制限をかける・かけないに関わらず、同じ挿入ソース(サムネイルが表示される)にしたいのですが、
どのようにすればいいでしょうか?

投稿記事の種類が決まっており、画像挿入する度に、HTMLソースを変更するのが手間なため、何か方法があればと思いました

何かヒントを教えて頂ければ幸いです

miya (2016/04/18 21:23)

URL : http://mobelhandler.com/

freo は記事や画像ごとに、閲覧制限がかけれるので非常に重宝しています。ありがとうございます。

ところで、テンプレートで 閲覧制限かけている人には、見えなくて、閲覧制限かかっていない人には リンク先が見えるようなことはできないでしょうか?

つまり、閲覧制限により、表示・非表示されるような独自タグがあれば、たとえば管理者ページだとかコミュニティページへのリンクなど、見せたい人にだけ見せれるのでは・・と思いました

もしテンプレートに プログラム入れて実現できるようでしたら教えてください

ミツ (2016/04/22 11:47)

URL : http://32877.xii.jp

こんにちは。

メディア挿入時のHTMLソースは、[freo/templates/internals/admin/iframe_media.html]の97~107行目にあります。

<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{if $restriction}
title="&lt;a href=&quot;{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.thumbnail.width}&quot; height=&quot;{$file.thumbnail.height}&quot; /&gt;&lt;/a&gt;"
{elseif $file.width and $file.height}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{else}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{/if}
class="insert">挿入</a>

つまり

<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{もし閲覧制限がかかっていたらここから}
title="&lt;a href=&quot;{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{もしサムネイル画像があったら}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.thumbnail.width}&quot; height=&quot;{$file.thumbnail.height}&quot; /&gt;&lt;/a&gt;"
{もしメディアが画像だったら}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{そうじゃなければ}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{もし閲覧制限がかかっていたらここまで}
class="insert">挿入</a>

という意味です。

ミツ (2016/04/22 11:48)

URL : http://32877.xii.jp

閲覧制限がかかっているいないに関わらず、サムネイルを挿入するソースにするには、

<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{if $file.thumbnail.width and $file.thumbnail.height}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.thumbnail.width}&quot; height=&quot;{$file.thumbnail.height}&quot; /&gt;&lt;/a&gt;"
{elseif $file.width and $file.height}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{else}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{/if}
class="insert">挿入</a>

のようにすればよいでしょう。

ミツ (2016/04/22 11:56)

URL : http://32877.xii.jp

> ところで、テンプレートで 閲覧制限かけている人には、見えなくて、閲覧制限かかっていない人には リンク先が見えるようなことはできないでしょうか?

できます。
閲覧制限がかかっているのがどの機能なのか(エントリー記事なのかページなのか)によって書き方が変わります。

エントリーの場合は、
[freo/templates/internals/default/default.html]の92~98行目
[freo/templates/internals/view/default.html]の17~23行目

ページの場合は、
[freo/templates/internals/page/default.html]の4~10行目

を参考にしてください。

また、ユーザーのログイン状況によってリンクを表示させたいなら、
【freoTIPS】【テンプレート系TIPS】ログイン状況によって表示を変える方法
http://32877.xii.jp/index.php/view/40
を参考にして下さい。

最後に、老婆心ながら、質問ごとにスレッドを分割されたほうが宜しいかと存じます。

miya (2016/04/22 12:17)

ありがとうございます!まだ全部試す事ができてませんが、本当に助かりました。感謝します

miya (2016/04/22 16:03)

URL : http://mobelhandler.com/

ミツさん。

すいません メディア挿入のソースは 変更ができたのですが、
よくかんがえてみたらメディアに閲覧制限をかけたフォルダには、サムネイルが自動生成されない?ようなので、サムネイル表示ができませんでした・・・
(メディア登録時に、閲覧制限したフォルダに画像を登録しても、サムネイル画像のところは空白で生成されていない)

閲覧制限のメディアフォルダでも、サムネイルを生成できるようにできますか。
もしくは、 閲覧制限メディアの挿入のソースを、<img src="閲覧制限メディアの直リンク"> となる方法を教えて頂きますだけませんでしょうか(こちらのほうが現実的)

miya (2016/04/22 16:29)

URL : http://mobelhandler.com/

トピックを分けずに申し訳ありません。

ユーザーログインで 表示・非表示できる件も教えていただいて有難うございます。

テンプレート部分でと記載してしまったのですが、投稿のエディタ部分では、ユーザーにより表示・非表示にはできないでしょうか?

具体的にやりたい事を書かせていただきますと、

ページを使用して、メディア管理から画像を何枚か挿入するのですが、同じページ内で、公開可能な画像と、閲覧制限がある画像とが混在している場合に、

閲覧制限をかけているユーザーからは、imgタグだけ残ってみえるので(画像はみえないが)、エラー表示のように少し気になるので

メディアに閲覧制限かかって出ない場合は、imgタグもでなくなればいいのにな・・・と思った次第です。

何か解決方法あれば教えていただけると幸いです

ミツ (2016/04/25 09:35)

URL : http://32877.xii.jp

こんにちは。

> もしくは、 閲覧制限メディアの挿入のソースを、<img src="閲覧制限メディアの直リンク"> となる方法を教えて頂きますだけませんでしょうか(こちらのほうが現実的)

{elseif $file.width and $file.height}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"

既にコメントした引用部の内、上記部分が画像の直リンクを表示している部分なので、

<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{if $restriction}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.thumbnail.width}&quot; height=&quot;{$file.thumbnail.height}&quot; /&gt;&lt;/a&gt;"
{elseif $file.width and $file.height}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{else}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{/if}
class="insert">挿入</a>

のようにすればよいと思います。
(試していないので表示がどうなるかはわかりません。)

ミツ (2016/04/25 09:40)

URL : http://32877.xii.jp

> テンプレート部分でと記載してしまったのですが、投稿のエディタ部分では、ユーザーにより表示・非表示にはできないでしょうか?

管理メニュー→ページ管理→ページ編集→本文フォーム内では、条件分岐を利用することができません。
よって、投稿のエディタ部分では、ユーザーにより表示・非表示にはできません。

具体的な対応策としては、

(1)メディア一括表示プラグイン(http://freo.jp/plugin/media_all.html)をDLして実装する
(2)トップページとかでもメディア一括表示プラグインを利用するためのdisplayプラグイン(http://32877.xii.jp/index.php/view/129)をDLして実装する
(3)メディアを一覧表示したいページのテンプレートを別途作成する(「エントリーごと、ページごとにテンプレートを変更する」http://freo.jp/document/customize/template_entry_page.html
(4)(3)で作ったテンプレートに特定のディレクトリ以下のメディアを一括表示するテンプレート(http://freo.jp/plugin/media_all.html#function_path)を実装する

などが考えられると思います。

miya (2016/04/25 17:09)

URL : http://mobelhandler.com/

ミツさん、本当に何度も対応感謝です。

ただ、ソース貼り付けたところ、画像が表示されないので、
ソースを見ました所、

閲覧制限かけたフォルダ内の画像パスは、通常のパスと違うのか・・(freoの仕様?)、画像は表示できませんでした。

下記が閲覧制限かけた画像へのパスです
<img src="http://ドメイン名/index.php/file/media/フォルダ名/ファイル名.jpg" alt="" /></p>

頂いたソースは通常画像のパスになりました

<img src="http://ドメイン名/files/medias/フォルダ名/ファイル名.jpg" alt="" /></p>
となります

閲覧制限のパスにするには、どのように記載すればいいでしょうか・・

具体的には
freo/files/medias/(あとは同じ) →freo/index.php/file/media/(あとは同じ)
のようにindex.phpをドメイン後に追加、files をfileにするには・・(media はソースのsをとるのはわかりますが)

何度もすいません。お暇な時に教えていただければ幸いです

ミツ (2016/04/26 01:25)

URL : http://32877.xii.jp

こんにちは。

<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{if $restriction}
title="&lt;img src=&quot;{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.thumbnail.width}&quot; height=&quot;{$file.thumbnail.height}&quot; /&gt;&lt;/a&gt;"
{elseif $file.width and $file.height}
title="&lt;img src=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot; alt=&quot;{$file.memo|default:$file.name}&quot; title=&quot;{$file.memo|default:$file.name}&quot; width=&quot;{$file.width}&quot; height=&quot;{$file.height}&quot; /&gt;"
{else}
title="&lt;a href=&quot;{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}&quot;&gt;{$file.memo|default:$file.name}&lt;/a&gt;"
{/if}
class="insert">挿入</a>

上記で一度お試し下さい。

miya (2016/04/26 10:11)

ミツ様、出来ました。本当に助かりました。感謝です!

返信

  • この記事に返信します。
  • 返信の際は、設置URL以外の項目は入力必須です。
投稿フォーム
名前
設置URL
本文(本文の装飾について
編集キー(投稿した記事を編集する際に使用します。)
投稿キー(スパム対策に、投稿キー を半角で入力してください。)