• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン

> Entry >freo>freoTips>プラグイン系TIPS> ニュースプラグインとかの添付ファイルを増やす方法

【freo】【freoTips】【プラグイン系TIPS】ニュースプラグインとかの添付ファイルを増やす方法

当サイトで配布しているニュースプラグインや、バナー付きリンクプラグイン、スケジュールプラグイン、同人イベントプラグインなどは、添付ファイルを登録することができます。
下記の方法を利用すれば、添付ファイルを増やすことができます。

(freo公式で配布されているプロフィール拡張プラグイン、サークル管理プラグイン、ショッピングカートプラグインなども、下記の方法でファイルを増やすことは出来ると思いますが、動作の保証はいたしかねます。)

PHPを編集して登録できるファイル数を増やす

まずは、PHPを編集して登録できるファイル数を増やしましょう。
編集するPHPは、ファイル数を増やしたいプラグインに同梱されている「page.プラグインID.php」です。
(ニュースプラグインの場合なら、[freo/libs/freo/plugins/page.news.php]です)

  1. page.プラグインID.phpをエディタで開く
  2. 「//ファイル番号定義」で検索する。(2箇所以上あると思うので注意すること。)
  3. $numbersがファイル数を決める配列になっているので、下記を参考にしてファイル数を増やす。
    現状、
        //ファイル番号定義
        $numbers = array('', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10');
    
    のようになっていると思う(上記の場合はfile、file01~file10まで登録できるという意味)ので、たとえば登録できるファイル数を20件にしたいなら、
        //ファイル番号定義
        $numbers = array('', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10','11','12','13','14','15','16','17','18','19','20');
    
    のように編集する。
  4. ファイルを上書き保存してアップデートする。

設定ファイルを編集して登録できるファイルの名前を設定項目を増やす

次に、iniファイルを編集して登録できるファイルの名前の設定項目を増やしましょう。
編集するiniファイルは、ファイル数を増やしたいプラグインに同梱されている「プラグインID.ini」です。
(ニュースプラグインの場合なら、[freo/configs/plugins/config.news.ini]です)

  1. news.iniファイルをエディタで開く
  2. 上部の「;」から始まる行が設定項目の内容を定義している箇所なので、たとえば11~20件目を増やしたいなら、、
    ;file01_name   char(30)
    ;file02_name   char(30)
    
      ~ 中略 ~
    
    ;file09_name   char(30)
    ;file10_name   char(30)
    
    の直後に、下記のように加筆する
    ;file11_name   char(30)
    ;file12_name   char(30)
    ;file13_name   char(30)
    ;file14_name   char(30)
    ;file15_name   char(30)
    ;file16_name   char(30)
    ;file17_name   char(30)
    ;file18_name   char(30)
    ;file19_name   char(30)
    ;file20_name   char(30)
    
  3. 下部の「[ファイル]」以降の行が実際に管理画面→設定管理→各プラグインの設定画面で表示される項目箇所なので、たとえば11~20件目を増やしたいなら、
    [ファイル]
    
    ;ファイル01の名前
    file01_name = "ファイル1"
    
    ;ファイル02の名前
    file02_name = "ファイル2"
    
      ~中略~
    
    ;ファイル09の名前
    file09_name = ""
    
    ;ファイル10の名前
    file10_name = ""
    
    の直後に、下記のように加筆する
    ;ファイル11の名前
    file11_name = "ファイル1"
    
    ;ファイル12の名前
    file12_name = "ファイル2"
    
    ;ファイル13の名前
    file13_name = ""
    
    ;ファイル14の名前
    file14_name = ""
    
    ;ファイル15の名前
    file15_name = ""
    
    ;ファイル16の名前
    file16_name = ""
    
    ;ファイル17の名前
    file17_name = ""
    
    ;ファイル18の名前
    file18_name = ""
    
    ;ファイル19の名前
    file19_name = ""
    
    ;ファイル20の名前
    file20_name = ""
    
  4. ファイルを上書き保存してアップデートする。

テンプレートを編集して記事編集フォームにファイルを登録する部品を増やす

最後に、テンプレートを編集して、各プラグインの記事編集フォームにファイルを登録するための部品を増やしましょう。
編集するテンプレートは、ファイル数を増やしたいプラグインに同梱されている「admin_form.html」です。
form.html」が存在するなら、そちらも下記の通り編集する必要があります。
(ニュースプラグインの場合なら、[freo/templates/plugins/admin_form.html]です)

  1. [admin_form.html]をエディタで開く。
  2. <form action="{$freo.core.http_file}/プラグインID/admin_form{if $freo.query.id}?id={$freo.query.id}{/if}" method="post" enctype="multipart/form-data">~</form>内部にファイルを登録するための参照ボタンを増やす。
    たとえば、
                    <h3>添付ファイル</h3>
                    <dl>
                        <!--{if $freo.config.plugin.プラグインID.file01_name}-->
                        <dt>{$freo.config.plugin.プラグインID.file01_name}</dt>
                            <dd>
                                <input type="file" name="plugin_プラグインID[file01]" size="30" />
                                <!--{if $input.plugin_プラグインID.file01}-->
                                    <input type="checkbox" name="plugin_プラグインID[file01_remove]" id="label_file01" value="{$input.plugin_プラグインID.file01}"{if $input.plugin_プラグインID.file01_remove} checked="checked"{/if} /> <label for="label_file01">{$input.plugin_プラグインID.file01}を削除</label>
                                    <input type="hidden" name="plugin_プラグインID[file01]" value="{$input.plugin_プラグインID.file01}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        
                        ~中略~
                        
                        <!--{if $freo.config.plugin.プラグインID.file10_name}-->
                        <dt>{$freo.config.plugin.プラグインID.file10_name}</dt>
                            <dd>
                                <input type="file" name="plugin_プラグインID[file10]" size="30" />
                                <!--{if $input.plugin_プラグインID.file10}-->
                                    <input type="checkbox" name="plugin_プラグインID[file10_remove]" id="label_file10" value="{$input.plugin_プラグインID.file10}"{if $input.plugin_プラグインID.file10_remove} checked="checked"{/if} /> <label for="label_file10">{$input.plugin_プラグインID.file10}を削除</label>
                                    <input type="hidden" name="plugin_プラグインID[file10]" value="{$input.plugin_プラグインID.file10}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                    </dl>
    
    <dl>~</dl>内部に、のように加筆する。
                        <!--{if $freo.config.plugin.プラグインID.file11_name}-->
                        <dt>{$freo.config.plugin.プラグインID.file11_name}</dt>
                            <dd>
                                <input type="file" name="plugin_プラグインID[file11]" size="30" />
                                <!--{if $input.plugin_プラグインID.file11}-->
                                    <input type="checkbox" name="plugin_プラグインID[file11_remove]" id="label_file11" value="{$input.plugin_プラグインID.file11}"{if $input.plugin_プラグインID.file11_remove} checked="checked"{/if} /> <label for="label_file11">{$input.plugin_プラグインID.file11}を削除</label>
                                    <input type="hidden" name="plugin_プラグインID[file11]" value="{$input.plugin_プラグインID.file11}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file12_name}-->
                        <dt>{$freo.config.plugin.news.file12_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file12]" size="30" />
                                <!--{if $input.plugin_news.file12}-->
                                    <input type="checkbox" name="plugin_news[file12_remove]" id="label_file12" value="{$input.plugin_news.file12}"{if $input.plugin_news.file12_remove} checked="checked"{/if} /> <label for="label_file12">{$input.plugin_news.file12}を削除</label>
                                    <input type="hidden" name="plugin_news[file12]" value="{$input.plugin_news.file12}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file13_name}-->
                        <dt>{$freo.config.plugin.news.file13_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file13]" size="30" />
                                <!--{if $input.plugin_news.file13}-->
                                    <input type="checkbox" name="plugin_news[file13_remove]" id="label_file13" value="{$input.plugin_news.file13}"{if $input.plugin_news.file13_remove} checked="checked"{/if} /> <label for="label_file13">{$input.plugin_news.file13}を削除</label>
                                    <input type="hidden" name="plugin_news[file13]" value="{$input.plugin_news.file13}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file14_name}-->
                        <dt>{$freo.config.plugin.news.file14_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file14]" size="30" />
                                <!--{if $input.plugin_news.file14}-->
                                    <input type="checkbox" name="plugin_news[file14_remove]" id="label_file14" value="{$input.plugin_news.file14}"{if $input.plugin_news.file14_remove} checked="checked"{/if} /> <label for="label_file14">{$input.plugin_news.file14}を削除</label>
                                    <input type="hidden" name="plugin_news[file14]" value="{$input.plugin_news.file14}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file15_name}-->
                        <dt>{$freo.config.plugin.news.file15_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file15]" size="30" />
                                <!--{if $input.plugin_news.file15}-->
                                    <input type="checkbox" name="plugin_news[file15_remove]" id="label_file15" value="{$input.plugin_news.file15}"{if $input.plugin_news.file15_remove} checked="checked"{/if} /> <label for="label_file15">{$input.plugin_news.file15}を削除</label>
                                    <input type="hidden" name="plugin_news[file15]" value="{$input.plugin_news.file15}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file16_name}-->
                        <dt>{$freo.config.plugin.news.file16_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file16]" size="30" />
                                <!--{if $input.plugin_news.file16}-->
                                    <input type="checkbox" name="plugin_news[file16_remove]" id="label_file16" value="{$input.plugin_news.file16}"{if $input.plugin_news.file16_remove} checked="checked"{/if} /> <label for="label_file16">{$input.plugin_news.file16}を削除</label>
                                    <input type="hidden" name="plugin_news[file16]" value="{$input.plugin_news.file16}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file17_name}-->
                        <dt>{$freo.config.plugin.news.file17_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file17]" size="30" />
                                <!--{if $input.plugin_news.file17}-->
                                    <input type="checkbox" name="plugin_news[file17_remove]" id="label_file17" value="{$input.plugin_news.file17}"{if $input.plugin_news.file17_remove} checked="checked"{/if} /> <label for="label_file17">{$input.plugin_news.file17}を削除</label>
                                    <input type="hidden" name="plugin_news[file17]" value="{$input.plugin_news.file17}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file18_name}-->
                        <dt>{$freo.config.plugin.news.file18_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file18]" size="30" />
                                <!--{if $input.plugin_news.file18}-->
                                    <input type="checkbox" name="plugin_news[file18_remove]" id="label_file18" value="{$input.plugin_news.file18}"{if $input.plugin_news.file18_remove} checked="checked"{/if} /> <label for="label_file18">{$input.plugin_news.file18}を削除</label>
                                    <input type="hidden" name="plugin_news[file18]" value="{$input.plugin_news.file18}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.news.file19_name}-->
                        <dt>{$freo.config.plugin.news.file19_name}</dt>
                            <dd>
                                <input type="file" name="plugin_news[file19]" size="30" />
                                <!--{if $input.plugin_news.file19}-->
                                    <input type="checkbox" name="plugin_news[file19_remove]" id="label_file19" value="{$input.plugin_news.file19}"{if $input.plugin_news.file19_remove} checked="checked"{/if} /> <label for="label_file19">{$input.plugin_news.file19}を削除</label>
                                    <input type="hidden" name="plugin_news[file19]" value="{$input.plugin_news.file19}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
                        <!--{if $freo.config.plugin.プラグインID.file20_name}-->
                        <dt>{$freo.config.plugin.プラグインID.file20_name}</dt>
                            <dd>
                                <input type="file" name="plugin_プラグインID[file20]" size="30" />
                                <!--{if $input.plugin_プラグインID.file20}-->
                                    <input type="checkbox" name="plugin_プラグインID[file20_remove]" id="label_file20" value="{$input.plugin_プラグインID.file20}"{if $input.plugin_プラグインID.file20_remove} checked="checked"{/if} /> <label for="label_file20">{$input.plugin_プラグインID.file20}を削除</label>
                                    <input type="hidden" name="plugin_プラグインID[file20]" value="{$input.plugin_プラグインID.file20}" />
                                <!--{/if}-->
                            </dd>
                        <!--{/if}-->
    
  3. ファイルを上書き保存してアップデートする。

注意事項

上記手順でファイルを登録する数を増やすことはできますが、いざファイルを一括登録する時には、サーバーのphp.iniの設定に注意しなければなりません。

サーバーによっては、1度にアップロードできるファイル数、また、アップロードできるファイルサイズに制限がある場合があります。
詳しくは、freoを設置しているサーバーの、php.iniの下記項目をご確認ください。

max_file_uploads … 最大アップロードファイル数
post_max_size … POSTデータの最大サイズ(合計サイズ)
upload_max_filesize … 1ファイルあたりの最大アップロードサイズ

ページ移動

関連記事

ユーティリティ

Twitter

記事検索

ページ上部へ