XenForo:新しいページをヘルプセクションに追加

最近、XenForoエンジンで実行されているフォーラムのヘルプセクションに別のページを作成する必要がありました。 判明したように、それを単純にします。 さらに、エンジン自体のコードを編集する必要はありませんでした。これはもちろん、カーネルを更新するときに将来私たちの生活を楽にするものです。 記事が革新的なカテゴリのものではなく、自分自身のハウツーであるということをすぐに予約してください。







したがって、2つのHelp.phpおよびLoadClassController.phpファイルのみを作成し、それぞれControllerPublicおよびListenerフォルダーに分散する必要があります



Help.phpコンテンツ

<?php class AnyFolder_ControllerPublic_Help extends XFCP_AnyFolder_ControllerPublic_Help { public function actionYouaction() { return $this->_getWrapper('youaction', $this->responseView('XenForo_ViewPublic_Help_ouaction', 'help_youaction') ); } }
      
      







LoadClassController.phpのコンテンツ

 <?php class AnyFolder_Listener_LoadClassController { public static function extendHelpController($class, array &$extend) { if ($class == 'XenForo_ControllerPublic_Help') { $extend[] = 'AnyFolder_ControllerPublic_Help'; } } }
      
      







その結果、次のドキュメントツリーを取得する必要があります。

  • 任意のフォルダ
    • コントローラー公開
      • Help.php
    • リスナー
      • LoadClassController.php




ライブラリツリーにドキュメントツリーを入力します。 その後、同じフォルダー( library )でconfig.phpファイルを開き、そこに追加してデバッグモードを有効にします

 $config['debug'] = true;
      
      







管理パネルの開発タブにアクセスするために、デバッグモードをオンにしました。 このタブで、新しいイベントを作成する必要があります。 これを行うには、 イベントハンドラーを開き、新しいイベントを作成します (または、ブラウザーでhttp://example.com/path_you_forum/admin.php?code-event-listeners/addの形式のリンクをすぐに開きます)。



次に、 load_class_controllerイベントを選択し、ハンドラーを指定します

AnyFolder_Listener_LoadClassController :: extendHelpController 。 残りは変更されません。



今ではテンプレート次第です。 しかし、前に、上記のコードについて少し説明したいと思います。 おそらく既に理解しているように、 AnyFolderはフォルダーの名前です。 同じ名前が、将来作成し、友達を作るクラスに表示されます。 この状況は、 アクションYouaction関数とそのパラメーターyouactionXenForo_ViewPublic_Help_ouactionhelp_youactionに似ています。 したがって、ページがhttp://example.com/path_you_forum/help/ youaction (CNCが有効な場合)およびhttp://example.com/path_you_forum/?help/ youactionで開くことを決定しました 。 他の名前のフォルダにファイルを配置するために必要なアクションと、ヘルプページのURLを変更する方法を説明する価値はないと思います。



それでは、プログラミングを終了して、レイアウトに取り掛かりましょう。 これを行うには、いくつかのテンプレートを編集して、言語パックにフレーズを追加する必要があります。

help_wrapperテンプレートで他のポイントとの類推により、新しい



 <li><a href="{xen:link help/youaction}" class="{xen:if "{$selected} == 'youaction'", 'secondaryContent', 'primaryContent'}">{xen:phrase youaction}</a></li>
      
      







help_indexでもまったく同じことを行います

 <dl> <dt><a href="{xen:link help/gude}">{xen:phrase youaction}</a></dt> <dd>{xen:phrase view_text_youaction}</dd> </dl>
      
      







最後に、 navigation_tabs_helpフックを使用してブロックにアイテムを追加して、 ナビゲーションテンプレートを編集します。

 <li><a href="{xen:link help/youaction}">{xen:phrase youaction}</a></li>
      
      







言語パックでは、次の3つのフレーズを作成するだけです。





最後に、新しいhelp_youactionテンプレートを作成します(これはactionYouaction関数で記述した名前です)。

 <xen:title>{xen:phrase gude}</xen:title> <div class="baseHtml"> {xen:phrase gude_rules_text} </div>
      
      







PSデバッグモードをオフにすることを忘れないでください;-)



All Articles