LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

xelfinder + bulletin(テンプレート編集)で xoopsgallery? のようなもの

投稿ツリー


このトピックの投稿一覧へ

kamezou

なし xelfinder + bulletin(テンプレート編集)で xoopsgallery? のようなもの

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2016/2/18 18:12 | 最終変更
kamezou  1st Class 居住地: 2013~  投稿数: 51
xelfinder + bulletin(テンプレート編集)で xoopsgallery のようなものを作ってみました。( xoopsgallery は、ほとんど知りませんが…)

root/uploads/gallery/記事番号(storyid)/ 内に、画像ファイルを置くという前提です。(フォルダは xelfinder で作成)
root/uploads/gallery/記事番号(storyid)/thumbs/ 内に、サムネイルが作成されます。(thumbsフォルダがない場合 自動で作成)


xelfinder の 一般設定 -> ボリュームドライバ に、次の一行を追加します。
gallery フォルダに直接アクセスできます。
xelfinder:xelfinder:/uploads/gallery:ギャラリー:gid=1

テンプレート:bulletin_item.html の、33行目付近
<div class="itemText"><{$story.text}></div>
を、以下のコードに置き換えます。(半分ぐらいがサムネイル作成…テンプレートから作成するなんて、やっていいんだろうか?)
    <div class="itemText">
      <{if $xoops_requesturi|strstr:"article"}><{*-----------単一記事のページ-----------*}>
        <{$story.text}><br />
        <{assign var=g_file_name value="$xoops_rootpath/uploads/gallery/`$story.id`/*.*"|glob}><{*-----------ファイルを取得-----------*}>
        <{foreach item=img_file from=$g_file_name}>
          <{assign var=f_n value=$img_file|replace:"$xoops_rootpath/uploads/gallery/`$story.id`/":""}>
          <{assign var=img_info value=$img_file|getimagesize}>
          <{if !"$xoops_rootpath/uploads/gallery/`$story.id`/thumbs"|file_exists}><{*-----------サムネイルフォルダ作成-----------*}>
            <{assign var=md value="$xoops_rootpath/uploads/gallery/`$story.id`/thumbs"|mkdir}>
            <{assign var=md value="$xoops_rootpath/uploads/index.html"|copy:"$xoops_rootpath/uploads/gallery/`$story.id`/index.html"}>
            <{assign var=md value="$xoops_rootpath/uploads/index.html"|copy:"$xoops_rootpath/uploads/gallery/`$story.id`/thumbs/index.html"}>
          <{/if}>
          <{if !"$xoops_rootpath/uploads/gallery/`$story.id`/thumbs/$f_n"|file_exists}><{*-----------サムネイル作成-----------*}>
            <{if $img_info[0] > $img_info[1]}>
              <{assign var=x value=160}><{assign var=y value=$img_info[1]/$img_info[0]*160}><{*------サムネイルサイズ(横長の時)------*}>
            <{else}>
              <{assign var=x value=$img_info[0]/$img_info[1]*160}><{assign var=y value=160}><{*------サムネイルサイズ(縦長の時)------*}>
            <{/if}>
            <{assign var=oid value=$img_file|imagecreatefromjpeg}>
            <{assign var=tid value=$x|imagecreatetruecolor:$y}>
            <{assign var=tid2 value=$tid|imagecopyresampled:$oid:0:0:0:0:$x:$y:$img_info[0]:$img_info[1]}>
            <{assign var=timg value=$tid|imagejpeg:"$xoops_rootpath/uploads/gallery/`$story.id`/thumbs/$f_n"}>
            <{assign var=tid2 value=$tid|imagedestroy}><{assign var=tid2 value=$oid|imagedestroy}>
          <{/if}><{*-----------サムネイル作成ここまで-----------*}>
          <a href="." target="_blank" onClick="window.open('<{$img_file|replace:$xoops_rootpath:$xoops_url}>','','width=<{$img_info[0]}>,height=<{$img_info[1]}>');return(false);">
            <img src="<{$xoops_upload_url}>/gallery/<{$story.id}>/thumbs/<{$f_n}>" alt="" />
          </a>&nbsp;
        <{/foreach}>
      <{else}><{*-----------記事一覧のページ-----------*}>
        <{assign var=g_file_name value="$xoops_rootpath/uploads/gallery/`$story.id`/thumbs/*.*"|glob}><{*-----------サムネイルファイルを取得-----------*}>
        <img src="<{$g_file_name[0]|replace:$xoops_rootpath:$xoops_url}>" width="80" alt="" />&nbsp;
        <{$story.text}>
      <{/if}>
    </div>

フォルダ作成や、ファイルアップロードは xelfinder で行います。ファイル名は特に制限はありません。
ワイルドカード(*.*)でファイルを取得しているので、独自にルールを設けることで、絞り込みを設定できます。

このテンプレート変更内 の $story.id を $story.title にすると、フォルダ名を、記事番号ではなくタイトル名にすることができます。(たぶん…)

bulletin の該当の記事のページを表示する時に、サムネイルがなければ、自動で作成されます。(元画像は jpeg であること)
画像やフォルダがない場合は、通常の bulletin と全く変わりません。

テンプレート編集のみですので、サムネイルのサイズなどの表示関係は、好きなように調整してください。
*/
投票数:0 平均点:0.00

  条件検索へ


Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities