2

PHP と CodeIgniter を使用しています。すべてのビュー ファイルに、header.php以下に示す を含めます。

<head>
  <link rel="...">
  <script type="text/javascript">...</script>
</head>

このファイルでは head タグが閉じられていることに注意してください。<script>ここで、変更せずに別のファイルにタグを追加したいと考えていますheader.php。C# にはContentPlaceHolder、head タグ内のどこにタグを追加できるかを示すために使用できるものがあります。PHPに同等のものはありますか?そうでない場合、どうすればこれを達成できますか?

4

3 に答える 3

2

次のようにコントローラーに単一の変数を追加することで、ヘッダーに他のスクリプトを簡単に追加できます。

コントローラ:

$data['myScript'] = '<link rel="..."><script type="text/javascript">...</script>';
$this->load->view('myView',$data);

次に、header.php に以下を追加します。

<head>
  <link rel="...">
  <script type="text/javascript">...</script>
  <?php if (isset($myScript)) echo $myScript; ?>
</head>

これにより、必要なビューにのみスクリプトを追加できるため、ビューごとに非常にカスタマイズ可能なテンプレートが作成されます。

于 2012-07-29T08:50:19.957 に答える
1

CodeIgniter プロジェクトで通常行うことは次のとおりです...

関数application/helpers/MY_html_helper.phpを含めるためにHTML ヘルパー ( ) を拡張します。js()

function js($js)
{
    $js_base_path = '';

    // If you have multiple JS files, pass an array
    if(is_array($js))
    {
        foreach($js as $script_src)
        {
            if(strpos($script_src, 'http://') === false && strpos($script_src, 'https://') === false)
            {
                $js_base_path = base_url() . 'js/';
            }
            echo '<script src="' . $js_base_path . $script_src . '"></script>';
        }
    }

    // Otherwise, a string will do
    else
    {
        if(strpos($js, 'http://') === false && strpos($js, 'https://') === false)
        {
            $js_base_path = base_url() . 'js/';
        }
        echo '<script src="' . $js_base_path . $js . '"></script>';
    }
}

私のコントローラーでは、フッター(あなたの場合はヘッダー)にjsパラメーターを含めます:

$this->load->view('_footer', array('js'=>'jquery.cycle.lite.js'));

私の_footerビューは次のjs()ように関数を実行します:

<?php
if(isset($js))
{
    $this->load->helper('html');
    js($js);
}
?>

これは私にとってはうまくいきました。必要に応じて自由にカスタマイズしてください。

于 2012-07-29T08:52:34.037 に答える
0

Phil Sturgeon のテンプレート ライブラリには、このための便利な機能がいくつかあります

于 2012-07-29T19:30:34.070 に答える