Rumah pembangunan bahagian belakang tutorial php 对discuz的代码分析学习(四)论坛入口文件

对discuz的代码分析学习(四)论坛入口文件

Aug 08, 2016 am 09:28 AM
array mod

只是大致分析下执行流程,主要就是取得mod参数的值,根据取值加载控制器,控制器位置在最后一行指定了。

1 )定义应用名称,加载两个必要文件

<span>define</span>('APPTYPEID', 2<span>);
</span><span>define</span>('CURSCRIPT', 'forum'<span>);

</span><span>require</span> './source/class/class_core.php';<span>//</span><span>核心类</span>
<span>require</span> './source/function/function_forum.php';<span>//</span><span>论坛函数库</span>
Salin selepas log masuk

2 )modarray数组限定了mod取值范围

<span>$modarray</span> = <span>array</span>('ajax','announcement','attachment','forumdisplay',
    'group','image','index','medal','misc','modcp','notice','post','redirect',
    'relatekw','relatethread','rss','topicadmin','trade','viewthread','tag','collection','guide'<span>
);
</span><span>//</span><span>模块缓存列表,各个子数组分别表示各个模块要缓存的缓存项</span>
<span>$modcachelist</span> = <span>array</span><span>(
    </span>'index'        => <span>array</span>('announcements', 'onlinelist', 'forumlinks',
            'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum'),
    'forumdisplay'    => <span>array</span>('smilies', 'announcements_forum', 'globalstick', 'forums',
            'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum'),
    'viewthread'    => <span>array</span>('smilies', 'smileytypes', 'forums', 'usergroups',
            'stamps', 'bbcodes', 'smilies',    'custominfo', 'groupicon', 'stamps',
            'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum'),
    'redirect'    => <span>array</span>('threadtableids', 'threadtable_info', 'posttable_info'),
    'post'        => <span>array</span>('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes',
            'domainwhitelist', 'albumcategory'),
    'space'        => <span>array</span>('fields_required', 'fields_optional', 'custominfo'),
    'group'        => <span>array</span>('grouptype', 'diytemplatenamegroup'),<span>
);</span>
Salin selepas log masuk

3 )如果mod参数为空或者不合法都会让表达式为真,导致值为index

<span>$mod</span> = !<span>in_array</span>(C::app()-><span>var</span>['mod'], <span>$modarray</span>) ? 'index' : C::app()-><span>var</span>['mod'];
Salin selepas log masuk

4 )做初始化

<span>define</span>('CURMODULE', <span>$mod</span><span>);
</span><span>//</span><span>var_dump(CURMODULE);</span>
<span>$cachelist</span> = <span>array</span><span>();
</span><span>if</span>(<span>isset</span>(<span>$modcachelist</span>[CURMODULE])) {<span>//</span><span>如果当前缓存项存在的话,</span>
    <span>$cachelist</span> = <span>$modcachelist</span>[CURMODULE];<span>//</span><span>获取当前缓存组的缓存列表项</span>

    <span>$cachelist</span>[] = 'plugin'<span>;
    </span><span>$cachelist</span>[] = 'pluginlanguage_system'<span>;
}
</span><span>if</span>(C::app()-><span>var</span>['mod'] == 'group'<span>) {
    </span><span>$_G</span>['basescript'] = 'group'<span>;
}

C</span>::app()->cachelist = <span>$cachelist</span><span>;
C</span>::app()->init();<span>//</span><span>初始化</span>
<span>

loadforum();


set_rssauth();


runhooks();</span>
Salin selepas log masuk

5 )加载控制器

<span>$navtitle</span> = <span>str_replace</span>('{bbname}', <span>$_G</span>['setting']['bbname'], <span>$_G</span>['setting']['seotitle']['forum'<span>]);
</span><span>$_G</span>['setting']['threadhidethreshold'] = 1<span>;
</span><span>//</span><span>var_dump($mod);</span>
<span>require</span> DISCUZ_ROOT.'./source/module/forum/forum_'.<span>$mod</span>.'.php';
Salin selepas log masuk

以上就介绍了对discuz的代码分析学习(四)论坛入口文件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyahpasang/memadam MOD dalam OpenIV Bagaimana untuk menyahpasang/memadam MOD dalam OpenIV Feb 18, 2024 pm 04:25 PM

OpenIV ialah alat pengubahsuaian permainan yang popular, terutamanya digunakan dalam siri permainan Grand Theft Auto (GTA). Walaupun menggunakan mod boleh menambah ciri baharu dan menambah baik pengalaman pada permainan, kadangkala kami mungkin perlu memadamkan mod yang dipasang atas pelbagai sebab. Artikel ini akan menerangkan cara mengalih keluar mod menggunakan OpenIV. Mula-mula, pastikan anda memasang alat OpenIV. Bagi pengguna yang belum memasangnya, anda boleh memuat turunnya dari laman web rasmi OpenIV (https://www.ope

Cyberpunk 2077 menyaksikan peningkatan prestasi sehingga 40% dengan mod pengesanan laluan dioptimumkan baharu Cyberpunk 2077 menyaksikan peningkatan prestasi sehingga 40% dengan mod pengesanan laluan dioptimumkan baharu Aug 10, 2024 pm 09:45 PM

Salah satu ciri menonjol Cyberpunk 2077 ialah pengesanan laluan, tetapi ia boleh menjejaskan prestasi yang teruk. Malah sistem dengan kad grafik berkebolehan yang munasabah, seperti RTX 4080 (Gigabyte AERO OC curr. $949.99 di Amazon), bergelut untuk menawarkan yang stabil

Arnab R1 diubah suai untuk menjalankan permainan, berprestasi lebih baik daripada yang dijangkakan Arnab R1 diubah suai untuk menjalankan permainan, berprestasi lebih baik daripada yang dijangkakan Jun 29, 2024 am 07:50 AM

Awal bulan ini, YouTuber bernama HowToMen mempamerkan Rabbit R1 yang menjalankan Android. Dengan mod ini, peranti yang pada asalnya dimaksudkan untuk menjadi kurang mengganggu daripada telefon dapat berfungsi seperti satu. Itu bukan perkara yang buruk, walaupun, kerana Arnab tidak

Mod DIY Asus ROG Ally hampir menggandakan kapasiti bateri tanpa membiarkan apa-apa terdedah Mod DIY Asus ROG Ally hampir menggandakan kapasiti bateri tanpa membiarkan apa-apa terdedah Aug 20, 2024 am 06:57 AM

Asus ROG Ally menampilkan bateri 40 Wh, yang biasanya menghasilkan kira-kira dua jam masa jalan. Pada Ally X, bagaimanapun, Asus menaik taraf bateri kepada 80 Wh, menolak hayat bateri kepada sekitar empat jam, bergantung pada TDP. iFixit menghasilkan a

Bagaimana untuk menambah mod pada openiv Bagaimana untuk menambah mod pada openiv Feb 22, 2024 pm 09:54 PM

Apabila bermain permainan seperti Grand Theft Auto V, ramai pemain suka menggunakan Mod untuk meningkatkan keseronokan dan kebolehmainan permainan. Sebagai alat pengurusan Mod yang terkenal, OpenIV boleh memudahkan proses pemasangan dan pengurusan Mod. Jadi, mari kita lihat cara menambah Mod pada OpenIV. Mula-mula, anda perlu memastikan anda telah memuat turun dan memasang OpenIV. Ia boleh didapati di laman web rasmi OpenIV (https://openiv.com/)

Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Isih tatasusunan menggunakan fungsi Array.Isih dalam C# Nov 18, 2023 am 10:37 AM

Tajuk: Contoh menggunakan fungsi Array.Sort untuk mengisih tatasusunan dalam Teks C#: Dalam C#, tatasusunan ialah struktur data yang biasa digunakan dan operasi pengisihan tatasusunan selalunya diperlukan. C# menyediakan kelas Array, yang mempunyai kaedah Isih untuk menyusun tatasusunan dengan mudah. Artikel ini akan menunjukkan cara menggunakan fungsi Array.Sort dalam C# untuk mengisih tatasusunan dan memberikan contoh kod khusus. Pertama, kita perlu memahami penggunaan asas fungsi Array.Sort. Susunan.Jadi

'Phantom Beast Parlu' telah melebihi 1.58 juta dalam talian pada masa yang sama! MOD 'Pokémon' ada di sini! 'Phantom Beast Parlu' telah melebihi 1.58 juta dalam talian pada masa yang sama! MOD 'Pokémon' ada di sini! Jan 23, 2024 pm 06:06 PM

Kuda hitam terbesar pada awal tahun 2024, "Phantom Parlu" baru-baru ini mendarat di Steam Early Access dan terus mencatat rekod baharu Bukan sahaja telah melebihi 5 juta salinan. Bilangan puncak orang dalam talian untuk permainan ini mencapai tahap tertinggi baharu, melebihi 1.58 juta (1,582,482 orang)! Pencapaian ini juga menjadikan "Eidolon Parlu" menjadi 3 permainan teratas dengan bilangan pengguna dalam talian tertinggi dalam sejarah Steam! Kedua selepas "PlayerUnknown's Battlegrounds" (3.25 juta) dan "CS2" (1.81 juta)! Selain itu, "Eidolon Pallu" juga mempunyai Mod "Pokémon" buatan pemain pertama, yang boleh menukar pemain menjadi Ash Ketchum dan menukar semua Pallu menjadi Pokémon. Karya agung untuk memulakan tahun baru! Jualan melebihi 5 juta salinan dalam masa 3 hari, jangan ketinggalan! Klik https://www.17

Gunakan fungsi MOD MySQL untuk mencari baki operasi modular Gunakan fungsi MOD MySQL untuk mencari baki operasi modular Jul 27, 2023 pm 04:48 PM

Gunakan fungsi MOD MySQL untuk mencari baki operasi modular Dalam pangkalan data MySQL, fungsi MOD boleh digunakan untuk melaksanakan operasi modular, iaitu untuk mencari baki dua nombor. Artikel ini akan memperkenalkan cara menggunakan fungsi MOD untuk melaksanakan operasi modular dan memberikan contoh kod yang sepadan. Sintaks fungsi MOD adalah seperti berikut: MOD(N,M) di mana N dan M ialah dua nombor yang perlu dilakukan operasi modulo, N ialah dividen, dan M ialah pembahagi. Fungsi MOD mengembalikan baki N dibahagikan dengan M. Di bawah ialah contoh mudah yang menunjukkan cara menggunakan fungsi MOD untuk mencari baki dua nombor

See all articles