見出し画像

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

の即時アップロードではなく投稿ボタンの押下と同時にアップロードするバージョンです。

配布ファイル

2025/1/30 複数の投稿フォームがあるとき、2つめ以降ではアップロードに問題が起きるのを修正(https://note.com/htrkwn/n/n5c1738429c4dを参考にいたしました)

詳しい使い方は中身のreadme.mdをお読みください。
Firefoxではダウンロード時に警告が出るようです。理由不明なのでご容赦ください。

もし不具合に気づきましたらhttps://wavebox.me/wave/77kkcwhk8uzskow7/へご連絡ください。

過去ファイル

主な機能
・複数画像D&D
・Ctrl+Vでクリップボードの画像をアップロード
・サムネイル自動作成(加工の反映を選択可能)
・WEBP対応,WEBP変換オプション
・文字入れ機能
・透かし画像入れ機能(位置選択可能)
・リサイズオプション(PHPにて設定)

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

画像ファイル名はアップロード時の名前と同じとなり、すでに同じファイル名がある場合は連番になります。その場合記事上で正常に表示できないので、手動で表記を変更してください。
また、日本語が含まれていると弾くようになっています。
Ctrl+Vでのアップロードはランダムな数列がファイル名になります。

使い方


※導入時の注意点
このスクリプトはclass="tegalogpost"がある場合その下に挿入されるようになっており、投稿ボタン押下時に(記事投稿可能かに関係なく)画像送信する仕組みになっています。そのため未ログイン時にも投稿欄を表示する設定だと、閲覧者が誰でも画像アップロードできてしまう点にご注意ください。(XSS対策はしていますが、未知の脆弱性があるかもしれませんので)投稿欄はログイン者限定にすることを強く推奨します。

画像ファイル名はアップロード時の名前と同じとなり、すでに同じファイル名がある場合は連番になります。その場合記事上で正常に表示できないので、手動で表記を変更してください。また、日本語が含まれていると弾くようになっています。Ctrl+Vでのアップロードはランダムな数列がファイル名になります。

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

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

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

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

設定する項目について

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 = 無効)
一部のオプション項目はアップローダー上で有効/無効が確認できます。

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/OFL-1.1.html

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に変更の上フリースペースでスクリプトを読み込むようにするとすべての投稿画面で使えるようになります(確かめてないので、多分)。ただし不具合が出る可能性があるので自己責任の上ご利用ください。

このスクリプトはchatGPTを用いて作成しました。不具合があるかもしれませんので、もし見つけた方はhttps://note.com/tekito_note/n/nbdf0de9b571b までご連絡ください。

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

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


いいなと思ったら応援しよう!