web-dev-qa-db-fra.com

Assurez CodeMirror en surbrillance PHP syntaxe

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

3
saibbyweb

De quoi as-tu besoin:

Notepad ++ -PC
IDE de Komodo -MAC
ou tout autre éditeur de texte qui affichera line 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 --------------- ----------

enter image description here ------------------------- Après ------------ -------------

enter image description here

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.

3
saibbyweb

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);
0
Piero Marsilio