mirror of
https://github.com/Codiad/Codiad.git
synced 2026-03-23 17:36:51 +01:00
Add FileExtensionTextMode plugin
a plugin to customize the join of file extension and the text mode. also add an API to the editor for this.
This commit is contained in:
65
components/fileExtTextMode/process.php
Normal file
65
components/fileExtTextMode/process.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
require_once '../../common.php';
|
||||
require_once 'defaultValues.php';
|
||||
|
||||
Common::checkSession();
|
||||
|
||||
//echo json_encode(array('status' => 'success', 'msg' => 'No Content.'));
|
||||
|
||||
//Store Fileextensions and Textmodes in File:
|
||||
|
||||
function validateExtension($extension){
|
||||
return preg_match('#^[a-z0-9\_]+$#i', $extension);
|
||||
}
|
||||
|
||||
function validTextMode($mode){
|
||||
global $availiableTextModes;
|
||||
return in_array($mode, $availiableTextModes);
|
||||
}
|
||||
|
||||
if(!isset($_POST['extension']) || !is_array($_POST['extension'])
|
||||
|| !isset($_POST['textMode']) || !is_array($_POST['textMode'])){
|
||||
die(json_encode(array('status' => 'error', 'msg' => 'incorrect data send')));
|
||||
}
|
||||
|
||||
$exMap = array();
|
||||
|
||||
$warning = '';
|
||||
|
||||
foreach ($_POST['extension'] as $key => $extension){
|
||||
if(trim($extension) == '' ){
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!isset($_POST["textMode"][$key])){
|
||||
die(json_encode(array('status' => 'error', 'msg' => 'incorrect data send.')));
|
||||
}
|
||||
|
||||
$extension = strtolower(trim($extension));
|
||||
$textMode = strtolower(trim($_POST["textMode"][$key]));
|
||||
|
||||
if(!validateExtension($extension)){
|
||||
die(json_encode(array('status' => 'error', 'msg' => 'incorrect extension:'.htmlentities($extension))));
|
||||
}
|
||||
|
||||
if(!validTextMode($textMode)){
|
||||
die(json_encode(array('status' => 'error', 'msg' => 'incorrect text mode:'.htmlentities($textMode))));
|
||||
}
|
||||
|
||||
if(isset($exMap[$extension])){
|
||||
$warning = htmlentities($extension).' is already set.<br/>';
|
||||
}else{
|
||||
$exMap[$extension] = $textMode;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Common::saveJSON('fileExtensions.php', $exMap);
|
||||
if($warning != ''){
|
||||
echo json_encode(array('status' => 'warning', 'msg' => $warning, 'extensions' => $exMap ));
|
||||
}else{
|
||||
echo json_encode(array('status' => 'success', 'msg' => 'File extensions are saved successfully.', 'extensions' => $exMap));
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user