The Code Project で使用されているディスカッション掲示板 ASP スクリプト。これは、Code Project コミュニティのオープンソース プロジェクトです。
これは、Code Project の元のコンセプトにインスピレーションを与えた「プロジェクト」の最初のものです。私たちは開発者を支援するためにこれらのスクリプトを提供しています。そして、あなたのような開発者がテスト、バグレポートの提出、改善の提案、拡張機能の提出によってお返しに私たちを助けてくれることを願っています。
これらのスクリプトをご自身のサイトで使用することをお勧めしますが、左上隅に「powered by CodeProject」ロゴを表示しておくことをお願いします。また、予めご了承くださいますようお願い申し上げます。これらのスクリプトは間違いなく大幅に変更されるため、定期的にチェックして最新の開発状況を確認するか、ニュースレターを購読して更新の通知を受け取ることをお勧めします。
2000 年 7 月 5 日の時点で、メッセージを順序どおりに整理する主な作業を処理する ActiveX コントロールにソース コードを提供しています。コードに詳しくコメントを付け、コードがどのように機能するかを段階的に説明したかったのですが、単に時間がなかったので、まったく投稿しないよりはそのまま投稿する方が良いと判断しました。バグを見つけたり、改善したりした場合は、送信してください。
注意
ActiveX バージョンのコードでは、フォーラム内のすべてのメッセージをロードして正しく順序付けすることにより、この順序付けを実現するために ActiveX コントロールを使用します。これにより、フォーラムが成長し始めると、明らかにパフォーマンスが低下します。純粋な ASP バージョン 後続のバージョンには、各メッセージの「SortOrder」フィールドが含まれています。これは、メッセージが DB クエリ時に並べ替えられることを意味し、レコードセット サイズと負荷を大幅に削減するためにページング/フィルター処理を含めることができます。このコードの ActiveX バージョンを使用することはお勧めできません。
2001 年 8 月 26 日 - Philip Andrew がフォーラムの PHP バージョンを提供しました。
CodeProject で使用されるディスカッション ボードは Uwe Keim によって作成され、ActiveX コントロール (Visual C++ を使用して作成) と一連の ASP スクリプトで構成されています。 ActiveX コントロールは、フォーラム メッセージ データベースへの低レベルのアクセスを提供し、パラメータをあるページから別のページに渡す方法を容易にする機能を提供します。 ActiveX コントロールは、現時点では DLL 形式でのみリリースされています。その理由の 1 つは、私たちがまだ書き終えていないことと、まだ文書化を始めたばかりであることです :)
New : ASP 専用の新しいバージョンのボードが Uwe によって作成されたため、ActiveX コントロールをいじる必要はなくなりました。ボードの実装は最小限ですが、一連のディスカッションボードを立ち上げて実行するために必要なものがすべて提供されます。現時点では Access のみですが、SQLServer への移行は読者に任せる簡単な作業です。ファイルについては、このページの上部にあるダウンロード セクションを参照してください。
それで、スクリプトに移ります。ここからの議論はすべて、ActiveX バージョンのみに集中します。非 ActiveX バージョンは十分に似ていますが、ディレクトリ構造とファイルのネストが少し異なります。
これらはいくつかのカテゴリに分類されます。
次のようなものもあります。
IIS4 以降で NT4 Server 以降、または PWS で Win9X を実行していることを前提としています。フォーラムは Access データベースに保存されており、アクセスするには Jet Engine を使用します。
ファイルを入手したので、この記事の残りの部分を読む代わりに、プレイを始めたいと思います。私はあなたを責めません。その場合は次のようにします。
/CodeProject/forum/bin
ディレクトリに登録します/CodeProject/common/config.asp
を編集します。/CodeProject/forum/includes/config.asp
を編集します。/CodeProject/forum/data/forum.mdb
への読み取りおよび書き込みアクセス権を持っていることを確認してください。/CodeProject/common/email.inc
を編集します。ブラウザーで/CodeProject/forum/index.asp
を指定するだけで、作業は終了します。
スクリプトは、実際に作業を行うためにワーカー スクリプト ( /forum/app
ディレクトリ内) を利用する一連のメイン ユーザー インターフェイス スクリプト (ルート ディレクトリ内) で構成されています。これらは、ブラウザをユーザー インターフェイス スクリプトにリダイレクトします。
システムの核心は/forum/includes/forum.inc
にあります。このファイルにはフォーラム クラスの定義が含まれており、メイン フォーラム ActiveX コントロールのラッパーです。このクラスは、フォーラム関連のすべての機能を含む主要な通信ポイントです。フォーラム ActiveX コントロールと直接通信することはなく、常にこのクラスを介して間接的に通信します。
このクラスには、作業を実行するメソッドだけでなく、さまざまなアプリケーション スクリプトに URL を返す関数も含まれています。これにより、 /forum/includes/config.asp
ファイルにさまざまなスクリプトの名前を設定できるようになり、ディレクトリ構造の変更が非常に簡単になります。
各メッセージには、そのメッセージの作成者が設定したパスワードがあり、作成者はこれを使用してメッセージを変更または削除できます。これに加えて、グローバル パスワードを使用してメッセージを変更または削除することもできます。これは/forum/includes/config.asp
で定義されており、現在表示している URL の末尾に「 &ad=
」を追加するだけで使用されます。
たとえば、ID 1 のフォーラムのインデックスを表示していて、URL がhttp://www.myserver.com/codeproject/forum/index.asp?forumid=1
の場合、管理モードに入るには、単にURL:
http: // www.myserver.com/codeproject/forum/index.asp?forumid=1&ad=12345
ここで、「12345」はパスワード ( /forum/includes/config.asp
でADMIN_PW
として定義されています) です。これにより、フォーラムを管理するためのオプションが表示されます (フォーラムの名前と説明、および新しいメッセージやメッセージを送信するときに電子メールで送信される電子メール アドレスを設定します)返信メッセージが投稿されます)。
フォーラム自体を追加または削除するには、データベースを物理的に変更する必要があります。これは私たちがまだ行っていないことの 1 つにすぎません...
管理者モードでは、メッセージを変更または削除するオプションも利用できます。また、管理モードになると、フォーラム スクリプトを実行する間は引き続き管理モードになります。管理者モードを終了するには、「 &ad=
」を削除するだけです。
最新バージョンのスクリプトには、ユーザー インターフェイスが強化されているほか、最初のバージョンのいくつかの問題を修正するために内部変更が加えられています。一言で言えば:
過度に。これは単にフォーラムの概要であり、各ファイルが何を行うか、またスクリプトをどのように拡張する予定であるかについても説明していません。私たちはこれらのスクリプトの改善に常に取り組んでおり、メインの CodeProject フォーラムに加えられたすべての拡張機能と変更は、これらのダウンロード可能なファイルに含まれます。
これは進行中の作業だと考えてください。