Maison développement back-end tutoriel 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>
Copier après la connexion

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>
Copier après la connexion

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'];
Copier après la connexion

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>
Copier après la connexion

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';
Copier après la connexion

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment désinstaller/supprimer MOD dans OpenIV Comment désinstaller/supprimer MOD dans OpenIV Feb 18, 2024 pm 04:25 PM

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

Cyberpunk 2077 voit ses performances augmenter jusqu'à 40 % grâce au nouveau mod de traçage de chemin optimisé Cyberpunk 2077 voit ses performances augmenter jusqu'à 40 % grâce au nouveau mod de traçage de chemin optimisé Aug 10, 2024 pm 09:45 PM

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.

Rabbit R1 est modifié pour exécuter des jeux et fonctionne mieux que prévu Rabbit R1 est modifié pour exécuter des jeux et fonctionne mieux que prévu Jun 29, 2024 am 07:50 AM

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.

Le mod DIY Asus ROG Ally double presque la capacité de la batterie sans rien laisser exposé Le mod DIY Asus ROG Ally double presque la capacité de la batterie sans rien laisser exposé Aug 20, 2024 am 06:57 AM

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

Comment ajouter un mod à openiv Comment ajouter un mod à openiv Feb 22, 2024 pm 09:54 PM

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/)

Trier le tableau à l'aide de la fonction Array.Sort en C# Trier le tableau à l'aide de la fonction Array.Sort en C# Nov 18, 2023 am 10:37 AM

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

'Phantom Beast Parlu' a dépassé les 1,58 millions en ligne en même temps ! Le MOD 'Pokémon' est là ! 'Phantom Beast Parlu' a dépassé les 1,58 millions en ligne en même temps ! Le MOD 'Pokémon' est là ! Jan 23, 2024 pm 06:06 PM

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 Utilisez la fonction MOD de MySQL pour trouver le reste de l'opération modulaire Jul 27, 2023 pm 04:48 PM

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.

See all articles