0

私はphpを使用してCMSを構築していますが、動的ページが提供できるさまざまなアセットを処理する方法に苦労しています。通常、平均的なページにはさまざまなサイズの写真が含まれます(親指、本文、メインなど) 、インライン画像、およびさまざまなアセット (pdf、flv、mp4、doc など)。

現時点では、ユーザーはアセットをアップロードしてサーバー上にフォルダーを作成できますが、cms 内の動的ページの削除、編集、およびリンクに関して、これを管理する方法についていくつかのテクニックと概念が必要でしたか? すべてのコンテンツ (meta_stuff、title、friendly_url、content_text など) を含むコンテンツ テーブルが既にあります。

アップロード時に、アセット テーブルなどのどこかに参照を保存する必要がありますか? アセット (画像、ドキュメント、ビデオなど) へのすべてのパスを 1 つのテーブルに格納する必要がありますか? またはアセットごとに分けますか?複数の画像サイズ (小、中、大など) を異なるフィールド (assetid、smallpath、mediumpath、largepath など) に保存する必要がありますか?アセットを動的ページにリンクするにはどのような手法を使用すればよいですか?これは結合されたテーブルにする必要がありますか?それとも単一にする必要がありますか?どのようにページの複数の pdf と複数の画像のさまざまなアセットを取得する方法はありますか?これは別の動的ページを参照する可能性があるため、アセットの削除をどのように処理しますか?その他、有益だと思われるものはありますか?

ご助力いただきありがとうございます

4

1 に答える 1

1

説明しているシナリオと同様のシナリオでリソース (ビデオ、画像、ドキュメントなど) を処理する際に留意すべき基本的な事項を次に示します。

何がアップロードされているのか、どのようなものがアップロードされているのか、誰がアップロードしているのを知りたいと思うでしょう。そのためには、次の表を用意するとよいでしょう。

編集:間違いについて申し訳ありません。asset_types.asset_type_idリンクする必要があり、リンクしassets.asset_type_idないでくださいassesst.asset_id

ここに画像の説明を入力
(注: これは単なる概要です。もちろん、さらに多くのフィールドがあります)
このモデルにより、次のタスクを簡単に実行できます。

  • アップロード: 何かがアップロードされると、それを (正しい構成で) どこか .htaccessに保存し、そのパスをテーブルに保存します。
  • 削除: ユーザーが何かを削除しようとしている場合、そのユーザーが所有者かどうかを確認します。
  • 新しいタイプを追加する場合、新しいテーブルを作成する必要はありません。

うまくいけば、これはあなたを正しい方向に導くでしょう。

更新: コメントに答えると、たとえばユーザーが記事に画像を追加したい場合、ここには 2 つのオプションがあります。

  1. ユーザーには、ボタン/選択メニュー/目的の画像を選択するためのものが表示されます。クリックすると<img src=LINK_TO_RESOURCE" />、コンテンツの本文に追加されます (XSS から身を守るようにしてください)。

    また

  2. 独自の単純なマークアップを使用します。ユーザーが画像をクリックすると、これ[[PREFIX_IMG:IMG_ID]]がコンテンツの本文に追加されます。コンテンツが表示されると、<img src="LINK_TO_RESOURCE" />を使用して取得した「タグ」を置き換えますIMG_ID

2 回目の更新:「記事」自体に直接埋め込まれていないリソースを処理するためのオプションがいくつかあります。

  1. たとえば、 「articles」テーブルにフィールドを1 つ持つことができ、テーブルにsummaryもう 1 つの列を呼び出すことができ、. 次に、要約を表示する場合は、データベースから要約テキスト/タイトルを取得し、それにリソースを追加します。assetsasset_sub_typesummary

  2. (これは私が使用する手法です)データベースから要約を取得するときに、その記事に関連するデータベースの画像を確認し、PHP でその場でサイズを変更して要約に追加します。

于 2012-07-09T17:07:17.607 に答える