私はインデックス(モデルビューとコントローラ)のモジュールを持っているとしましょう。
インデックスページで、ハイチャートを使用したいと思います。
これを行う最も簡単な方法は、テンプレートにhighchart.jsを組み込むことです。
しかし、他のページにhighchart.jsを含めたくない場合はどうすればいいですか?
テンプレートにすべてのプラグインを含めると無駄になり、読み込みに時間がかかることがあります。 Codeigniter 3には、必要な場合にのみプラグインを読み込む方法はありますか?Codeigniter 3で必要なときに自動的にプラグインを呼び出す方法は?
答えて
これは、あなたがロードする必要があるプラグインのページを完全にあなたのハンドルです。 js、cssを動的に含めることができます。 jsやcssに含めるべきすべてのビューページを静的に記述するか、コントローラに渡すことができます。
ここに参考文献があります。それに役立つことを願っています:
1)Codeigniter - how to include a dynamic javascript file in a view
2)how to load css, js dynamically in codeigniter
まず分類プラグインが必要なプラグインの数として3(またはそれ以上)のカテゴリーに含める: -
1)は、多くの場合、使用(60に含まほとんど使用され(20から60パーセントのページに含まれていない-100%ページ)
2))
3)回または以下2-5ページ
最初の2つのカテゴリに別々のテンプレートを作成します。&は、必要な場所を含みます。最後のタイプについては
は、JSファイルをロードするための機能を追加するには、テンプレートライブラリでは、個別に
含まれます:あなたのコントローラに
$this->template->set_js('js-file', base_url() .'assets/vendor/js-file/js-file.min.js');
:
public function set_js($name, $src)
{
$src = htmlspecialchars(strip_tags($src));
$this->_js[$name] = '<script src="'.$src.'"></script>';
return $this;
}
はとして使用されるように。あなたは、私はHMVCを使用していますし、私はMY_Controllerとして私自身のコアコントローラを作成し、このクラスの下で私はプラグインを取得するための関数を書く最後に
<?php print $template['js']; ?>
を追加することができます。レイアウトで
スイッチケース。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Controller extends MX_Controller
{
public function __construct()
{
parent::__construct();
$this->load->module("Template");
}
public function include($plugin)
{
switch ($plugin) {
case 'highcharts':
return "global/plugins/js/highcharts.js";
break;
}
}
}
、その後、私のモジュールコントローラでIは、コアコントローラを拡張して、私は1つの以上のプラグインを持っているので、もし私が配列にそれらを含めることができる配列にそれを置きます。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Ookla extends MY_Controller {
public function index()
{
$data["js"] = [
$this->include('highcharts') // <- here
];
$data["main_content"] = "ookla/ookla";
$this->template->master_template($data);
}
}
、その後、私のmaster_templateビューIループで、それであれば、アレイ内のプラグインを持っているよう。
...
<?php
if(isset($js)){
foreach ($js as $item) {
echo "<script type='text/javascript' src='".base_url()."assets/".$item."'></script>";
}
}
?>
</body>
</html>
洞察力をお寄せいただきありがとうございます。
- 1. backgroundworkerからテキストボックスを自動的に呼び出す方法は?
- 2. 名前を自動的に呼び出す方法は?
- 3. 自動的に私のアプリケーションをアンドロイドで呼び出す方法
- 4. YouCompleteMeに自動的にオートコンプリートを呼び出す方法
- 5. 各api呼び出しの前に自動的にapi呼び出しを呼び出す方法
- 6. UbuntuでVLCメディアプロセスが毎回起動するときにPythonスクリプトを自動的に呼び出す方法は?
- 7. <details>要素をID呼び出しで自動的に開きます
- 8. Android - カメラの意図を呼び出すときに自動的に動画を録画する方法
- 9. 自動的にスレッドを停止するメソッドを呼び出す方法は?
- 10. 5秒ごとに自動的にタスクを呼び出す
- 11. は、カスタムポストタイプを呼び出すプラグイン自体
- 12. CodeIgniterでは、自動的に
- 13. 必要なメソッドを自動的に呼び出すためのデザインパターンのサポートはありますか?
- 14. レールで経路ヘルパーを動的に呼び出す方法は?
- 15. Erlangでモジュールを動的に呼び出す方法は?
- 16. アプリケーションを終了したいときにqt内のデストラクタを自動的に呼び出す方法は?
- 17. 関数を何回も自動的に呼び出す方法は?
- 18. .Net Windowsアプリケーション - ファイルアソシエーションでプログラムを自動的に呼び出す方法
- 19. 今日の日付のテキストファイルをPythonで自動的に呼び出す方法
- 20. リモートオブジェクトとメソッドを動的に呼び出す方法
- 21. __missing__を作る方法__getitem__を自動的に呼び出すKeyError
- 22. TryParseを動的に呼び出す方法は?
- 23. AJAXコールの後にプラグインを呼び出す効率的な方法
- 24. 値が変更されるたびにメソッドを自動的に呼び出すことはできますか?
- 25. ループ内の次のイテレータを自動的に呼び出す方法
- 26. ディレクトリの内容が変更されたときにbashスクリプトを自動的に呼び出す方法
- 27. .NETでクラスのメソッドを動的に呼び出す方法
- 28. .Netで動的にWebサービスを呼び出す方法
- 29. Rubyでアクセサーメソッドを動的に呼び出す方法
- 30. SSRSでフィールド名を動的に呼び出す方法
私は数年前のコードを含むソリューションを提案するのは好きではありませんが、github codeigniterテンプレートやgithub自体( "codeigniter template")などのものを検索し、君は。 – Tpojka