サポート
メディア管理の挿入時、閲覧制限をかけた時にソースコードが変わる件
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="<a href="{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.thumbnail.width}" height="{$file.thumbnail.height}" /></a>"
{elseif $file.width and $file.height}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{else}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{/if}
class="insert">挿入</a>
つまり
<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{もし閲覧制限がかかっていたらここから}
title="<a href="{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{もしサムネイル画像があったら}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.thumbnail.width}" height="{$file.thumbnail.height}" /></a>"
{もしメディアが画像だったら}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{そうじゃなければ}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{もし閲覧制限がかかっていたらここまで}
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="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.thumbnail.width}" height="{$file.thumbnail.height}" /></a>"
{elseif $file.width and $file.height}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{else}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{/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="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
既にコメントした引用部の内、上記部分が画像の直リンクを表示している部分なので、
<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"
{if $restriction}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.thumbnail.width}" height="{$file.thumbnail.height}" /></a>"
{elseif $file.width and $file.height}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{else}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{/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="<img src="{$freo.core.http_file}/file/media/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{elseif $file.thumbnail.width and $file.thumbnail.height}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}media_thumbnails/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.thumbnail.width}" height="{$file.thumbnail.height}" /></a>"
{elseif $file.width and $file.height}
title="<img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}" alt="{$file.memo|default:$file.name}" title="{$file.memo|default:$file.name}" width="{$file.width}" height="{$file.height}" />"
{else}
title="<a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}medias/{$freo.query.path}{$file.name}">{$file.memo|default:$file.name}</a>"
{/if}
class="insert">挿入</a>上記で一度お試し下さい。
miya (2016/04/26 10:11)
ミツ様、出来ました。本当に助かりました。感謝です!
返信
- この記事に返信します。
- 返信の際は、設置URL以外の項目は入力必須です。