CodeMirror par défaut ne met en évidence que mixed-html
syntaxe (i.e html, css and javascript
) dans Joomla. Beaucoup d’entre nous utilisent des plugins personnalisés pour exécuter PHP dans les modules et les articles, mais CodeMirror ne met pas en évidence PHP syntax
du tout. Il devient extrêmement difficile de gérer des modules quand on utilise beaucoup de code. Ci-dessous, le tutoriel pour que CodeMirror mette en évidence mixed-html
ainsi que PHP
De quoi as-tu besoin:
Notepad ++ -PC
IDE de Komodo -MAC
ou tout autre éditeur de texte qui afficheraline nos
.
Testé sur:
Joomla 3.x
Procédure:
Vous devez ajouter des JS files
Externes au modèle de votre administrateur Joomla. Ces fichiers JS sont déjà inclus avec votre plugin Code Mirror.
Les modèles d’administrateur se trouvent dans ce répertoire:
/administrator/templates
Si votre modèle d'administration par défaut est isis
, le fichier que vous devez modifier est le suivant:
/administrator/templates/isis/index.php
De même, si votre style par défaut est différent, vous devez éditer son fichier respectif index
.
Étape 1: Ajoutez ce code n'importe où dans les balises <head> --- </head>
De votre index.php
.
<script src="/media/editors/codemirror/mode/php/php.js"></script>
<script src="/media/editors/codemirror/addon/edit/matchbrackets.js"></script>
<script src="/media/editors/codemirror/mode/htmlmixed/htmlmixed.js"></script>
<script src="/media/editors/codemirror/mode/xml/xml.js"></script>
<script src="/media/editors/codemirror/mode/javascript/javascript.js"></script>
<script src="/media/editors/codemirror/mode/clike/clike.js"></script>
Idéalement, vous devriez l'ajouter ci-dessous
line 178
:
<!--[if lt IE 9]><script src="<?php echo JUri::root(true); ?>/media/jui/js/html5.js"></script><![endif]-->
Étape 2: Créez une variable ayant la configuration CodeMirror souhaitée au format JSON.
Le fichier que vous devez éditer pour cela est: /plugins/editors/codemirror/layouts/editors/codemirror/elements.php
Ajoutez cette variable $myoptions
À votre elements.php
$myoptions = '{
"autofocus": true,
"lineWrapping": true,
"styleActiveLine": true,
"lineNumbers": true,
"gutters": ["CodeMirror-linenumbers", "CodeMirror-foldgutter", "CodeMirror-markergutter"],
"foldGutter": true,
"markerGutter": true,
"mode": "application/x-httpd-php",
"matchBrackets": true,
"autoCloseTags": true,
"matchTags": true,
"scrollbarStyle": "native",
"vimMode": false
}';
Idéalement, vous devriez le placer juste en dessous de
line 20
:
$buttons = $displayData->buttons;
Étape 3: Ensuite, vous devez remplacer cette ligne du même elements.php
:
[à l'origine, cela était présent à line 24
, mais après avoir ajouté la variable $myoptions
, elle doit s'être déplacée quelque part autour de line 40
.]
var id = ' . json_encode($id) . ', options = ' . json_encode($options) . ';
avec ça :
var id = ' . json_encode($id) . ', options = ' . $myoptions . ';
C'est ça. Vous êtes prêt à partir. Découvrez ces écrans ci-dessous:
------------------------- Avant --------------- ----------
------------------------- Après ------------ -------------
Ces fichiers peuvent être écrasés si vous mettez à jour votre Joomla.
Gardez la sauvegarde de ces deux fichiers.
Plugin PHP utilisé: Sourcerer
Ligne sans référence: Bloc-notes ++
Merci d'avoir lu.
J'ai découvert que vous pouvez définir la bonne syntaxe dans un tableau de paramètres.
Sur le tableau associatif $params
, définissez la clé syntax
sur la valeur php
.
Cela va le faire:
$params['syntax'] = 'php';
$editor = JEditor::getInstance('codemirror');
echo $editor->display('name_of_element', $value, '100%', 900, '300', '3', false, null, null, null, $params);