it-swarm-eu.dev

Metti in evidenza CodeMirror PHP sintassi

CodeMirror per impostazione predefinita evidenzia solo mixed-html sintassi (i.e html, css and javascript) in Joomla. Molti di noi usano plugin personalizzati per eseguire PHP all'interno di moduli e articoli ma CodeMirror non evidenzia PHP syntax affatto. Diventa estremamente difficile gestire i moduli quando si ha a che fare con un sacco di codice. Di seguito è riportato il tutorial per evidenziare CodeMirror mixed-html e PHP

3
saibbyweb

Quello di cui hai bisogno:

Blocco note ++ -PC
IDE di Komodo -MAC
o qualsiasi altro editor di testo che mostrerà line nos.

Testato su:

Joomla 3.x

Procedura:
Devi aggiungere un po 'di JS files Esterno al modello del tuo amministratore di Joomla. Questi file JS sono già inclusi nel plug-in Code Mirror.

I modelli di amministrazione si trovano in questa directory: /administrator/templates

Se il tuo modello di amministratore predefinito è isis, il file che devi modificare è:

/administrator/templates/isis/index.php

Allo stesso modo se lo stile predefinito è diverso, è necessario modificare il rispettivo file index.

Passaggio 1: Aggiungi questo codice ovunque all'interno dei tag <head> --- </head> Del tuo 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>

Idealmente dovresti aggiungerlo sotto line 178:

<!--[if lt IE 9]><script src="<?php echo JUri::root(true); ?>/media/jui/js/html5.js"></script><![endif]-->

Passaggio 2: Crea una variabile con la nostra configurazione CodeMirror desiderata in formato JSON

Il file che devi modificare per questo è: /plugins/editors/codemirror/layouts/editors/codemirror/elements.php

Aggiungi questa variabile $myoptions Alla tua 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
           }';

Idealmente dovresti posizionarlo appena sotto line 20:

$buttons = $displayData->buttons;

Passaggio 3: Quindi è necessario sostituire questa riga dello stesso elements.php:
[originariamente era presente in line 24 ma dopo aver aggiunto la variabile $myoptions deve essere spostato da qualche parte intorno a line 40.]

var id = ' . json_encode($id) . ', options = ' . json_encode($options) . ';

con questo :

var id = ' . json_encode($id) . ', options = ' . $myoptions . ';

Ecco fatto. Sei a posto. Dai un'occhiata a queste schermate di seguito:

------------------------- Prima --------------- ----------

enter image description here ------------------------- Dopo ------------ -------------

enter image description here

Questi file potrebbero essere sovrascritti se aggiorni Joomla.
Conserva il backup di entrambi questi file.

Plug-in PHP utilizzato: Sourcerer
Riga senza riferimento: NotePad ++

Grazie per aver letto.

3
saibbyweb

Ho scoperto che è possibile impostare la sintassi corretta in un array di parametri.

Nell'array associativo $params, imposta la chiave syntax uguale al valore php.

Questo lo farà:

$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