or 管理画面へ

No.2

てがろぐでD&Dまたはコピペで画像投稿するやつV2


clipboard_1734491768941_huidtz.png

てがろぐで使える画像アップロード用拡張スクリプトです。
PHPとJavascriptでできています。

主な機能


  • 複数画像D&D
  • Ctrl+Vでクリップボードの画像をアップロード
  • サムネイル自動作成(加工の反映を選択可能)
  • WEBP対応,WEBP変換機能
  • 文字入れ機能
  • 透かし画像入れ機能(位置選択可能)
  • リサイズオプション(PHPにて設定)
  • トリミング機能
  • ファイル命名規則切り替え


画像は投稿ボタンを押した際にアップロードされます。

配布ファイル


※おわび:過去配布の.httaccessに無関係のURLがまぎれこんでいました。
削除か最新ファイルを上書きしてください。

http://tekitote.s324.xrea.com/download/t...
重要な変更:今バージョンよりディレクトリ構成が変更になりました。
共通ログイン連携スクリプトを追加し、スクリプト本体を下位ディレクトリに格納するようにしました。
お手数ですがskin-cover.html内の記述の変更と前バージョンファイルの除去をお願い致します。
詳しくはreadmeをお読みください。
過去ファイル
http://tekitote.s324.xrea.com/download/t...

使い方



はじめに、透かし画像を使う場合はPNG画像を用意してください。(サンプル用にwatermark.pngを同梱しています。差し替えてください。)

ZIPを展開し、中にあるファイルをそのままtegalog.cgiと同じディレクトリにコピーしてください。
ファイル構成は以下のようになるはずです。

てがろぐのあるディレクトリ(一部省略)
- tegalog.cgi
- tegalog-auth.php(ログイン連携用共通スクリプト)
- tega-exuploader
  - uploader.php *
  - uploader.js *  - uploader.ini

アップロードできたら、

<script src="tega-exuploader/uploader.js"></script>



を使用中スキンのskin-cover.html内、[QUICKPOST]下に張り付けてください。

アップローダーを更新する際は * のついているファイルだけ最新版を上書きコピーしてください。

uploader.js



6~10行目
無理やりここにスタイルシートを組み込んでいるので、見た目を変えたい場合はここを弄るか、skin-cover.htmlで使用しているCSSに追記してください。

19行目

<input type="text" id="customText" value="無断転載禁止/DO NOT REPOST">


 value内のテキストを変更しておくと便利です。
 頻繁に使う項目は checked を付けておくとよいでしょう。

33行目あたり

<option value="watermark.png">watermark.png</option>


透かし画像を複数使う場合は、以上に続き<option value="watermark2.png">サンプル1</option>のような形で追加してください。

uploader.ini



設定項目です。初期値は以下のようになっています。
# 画像アップロード先ディレクトリ
uploadDir=../images/
# サムネイル保存先ディレクトリ
miniDir=../images/mini/
# サムネイルの幅(px)
thumbnailWidth=300
# テキスト挿入に使うフォントファイル
fontFile=../Mplus1-Regular.ttf
# 画像サイズ制限オプション(1 = 有効, 0 = 無効)
resizeOption=1
# リサイズ時の最大サイズ(px)
maxDimension=1000
# 透かし画像ファイル
defaultWatermark=../watermark.png
# 透かし画像の倍率(対横幅)
watermarkScale=0.2
# ファイル名モード: 1 = 元ファイル名 2 = ランダムな英数字(12文字) 3 = 日時+連番-ユーザーID
fileNamingMode=3
# 一度にアップロードできる最大ファイル数
maxFileCount=20
# 1ファイルあたりの最大サイズ(MB)
maxFileSizeMB=20
# 画像変換オプション(0 = 変換なし, 1 = WebPに変換, 2 = AVIFに変換)
imageConvertOption=1
# JPEG保存品質(%)
jpegQuality=85
# 画像1枚あたりの最大ピクセル数(幅×高さ。約40メガピクセル。デコード時のメモリ消費対策)
maxImagePixels=40000000


注意:
アップローダー本体を更新するときはこのファイルを上書きしないようにしてください。

・Mplus1-Regular.ttf
文字入れ機能用の初期フォントファイルとして、Mplus1-Regular.ttfが同梱されています。

>M+フォントについて
>https://mplusfonts.github.io/
>SIL Open Font Licenseについて
>https://licenses.opensource.jp/OFL-1.1/O...

TIPS:新規投稿/編集画面で使う方法



1. <script src="tega-exuploder/uploader.js"></script>
だけ書いたedit.htmを用意し、使用中のスキンディレクトリにアップロード。
2. 管理画面→システム設定→高度な設定 内の
☐スキンDIRにedit.htmがあれば編集画面で読み込む
にチェックを入れる。
3. 使えます。

上級者向け
このスクリプトはclass="tegalogpost"がある場合その下に挿入されるようになっています。
これを応用して、てがろぐCGIソース内の「セーフモード」項目を変更、高度な設定の「編集画面でedit.cssとedit.jsを(あれば)読み込む 」にチェックを入れてuploader.jsをedit.jsに変更の上フリースペースでスクリプトを読み込むようにするとすべての投稿画面で使えるようになります(確かめてないので、多分)。ただし不具合が出る可能性があるので自己責任の上ご利用ください。

このスクリプトはAIエージェントを用いて作成しました。不具合があるかもしれませんので、もし見つけた方はhttp://tekitote.s324.xrea.com/ までご連絡ください。

また、このスクリプトの改変、改変後の再配布、自作配布スキンへの組み込みはご自由にどうぞ。
できればhttp://tekitote.s324.xrea.com/ へのリンクがあるとなにかあった場合にユーザーが助かるかもしれません。

このスクリプトを利用して生じたトラブルについては責任を負いかねますのでご了承ください。
畳む


<script src="upload.js"></script>

を使用中スキンのskin-cover.html内、[QUICKPOST]以下に張り付けてください。
以下のファイルはてがろぐ本体があるディレクトリにアップロードしてください。
upload.js
upload.php
Mplus1-Regular.ttf (使うフォントファイル)
watermark.png (透かし画像用ファイル/PNGを推奨)

初回アップロード時にimagesディレクトリ、miniディレクトリがない場合は自動で作成されます。

クイックポスト下にUIが表示されていれば導入成功です。
画像選択は「ここをクリック(タップ)で~」から行ってください。コピペの場合は開いているページにフォーカスしている状態であれば可能です。
注意:デフォルトの画像選択からでは各オプションは反映されません。

※導入時の注意点
このスクリプトはclass="tegalogpost"がある場合その下に挿入されるようになっており、投稿ボタン押下時に(記事投稿可能かに関係なく)画像送信する仕組みになっています。
最新版ではログイン時のみUI表示・アップロード可能になっていますが権限に関係なく画像アップロードできる点にご注意ください。
また、未知の脆弱性があるかもしれませんので機密性の高い画像はアップロードしないようにしてください。

画像ファイル名はアップロード時の名前(英数字と一部の記号のみ)/ランダムな文字列/日時+連番+ユーザー名から選べます。すでに同じファイル名がある場合は連番になります。使用できない記号があると表示されないことがあります。また、日本語が含まれていると弾くようになっています。Ctrl+Vでのアップロードはランダムな数列がファイル名になります。

あまり大きな画像だとサーバーのスペックによってはタイムアウトする可能性があるのであらかじめ記事をバックアップしておくなど、ご注意ください。

設定する項目について


upload.js

6~10行目
無理やりここにスタイルシートを組み込んでいるので、見た目を変えたい場合はここを弄るか、skin-cover.htmlで使用しているCSSに追記してください。

19行目

    
<input type="text" id="customText" value="無断転載禁止/DO NOT REPOST">


 value内のテキストを変更しておくと便利です。
 頻繁に使う項目は checked を付けておくとよいでしょう。

33行目あたり

    
<option value="watermark.png">watermark.png</option>


透かし画像を複数使う場合は、以上に続き<option value="watermark2.png">サンプル1</option>のような形で追加してください。

upload.php

6~13行目 設定項目です。初期値は以下のようになっています。

$uploadDir = 'images/'; // 画像アップロードディレクトリ
$miniDir = 'images/mini/';//サムネイルディレクトリ
$thumbnailWidth = 250;//サムネイルのサイズ
$fontFile = 'Mplus1-Regular.ttf'; //使用するフォントファイル
$resizeOption = '1'; // 画像サイズ制限オプション(1 = 有効, 0 = 無効)
$maxDimension = 1000; // 最大サイズ
$defaultWatermark = 'watermark.png'; //デフォルトの透かし画像
$watermarkScale = 0.2;//透かし画像の倍率(対横幅)
$convertToWebpOption = '0'; // WebP変換オプション(1 = 有効, 0 = 無効)

WebP変換オプションはデフォルトでは無効になっています。

345行目

    
$text = mb_convert_encoding($text, 'UTF-8', 'auto');

    
環境によっては日本語が文字化けすることがあります。文字化けする場合はSJISなどに変更してください。
また、サーバーによってはセキュリティシステムによって文字入れ機能が使えない場合があります。

・Mplus1-Regular.ttf
文字入れ機能用の初期フォントファイルとして、Mplus1-Regular.ttfが同梱されています。

M+フォントについて
https://mplusfonts.github.io/
SIL Open Font Licenseについて
https://licenses.opensource.jp/OFL-1.1/O...

TIPS:新規投稿/編集画面で使う方法


1.
<script src="upload.js"></script>

だけ書いたedit.htmを用意し、使用中のスキンディレクトリにアップロード。
2. 管理画面→システム設定→高度な設定 内の
☐スキンDIRにedit.htmがあれば編集画面で読み込む
にチェックを入れる。
3. 使えます。

上級者向け
このスクリプトはclass="tegalogpost"がある場合その下に挿入されるようになっています。
これを応用して、てがろぐCGIソース内の「セーフモード」項目を変更、高度な設定の「編集画面でedit.cssとedit.jsを(あれば)読み込む 」にチェックを入れてupload.jsをedit.jsに変更の上フリースペースでスクリプトを読み込むようにするとすべての投稿画面で使えるようになります(確かめてないので、多分)。ただし不具合が出る可能性があるので自己責任の上ご利用ください。

トラブルシューティング


設置サイトでWAFやセキュリティーサービスなどを使用している場合、正しく動作しないことがあります。
お使いのWAF/セキュリティサービスの設定で/tega-exuploader/以降のパスを検査対象から除外してください。畳む



#スクリプト #てがろぐ

配布 No.2 編集 単記事