04/201811

【freo】メディア一括表示プラグインを指定数のみ表示する【プラグイン】

※ただしsmarty3限定

freoで新着メディアを表示したい場合、たぶん大抵の人は手動でリンク貼ってやるか、freoの公式で配布されているメディア一括表示プラグインで表示領域を限定して固定数のみ表示するような感じで実装しているかと思いますが、後者の場合だとすこし無駄なリソースができてしまうのが困るって感じですよね。

てかうちのブログもトップページに載ってる新着は以前そうでした。すべてのメディアを読み込ませてたので非表示部分のリソースが無駄無駄。

てことでsmarty3限定となってしまいますが、対処法を載せておきます。

というかsmarty3にできる人なら自分ですぐ思いつきそうなのは間違っても思ってはいけない(´・ω・`)

メディア一括表示プラグインのmedia_all.htmlが編集対象です。

<!--{foreach from=$media_alls|smarty:nodefaults item='media_all'}-->
	<!--{if $media_all.path == $path}-->
	<!--{php}if (!$flag) :{/php}--><ul><!--{php}endif;{/php}-->
	<li>
		<!--{if $media_all.type == 'directory'}-->
		<span title="{$media_all.id}" class="directory">{$media_all_names[$media_all.id]|default:$media_all.name}</span>
		<!--{if $media_all.restriction}-->
		<p class="attention">このディレクトリには、閲覧制限が設定されています。</p>
		<!--{/if}-->
		<!--{elseif $media_all.width and $media_all.height}-->
		<a href="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{else}{$freo.core.http_url}{$media_all.id}{/if}"{if $media_all.memo} title="{$media_all.memo}"{/if}><img src="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{if $media_all.thumbnail.id}?type=thumbnail{/if}{else}{$freo.core.http_url}{if $media_all.thumbnail.id}{$media_all.thumbnail.id}{else}{$media_all.id}{/if}{/if}" alt="{$media_all.name}({$media_all.width}px × {$media_all.height}px)" title="{$media_all.name}({$media_all.width}px × {$media_all.height}px)" /></a>
		<!--{else}-->
		<a href="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{else}{$freo.core.http_url}{$media_all.id}{/if}"{if $media_all.memo} title="{$media_all.memo}"{/if}>{$media_all.name}</a>
		<!--{/if}-->
		<!--{assign var="path" value=$media_all.id}-->
		{include file='plugins/media_all/media_all.html'}
		<!--{assign var="path" value=$media_all.path}-->
	</li>
	<!--{php}$flag = 1;{/php}-->
	<!--{/if}-->
<!--{/foreach}-->
<!--{php}if ($flag) :{/php}--></ul><!--{php}endif;{/php}-->

デフォルトだとなっていると思います。

これにいくつか記述を追加するだけです。

<!--{foreach from=$media_alls|smarty:nodefaults item='media_all'}-->
	{if $count < 8} <!--8回に達してない場合-->
	<!--{if $media_all.path == $path}-->
	<!--{php}if (!$flag) :{/php}--><ul><!--{php}endif;{/php}-->
	<li>
		<!--{if $media_all.type == 'directory'}-->
		<span title="{$media_all.id}" class="directory">{$media_all_names[$media_all.id]|default:$media_all.name}</span>
		<!--{if $media_all.restriction}-->
		<p class="attention">このディレクトリには、閲覧制限が設定されています。</p>
		<!--{/if}-->
		<!--{elseif $media_all.width and $media_all.height}-->
		<a href="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{else}{$freo.core.http_url}{$media_all.id}{/if}"{if $media_all.memo} title="{$media_all.memo}"{/if}><img src="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{if $media_all.thumbnail.id}?type=thumbnail{/if}{else}{$freo.core.http_url}{if $media_all.thumbnail.id}{$media_all.thumbnail.id}{else}{$media_all.id}{/if}{/if}" alt="{$media_all.name}({$media_all.width}px × {$media_all.height}px)" title="{$media_all.name}({$media_all.width}px × {$media_all.height}px)" /></a>
		{$count = $count + 1} <!--n回目-->
		<!--{else}-->
		<a href="{if $media_all.restriction}{$freo.core.http_file}/file/media/{$media_all.directory}{$media_all.name}{else}{$freo.core.http_url}{$media_all.id}{/if}"{if $media_all.memo} title="{$media_all.memo}"{/if}>{$media_all.name}</a>
		{$count = $count + 1} <!--n回目-->
		<!--{/if}-->
		<!--{assign var="path" value=$media_all.id}-->
		{include file='plugins/media_all/media_all.html' count=$count scope=parent} <!--count=$count scope=parentを追加して変数をincludeしても適用させておく-->
		<!--{assign var="path" value=$media_all.path}-->
	</li>
	<!--{php}$flag = 1;{/php}-->
	<!--{/if}-->
	{/if} <!--条件終了-->
<!--{/foreach}-->
<!--{php}if ($flag) :{/php}--></ul><!--{php}endif;{/php}-->

で、例だと8回表示させるようになります。

smrty3限定なのはincludeの変数スコープを変更できるのが3からだからです。2は内部で変更された変数を戻すことはできないのでこの方法は使用できません(´・ω・`)

関連エントリー

【freo】メディア登録(タグ機能追加版)【改造】

どうも、freoのメディア登録ってメディアの説明を入力するところはあっても、タ...

2018/01/04
SSL化予定

最近絵の記事が全くない御堂です。 てめぇ本当に絵描か? それはさておき...

2017/08/18
【freo】TinyMCE 4 でのテーマの変更方法

別にfreoに限った話じゃないですけどね。TinyMCE4を実装しているところ...

2014/05/06
【freo】任意のページ内容を任意の箇所に表示【Tips】

freo1.10来ましたね。 それはそうと、freoってなんだかインフォメ...

2014/05/03
【freo】ページ送りナビゲーション【テンプレート】

freoのページ送りナビゲーションって初期だと前のページと次のページのみなんで...

2014/01/04
【freo】検索の順番に関しての戯言。そのうち消す

よくtwitterを定点観測しているんですが(主にTLとfreoとCSP)検索...

2013/11/03

コメント

  • コメントはまだありません。

コメント登録

  • 閲覧制限 ※管理者のみにすると投稿者でも確認ができなくなります。

archive


×

ログイン