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
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 --------------- ----------
------------------------- Dopo ------------ -------------
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.
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);