Rumah > rangka kerja php > ThinkPHP > Bagaimana untuk menentukan halaman semasa dalam bar navigasi thinkphp

Bagaimana untuk menentukan halaman semasa dalam bar navigasi thinkphp

王林
Lepaskan: 2023-05-26 10:01:07
asal
1238 orang telah melayarinya

Apabila membangunkan tapak web, selalunya perlu menambah bar navigasi untuk memudahkan pengguna mengakses halaman laman web yang berbeza. Apabila membangun menggunakan rangka kerja PHP ThinkPHP, bagaimana untuk menentukan bar navigasi yang mana halaman semasa dimiliki? Artikel ini akan memperkenalkan kepada anda cara melaksanakan bar navigasi ThinkPHP dan cara menentukan halaman semasa.

1. Kaedah pelaksanaan bar navigasi ThinkPHP

Dalam ThinkPHP, bar navigasi biasanya dilaksanakan menggunakan templat awam. Langkah-langkah khusus adalah seperti berikut:

1 Mula-mula buat fail templat awam, seperti header.html, untuk menyimpan kod bar navigasi tapak web. Dalam fail ini, anda boleh menyesuaikan gaya dan susun atur bar navigasi mengikut keperluan anda.

2. Rujuk fail templat awam dalam setiap sub-halaman dan benamkan kod bar navigasi ke dalam sub-halaman. Dalam rangka kerja ThinkPHP, gunakan kod berikut untuk merujuk fail templat awam:

<?php include(THEME_PATH . 'header.html'); ?>
Salin selepas log masuk

Antaranya, THEME_PATH ialah laluan tema yang ditentukan pengguna.

3 Dalam fail templat awam, anda perlu menggunakan kod PHP untuk menentukan bar navigasi di mana halaman semasa berada. Biasanya pembolehubah $_SERVER['REQUEST_URI'] digunakan untuk mendapatkan alamat URL halaman semasa, dan kemudian pernyataan if digunakan untuk menentukan bar navigasi di mana halaman semasa berada.

Sebagai contoh, kod berikut boleh menentukan sama ada halaman semasa tergolong dalam bar navigasi halaman utama:

<?php if(strpos($_SERVER['REQUEST_URI'], 'index/index') !== false) {?>
    <li class="active"><a href="/index.php/Home/Index/">首页</a></li>
<?php } else { ?>
    <li><a href="/index.php/Home/Index/">首页</a></li>
<?php } ?>
Salin selepas log masuk

Dalam kod di atas, fungsi strpos() digunakan untuk menentukan sama ada alamat URL daripada halaman semasa mengandungi Rentetan 'indeks/indeks', jika wujud, ini bermakna halaman semasa tergolong dalam bar navigasi halaman utama, dan kemudian tambahkan keadaan yang dipilih pada bar navigasi semasa dengan menetapkan atribut aktif

2. Bagaimana untuk menentukan bar navigasi yang mempunyai halaman semasa

Dalam langkah sebelumnya, kami telah memperkenalkan cara menggunakan pernyataan if untuk menentukan bar navigasi yang mana halaman semasa kepunyaan. Walau bagaimanapun, dalam pembangunan sebenar, kaedah ini mungkin menyebabkan beberapa masalah, seperti: jika alamat URL mengandungi parameter, bagaimana untuk menentukan bar navigasi yang mana halaman semasa berada? Pada ketika ini, anda perlu menggunakan kaedah yang lebih bijak untuk menyelesaikan masalah.

Dalam rangka kerja ThinkPHP, anda boleh menentukan bar navigasi dengan bijak untuk halaman semasa dengan menentukan tatasusunan bar navigasi dan menentukan pengawal semasa dan kaedah operasi. Langkah-langkah khusus adalah seperti berikut:

1. Tentukan tatasusunan bar navigasi dalam fail konfigurasi. Contohnya:

//定义导航栏数组
'NAV_LIST' => array(
    '首页' => array('Index', 'index'),
    '新闻' => array('News', 'index'),
    '产品' => array('Product', 'index'),
    '联系我们' => array('Contact', 'index'),
),
Salin selepas log masuk

Dalam tatasusunan di atas, kunci mewakili nama bar navigasi dan nilainya ialah tatasusunan yang mengandungi nama pengawal dan kaedah operasi.

2. Dalam fail templat awam, gunakan gelung foreach untuk melintasi tatasusunan bar navigasi dan gunakan pernyataan if untuk menentukan sama ada pengawal semasa dan kaedah operasi adalah sama dengan nilai dalam navigasi susunan bar. Jika ia adalah sama, tambahkan atribut aktif pada bar navigasi untuk menunjukkan bahawa halaman semasa adalah miliknya.

Sebagai contoh, kod berikut boleh menentukan bar navigasi dengan bijak untuk halaman semasa:

<?php foreach(C('NAV_LIST') as $key=>$vo){ ?>
    <?php $active = strtolower(CONTROLLER_NAME) == strtolower($vo[0]) && strtolower(ACTION_NAME) == strtolower($vo[1]) ? 'class=active' : ''; ?>
    <li <?php echo $active;?>><a href="<?php echo U($vo[0].'/'.$vo[1]);?>"><?php echo $key;?></a></li>
<?php } ?>
Salin selepas log masuk

Dalam kod di atas, gelung foreach digunakan untuk melintasi tatasusunan bar navigasi. Kemudian, gunakan pernyataan if untuk menentukan sama ada pengawal semasa dan kaedah operasi adalah sama dengan nilai dalam tatasusunan bar navigasi. Jika ia adalah sama, tambahkan atribut aktif pada teg

  • untuk menunjukkan bahawa halaman semasa adalah miliknya. Antaranya, fungsi strtolower() digunakan untuk menukar huruf besar kepada huruf kecil untuk mengelakkan ralat penghakiman yang disebabkan oleh masalah kes.

    Ringkasnya, sama ada anda menggunakan pernyataan if untuk menentukan bar navigasi mana halaman semasa dimiliki, atau menggunakan kaedah pertimbangan pintar, anda perlu menjelaskan pengetahuan berkaitan rangka kerja ThinkPHP. Saya harap pengenalan dalam artikel ini dapat membantu semua orang apabila membangunkan tapak web menggunakan rangka kerja ThinkPHP.

    Atas ialah kandungan terperinci Bagaimana untuk menentukan halaman semasa dalam bar navigasi thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan