Mediaboxは、ファイルの保存、
jsプレイを
仲介する形式でのオーディオとビデオの
再生 、画像の表示、メモの作成、タグの追加、コメントの書き込みを可能にするGPL3 Webアプリケーションです。

Mediaboxは、過去のOstora
FMと
Photoのアイデアを引き継いでおり、Xvid用に作成されたわずかに変更されたMediaboxです。
このアプリケーションは長い間ベータ版でしたが、オープンソースであるため、パブリックドメインに入れる時が来ました。 コメント、変更、改善を歓迎します。
ロゴおよびCSSスタイル自体はXVIDによって作成され、変更されていません。
アプリケーションは3つの部分で構成されています。
1)
フロントエンド 。 多くの異なるライブラリを使用します:
-jquery
-Kendo UI Web、またはむしろバージョン2013.3.1119.open-source(https://github.com/Zazza/Kenju)
-bootstrap2-JSはドロップダウンの表示にのみ使用されます
-medialement-オーディオおよびビデオファイルの再生用
-jquery.Jcrop-画像にメモを作成します
-jquery.timer.js-スワイプボックスに必要
-jquery.swipebox.js-フルスクリーンとスライドショーで写真を見る
-shift.jquery.js-通常の方法でのファイルの選択(CTRL、SHIFL)
-load-image.js-フロントエンド側でプレビュー画像を作成します
-webtoolkit.url.js-UTF8 URLデコード
RequireJSは、多数のJSファイルを扱う便利な作業に使用されます。
フロントエンドは、APIを介してバックエンドとストレージで動作します。
2)
バックエンド 。 ファイル構造、ファイル(画像のプレビューを含む)に関する情報を保存し、ユーザー認証を提供します。
バックエンドはもともと完全にJS(
Prudence )で書かれていました。 フロントエンドはアプリケーションの独立した部分です。つまり、バックエンドに緩やかに接続されています。 この方法は、Yiiを使用してPHPを使用してバックエンドを作成するのが比較的簡単です。 アプリケーションをPHPに移植することは、できるだけ多くのユーザーがmediaboxで作業できるように特別に作成されました。 私は、Yiiフレームワークを使用して非標準の機能を備えたアプリケーションを作成することを大ファンではありません。 それにもかかわらず、強力なActive Recordとアプリケーションの単純な明確な構造のおかげで、可能な限り迅速に目的のタスクを達成することができました。
DBスキーマ:

3)
ストレージ 。 ストレージタスクは、ファイルシステム内のファイルを保存、読み取り、削除することです。 理論的には、ストレージはローカルまたはリモートのファイルシステムとクラウドストレージの両方を使用してファイルを保存できます:Amazon S3、Googleドライブ、Yandexドライブなど。
<a
href=" github.com/Zazza/mediabox-storage ”>シンプル
メディアボックスストレージ
-PHPアプリケーション、Silexフレームワーク。 アプリケーションはデータベースを使用しません。できるだけシンプルにしたかったのです。
デモ
URL: mediabox.8x86.ruログイン/パスワード:テスト/テスト
設置
Github:
github.com/Zazza/mediabox-php-yiiSQLディレクトリから、mediabox-structure.sqlおよびmediabox-data.sqlファイルをデータベースにインポートする必要があります。
次に、/ app / config / main.phpで修正する必要があります。
'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=mediabox', 'emulatePrepare' => true, 'username' => 'mediabox', 'password' => 'mediabox', 'charset' => 'utf8', ),
バックエンドが動作するにはYIIフレームワークファイルが必要です。デフォルトでは、フレームワークディレクトリはアプリとWebがある場所にあります。
ログイン/パスワード:admin / admin
シンプルストレージのインストール:
Github:
github.com/Zazza/mediabox-storage cd mediabox-storage/silex/ php composer.phar install
API
ファイル管理
URL | リクエスト | 答え | 説明 |
/ fm / fs / | $ _GET ["id"] | ジョンソン { テキスト:...、 id:...、 hasChildren:[trueまたはfalse]、 spriteCssClass: "[フォルダ]" }
| ツリービューのディレクトリ構造を取得します |
/ fm / chdir / | $ _GET ["id"] | *ファイルJSONオブジェクト | 現在のディレクトリ内のファイルのリストを取得します |
/ fm /アップロード/ | $ _GET ["ファイル"] $ _GET ["サイズ"] $ _GET ["拡張子"] | *ファイルJSONオブジェクト | データベースに新しいファイルエントリを追加します |
/ fm /親指/ [FILE_ID] / | $ _POST ["データ"] | | アップロードされたファイルが画像の場合、プレビューを保存します |
/ fm / getThumb / | $ _GET ["name"]、name = file_id | コンテンツタイプ:image / png バイナリデータ | プレビューを取得 |
/ fm /コピー/ | $ _POST ["ファイル"](数MB) $ _POST ["folder"](数MB) | | セッションでコピーするファイルのリストを保存します |
/ fm /復元/ | $ _POST ["ファイル"](数MB) $ _POST ["folder"](数MB) | | ごみ箱からファイルを回復する |
/ fm / getTypesNum / | $ _GET ["id"] | ジョンソン { すべて=> [合計ファイル]、 image => [画像ファイルの数]、 video => [ビデオファイルの数]、 音声=> [音声ファイルの数]、 その他=> [他のファイルの数]、 パス=> [HTML STRING] } | FSの現在のパスのタイプおよびHTML文字列ごとのファイル数を取得します |
/ fm /作成/ | $ _GET ["name"] | **フォルダJSONオブジェクト | フォルダーを作成 |
/ fm / getTrash / | $ _GET ["id"](多く) | *ファイルJSONオブジェクト | ごみ箱内のファイルのリストを取得する |
/ fm / fileToTrash / | $ _GET ["id"](多く) | | ファイルをゴミ箱に移動する |
/ fm / folderToTrash / | $ _GET ["id"](多く) | | ディレクトリをゴミ箱に移動 |
/ fm /削除/ | $ _GET ["id"] | | データベースとストレージからファイルを削除する |
/ fm / rmFolder / | $ _GET ["id"] | | データベースとストレージからディレクトリを削除する
|
/ fm / removeFileByName / | $ _GET ["name"] | 平文 file_idを返します | 現在のディレクトリ内のデータベースから名前でファイルを削除します(現在のダウンロードをキャンセルする必要があります) |
/ fm /バッファ/ | *ファイルJSONオブジェクト | | バッファー内のファイルのリストを取得します(コピー用) |
/ fm /過去/ | | | セッションから現在のディレクトリにファイルを移動します |
/ fm / deleteFileFromBuffer /
| $ _GET ["id"] | *ファイルJSONオブジェクト | クリップボードからファイルを削除(コピー用) |
/ fm / clearBuffer / | | | バッファをクリア(コピー)
|
/ fm /並べ替え/ | $ _GET ["type"] | | ファイルの並べ替えを適用する |
/ fm /ビュー/ | $ _GET ["view"] | | ファイル表示モードを適用する
|
/ fm /タイプ/ | $ _GET ["other"] $ _GET ["画像"] $ _GET ["ビデオ"] $ _GET ["音楽"] | | 保存リスト-表示するファイルの種類と表示しない種類 |
*ファイルJSONオブジェクト:
{ id: …, name: …, shortname: …, obj: file”, type: [video,audio,…], mimetype: …, size: …, date: …, ico: …, src: …, ext: …, }
**フォルダJSONオブジェクト:
{ Id: …, name: …, shortname: …, obj: "folder", date: …, size: …, ico: …, parent: [ID ] }
音声
URL | リクエスト | 答え | 説明 |
/オーディオ/ saveList / | $ _POST ["track"](多く) | | 現在のプレイリストにトラックを保存 |
/オーディオ/ createList / | $ _GET ["name"] | | 新しいプレイリストを作成する |
/オーディオ/ showList / | | ジョンソン { Id:...、 名前:... } | プレイリストのリストを取得する |
/オーディオ/ getTracksList / | ジョンソン { Id:...、 名前:... } | | デフォルトのプレイリストの現在のトラック |
/オーディオ/ setPlaylist / | $ _GET ["playlist-id"] | | プレイリストを最新にする |
/オーディオ/ deletePlaylist / | $ _GET ["playlist-id"] | | プレイリストを削除 |
/オーディオ/ボリューム/ | $ _GET ["レベル"] | | 音量を変える |
画像
URL | リクエスト | 答え | 説明 |
/ image / setCrop / | $ _GET ["_ id"] $ _GET ["desc"] $ _GET ["ws"] $ _GET ["x1"] $ _GET ["x2"] $ _GET ["y1"] $ _GET ["y2"] | | 写真にタグを保存 |
/画像/ addTag / | $ _GET ["_ id"] $ _GET ["タグ"] | | タグを追加 |
/ image / getCrops / | $ _GET ["id"] | ジョンソン { x1:...、 x2:...、 y1:...、 y2:...、 ws:[タグ付けされたときの画像の高さ]、 説明:...、 } | 画像の注釈(座標とテキスト)を取得します |
/ image / getTags / | $ _GET ["id"] | ジョンソン { タグ:... } | 画像のタグを取得 |
/ image / addComment / | $ _GET ["id"] $ _GET ["テキスト"] | | コメントを追加 |
/ image / getComments / | $ _GET ["id"] | ジョンソン { テキスト:...、 ユーザー:...、 タイムスタンプ:...、 } | 画像のコメントを取得 |
/ image / getAllTags / | | ジョンソン { タグ、タグ、... } | すべてのタグのリストを取得します |
/ image / getAllCrops / | | ジョンソン { タグ名、タグ名、... } | すべてのメモのリストを取得する |
/画像/ selTag / | $ _GET ["タグ"] | | タグを選択-現在の画像のタグとタグのリストを返します |
/画像/ selCrop / | $ _GET ["作物"] | | タグを選択-現在の画像のタグとタグのリストを返します |
/ image / getFsImg / | | *ファイルJSONオブジェクト: { id:...、 名前:...、 ショートネーム:...、 obj:ファイル”、 タイプ:[ビデオ、オーディオ、...]、 mimetype:...、 サイズ:...、 日付:...、 ico:...、 src:...、 ext:...、 } | 選択したタグとタグに一致する画像のリストを取得します。 |
ストレージAPI
URL | リクエスト | 答え | 説明 |
/保存/ | $ _POST ["id"] $ _POST ["name"] +ファイル | ファイルを保存 |
/取得/ | $ _GET ["id"] | ファイルストリーミング | ファイルを取得 |
/削除/ | $ _GET ["id"] | | ファイルを削除 |
PS
異なるバックエンドを持つ
古いバージョン 。