对discuz的代码分析学习(四)论坛入口文件
只是大致分析下执行流程,主要就是取得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>
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>
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'];
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>
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';
以上就介绍了对discuz的代码分析学习(四)论坛入口文件,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

OpenIV est un outil de modification de jeu populaire, principalement utilisé dans la série de jeux Grand Theft Auto (GTA). Bien que l'utilisation de mods puisse ajouter de nouvelles fonctionnalités et améliorer l'expérience de jeu, nous pouvons parfois devoir supprimer les mods installés pour diverses raisons. Cet article expliquera comment supprimer des mods à l'aide d'OpenIV. Tout d’abord, assurez-vous que les outils OpenIV sont installés. Pour les utilisateurs qui ne l'ont pas installé, vous pouvez le télécharger depuis le site officiel d'OpenIV (https://www.ope

L’une des fonctionnalités les plus remarquables de Cyberpunk 2077 est le traçage de chemin, mais il peut nuire lourdement aux performances. Même les systèmes dotés de cartes graphiques raisonnablement performantes, tels que le RTX 4080 (Gigabyte AERO OC curr. 949,99 $ sur Amazon), ont du mal à offrir une interface stable.

Plus tôt ce mois-ci, un YouTuber nommé HowToMen a présenté le Rabbit R1 fonctionnant sous Android. Avec ce mod, l'appareil qui était à l'origine censé être moins distrayant qu'un téléphone a pu fonctionner comme tel. Ce n'est pas une mauvaise chose, cependant, comme Rabbit ne l'a pas fait.

L'Asus ROG Ally dispose d'une batterie de 40 Wh, ce qui correspond généralement à environ deux heures d'autonomie. Sur l'Ally X, cependant, Asus a amélioré la batterie à 80 Wh, portant la durée de vie de la batterie à environ quatre heures, en fonction du TDP. iFixit a proposé un

Lorsqu'ils jouent à des jeux tels que Grand Theft Auto V, de nombreux joueurs aiment utiliser des mods pour augmenter le plaisir et la jouabilité du jeu. En tant qu'outil de gestion de Mod bien connu, OpenIV peut simplifier le processus d'installation et de gestion du Mod. Voyons donc comment ajouter Mod à OpenIV. Tout d’abord, vous devez vous assurer que vous avez téléchargé et installé OpenIV. Il peut être trouvé sur le site officiel d'OpenIV (https://openiv.com/)

Titre : Exemple d'utilisation de la fonction Array.Sort pour trier un tableau en C# Texte : En C#, un tableau est une structure de données couramment utilisée, et il est souvent nécessaire de trier le tableau. C# fournit la classe Array, qui possède la méthode Sort pour trier facilement les tableaux. Cet article explique comment utiliser la fonction Array.Sort en C# pour trier un tableau et fournit des exemples de code spécifiques. Tout d’abord, nous devons comprendre l’utilisation de base de la fonction Array.Sort. Tableau.Donc

Le plus gros cheval noir du début 2024, "Phantom Parlu" a récemment débarqué sur Steam Early Access et n'a cessé d'établir de nouveaux records. Non seulement ses ventes ont dépassé les 5 millions d'exemplaires. Le nombre maximal de personnes en ligne pour ce jeu a atteint un nouveau sommet, dépassant 1,58 million (1 582 482 personnes) ! Cet exploit fait également de "Eidolon Parlu" le top 3 des jeux avec le plus grand nombre d'utilisateurs en ligne dans l'histoire de Steam ! Juste derrière « PlayerUnknown’s Battlegrounds » (3,25 millions) et « CS2 » (1,81 million) ! De plus, "Eidolon Pallu" possède également le premier mod "Pokémon" créé par les joueurs, qui peut transformer les joueurs en Ash Ketchum et transformer tous les Pallu en Pokémon. Un chef-d'œuvre pour commencer la nouvelle année ! Les ventes ont dépassé les 5 millions d'exemplaires en 3 jours. Ne le manquez pas ! Cliquez sur https://www.17

Utilisez la fonction MOD de MySQL pour trouver le reste de l'opération modulaire. Dans la base de données MySQL, la fonction MOD peut être utilisée pour effectuer l'opération modulaire, c'est-à-dire pour trouver le reste de deux nombres. Cet article expliquera comment utiliser la fonction MOD pour effectuer des opérations modulaires et donnera des exemples de code correspondants. La syntaxe de la fonction MOD est la suivante : MOD(N,M) où N et M sont les deux nombres à effectuer modulo, N est le dividende et M est le diviseur. La fonction MOD renvoie le reste de N divisé par M. Vous trouverez ci-dessous un exemple simple montrant comment utiliser la fonction MOD pour trouver le reste de deux nombres.
