
数週間前、必要に応じて、作成したばかりのサイトにフォーラムを追加する必要がありました。 サイトは完成段階にあり、ユーザーは1回または2回、計算が間違っています。 このサイトはCodeigniterで書かれています。 PhpBBは、一般的な無料フォーラムバージョン
3.1.1の 1つとしてフォーラムとして選ばれました。 簡単な操作の後、フォーラムは問題なくインストールされました。 ユーザーの関心を引くようになりました。
まず、自分の時間やクライアントの時間を無駄にしないために、既製のソリューションを探すことにしました。 phpBB3_libraryライブラリへの有効なリンクはもはや見つかりませんでした。WPやその他のエンジンのプラグインは見つかりましたが、自分自身と私の頭脳(サイト)とフォーラムの統合を簡単にしたかったのです。
私は長い間グーグルしなかった、この
記事を見つけたので、phpBBのユーザー機能の深さへの潜入が始まりました。
問題の声明
- 簡単に統合できます。 1つの実装クラスが必要です。 フォーラムエンジンに変更はありません。そのため、フォーラムを更新しても何も飛ぶことがありません。
- クラスでのフォーラム機能の最大使用。 自転車に乗りたくありません。
- 既存のフォーラム機能に基づいて、共同登録、パスワード変更、認証、セッションの終了、ユーザーのブロックとブロック解除を実装します。
分析
ドックを読んだ後、ユーザー管理機能が<forum root> /includes/functions_user.phpにあり、承認が<forum root> / phpbb / auth / providerにあることが明らかになりました。 このフォルダーには、いくつかの許可オプションの機能が含まれています。 許可のタイプは、フォーラムの管理パネルの「一般->認証」セクションで設定します。 デフォルト値-Dbを設定します。
原則として、ユーザーデータの更新に加えて、これら2つのファイルに必要な機能を見つけました。 次に、実装に進みます。
初期データ
- codeigniterを使用して実装されたWebサイト。
- PhpBBフォーラム。
- サイトユーザーのテーブル-USERS。
- フォーラムユーザーのテーブルはphpbb_USERSです。
- サイト上のユーザーの登録/承認-Codeigniter Authライブラリーがニーズに変換されました。
解決策
タスクが設定されました。実行する必要があります。
始める前に-いくつかのニュアンス。
- サイトでユーザー登録を無効にする必要があります。 これは管理パネルで行います(一般->ユーザー登録->ユーザー名の変更を許可->いいえ)。 ユーザーはサイトでのみ登録できます。
- ユーザー名の変更は禁止されています(一般->ユーザー登録->アカウントの有効化->無効)。
- フォーラムからの許可を禁止しています。 承認を行い、サイトからのみ終了します。 「額」でした-ファイル<forum root> /ucp.phpで、サイト上の対応するページにリダイレクトしました。 (「case 'login':」、「case 'login_link':」、「case 'logout':」の行を参照してください。リダイレクト「header( 'Location:/ auth / login');」および「header( 'Location: / auth / logout ');”)。
- サイトで(リダイレクト()関数がある場合)、名前の競合を回避するために、たとえば、リダイレクト()関数をciredirect()に置き換えます-phpBBには同じ名前の関数があります。
codeigniterの場合、my_phplib.phpライブラリを作成します(codeigniterのライブラリは、アプリケーション/ライブラリフォルダーにあるプラグインクラスの一種です。他に異常はないため、他のエンジン/フレームワークのユーザーに落胆しないでください)。
したがって、ライブラリの内容は次のとおりです。
ライブラリmy_phplib.php<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class My_phpbblib { public $phpBB_user; public $phpBB_auth; public $phpBB_db; public $table_prefix; public function __construct(){
codeigniterで使用-デフォルトでは-認可を担当するコントローラーのライブラリを接続します。
my_phplib.phpを使用する function __construct(){ parent::__construct(); $this->load->library('my_phpbblib'); }
この方法は、phpBB 3.1.1およびphpBB 3.1.3で実行されました(更新後、介入は不要です)。
ご清聴ありがとうございました。
この記事が誰かを助けてくれたら嬉しいです。