Version Description
- You can now create new files/folders
Download this release
Release Info
Developer | WPsites |
Plugin | WPide |
Version | 2.0.1 |
Comparing to | |
See all releases |
Code changes from version 2.0 to 2.0.1
- WPide.php +103 -18
- banner-772x250.jpg +0 -0
- images/new-file.png +0 -0
- images/new-folder.png +0 -0
- jqueryFileTree.css +48 -2
- js/load-editor.js +45 -0
- readme.txt +11 -4
WPide.php
CHANGED
@@ -3,13 +3,13 @@
|
|
3 |
Plugin Name: WPide
|
4 |
Plugin URI: https://github.com/WPsites/WPide
|
5 |
Description: WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
6 |
-
Version: 2.0
|
7 |
Author: Simon Dunton
|
8 |
Author URI: http://www.wpsites.co.uk
|
9 |
*/
|
10 |
|
11 |
|
12 |
-
|
13 |
class WPide2
|
14 |
|
15 |
{
|
@@ -39,6 +39,9 @@ class WPide2
|
|
39 |
add_action('wp_ajax_wpide_get_file', 'WPide2::wpide_get_file' );
|
40 |
//setup ajax function to save file contents and do automatic backup if needed
|
41 |
add_action('wp_ajax_wpide_save_file', 'WPide2::wpide_save_file' );
|
|
|
|
|
|
|
42 |
|
43 |
}
|
44 |
|
@@ -121,8 +124,9 @@ class WPide2
|
|
121 |
$files = $wp_filesystem->dirlist($root . $_POST['dir']);
|
122 |
//print_r($files);
|
123 |
|
124 |
-
|
125 |
-
|
|
|
126 |
// All dirs
|
127 |
foreach( $files as $file => $file_info ) {
|
128 |
if( $file != '.' && $file != '..' && $file_info['type']=='d' ) {
|
@@ -136,8 +140,10 @@ class WPide2
|
|
136 |
echo "<li class=\"file ext_$ext\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "\">" . htmlentities($file) . "</a></li>";
|
137 |
}
|
138 |
}
|
139 |
-
echo "</ul>";
|
140 |
}
|
|
|
|
|
|
|
141 |
}
|
142 |
|
143 |
die(); // this is required to return a proper result
|
@@ -162,6 +168,61 @@ class WPide2
|
|
162 |
die(); // this is required to return a proper result
|
163 |
}
|
164 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
public static function wpide_save_file() {
|
166 |
//check the user has the permissions
|
167 |
check_admin_referer('plugin-name-action_wpidenonce');
|
@@ -181,7 +242,7 @@ class WPide2
|
|
181 |
$backup_path = ABSPATH .'wp-content/plugins/' . basename(dirname(__FILE__)) .'/backups/' . str_replace( str_replace('\\', "/", ABSPATH), '', $file_name) .'.'.date("YmdH");
|
182 |
//create backup directory if not there
|
183 |
$new_file_info = pathinfo($backup_path);
|
184 |
-
if (!$wp_filesystem->is_dir($new_file_info['dirname']))
|
185 |
|
186 |
//do backup
|
187 |
$wp_filesystem->copy( $file_name, $backup_path );
|
@@ -205,33 +266,50 @@ class WPide2
|
|
205 |
|
206 |
var wpide_app_path = "<?php echo plugin_dir_url( __FILE__ ); ?>";
|
207 |
|
208 |
-
|
209 |
-
|
210 |
-
$('#wpide_file_browser').fileTree({ script: ajaxurl }, function(parent, file) {
|
211 |
|
212 |
-
if (
|
213 |
-
|
214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
|
216 |
-
var image_patern =new RegExp("(\.jpg|\.gif|\.png|\.bmp)
|
217 |
if ( image_patern.test(file) ){
|
218 |
alert("Image editing is not currently available. It's a planned feature using http://pixlr.com/");
|
219 |
}else{
|
220 |
-
|
221 |
|
222 |
wpide_set_file_contents(file, function(){
|
223 |
|
224 |
//once file loaded remove the wait class/indicator
|
225 |
-
|
226 |
|
227 |
});
|
228 |
|
229 |
-
|
230 |
}
|
231 |
|
232 |
}
|
233 |
|
234 |
});
|
|
|
|
|
|
|
|
|
|
|
235 |
});
|
236 |
</script>
|
237 |
|
@@ -258,7 +336,14 @@ class WPide2
|
|
258 |
<div id="major-publishing-actions">
|
259 |
<div id="wpide_file_browser"></div>
|
260 |
<br style="clear:both;" />
|
261 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
<div class="clear"></div>
|
263 |
</div>
|
264 |
</div>
|
@@ -300,4 +385,4 @@ class WPide2
|
|
300 |
|
301 |
}
|
302 |
add_action("init", create_function('', 'new WPide2();'));
|
303 |
-
?>
|
3 |
Plugin Name: WPide
|
4 |
Plugin URI: https://github.com/WPsites/WPide
|
5 |
Description: WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
6 |
+
Version: 2.0.1
|
7 |
Author: Simon Dunton
|
8 |
Author URI: http://www.wpsites.co.uk
|
9 |
*/
|
10 |
|
11 |
|
12 |
+
|
13 |
class WPide2
|
14 |
|
15 |
{
|
39 |
add_action('wp_ajax_wpide_get_file', 'WPide2::wpide_get_file' );
|
40 |
//setup ajax function to save file contents and do automatic backup if needed
|
41 |
add_action('wp_ajax_wpide_save_file', 'WPide2::wpide_save_file' );
|
42 |
+
//setup ajax function to create new item (folder, file etc)
|
43 |
+
add_action('wp_ajax_wpide_create_new', 'WPide2::wpide_create_new' );
|
44 |
+
|
45 |
|
46 |
}
|
47 |
|
124 |
$files = $wp_filesystem->dirlist($root . $_POST['dir']);
|
125 |
//print_r($files);
|
126 |
|
127 |
+
echo "<ul class=\"jqueryFileTree\" style=\"display: none;\">";
|
128 |
+
if( count($files) > 0 ) {
|
129 |
+
|
130 |
// All dirs
|
131 |
foreach( $files as $file => $file_info ) {
|
132 |
if( $file != '.' && $file != '..' && $file_info['type']=='d' ) {
|
140 |
echo "<li class=\"file ext_$ext\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "\">" . htmlentities($file) . "</a></li>";
|
141 |
}
|
142 |
}
|
|
|
143 |
}
|
144 |
+
//output toolbar for creating new file, folder etc
|
145 |
+
echo "<li class=\"create_new\"><a class='new_directory' title='Create a new directory here.' href=\"#\" rel=\"{type: 'directory', path: '" . htmlentities($_POST['dir']) . "'}\"></a> <a class='new_file' title='Create a new file here.' href=\"#\" rel=\"{type: 'file', path: '" . htmlentities($_POST['dir']) . "'}\"></a><br style='clear:both;' /></li>";
|
146 |
+
echo "</ul>";
|
147 |
}
|
148 |
|
149 |
die(); // this is required to return a proper result
|
168 |
die(); // this is required to return a proper result
|
169 |
}
|
170 |
|
171 |
+
public static function wpide_create_new() {
|
172 |
+
//check the user has the permissions
|
173 |
+
check_admin_referer('plugin-name-action_wpidenonce');
|
174 |
+
if ( !current_user_can('edit_themes') )
|
175 |
+
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this site. SORRY').'</p>');
|
176 |
+
|
177 |
+
//setup wp_filesystem api
|
178 |
+
global $wp_filesystem;
|
179 |
+
if ( ! WP_Filesystem($creds) )
|
180 |
+
return false;
|
181 |
+
|
182 |
+
$root = WP_CONTENT_DIR;
|
183 |
+
|
184 |
+
//check all required vars are passed
|
185 |
+
if (strlen($_POST['path'])>0 && strlen($_POST['type'])>0 && strlen($_POST['file'])>0){
|
186 |
+
|
187 |
+
|
188 |
+
$filename = sanitize_file_name( $_POST['file'] );
|
189 |
+
$path = $_POST['path'];
|
190 |
+
|
191 |
+
if ($_POST['type'] == "directory"){
|
192 |
+
|
193 |
+
$write_result = $wp_filesystem->mkdir($root . $path . $filename, FS_CHMOD_DIR);
|
194 |
+
|
195 |
+
if ($write_result){
|
196 |
+
die("1"); //created
|
197 |
+
}else{
|
198 |
+
echo "Problem creating directory" . $root . $path . $filename;
|
199 |
+
}
|
200 |
+
|
201 |
+
}else if ($_POST['type'] == "file"){
|
202 |
+
|
203 |
+
$write_result = $wp_filesystem->put_contents(
|
204 |
+
$root . $path . $filename,
|
205 |
+
' ',
|
206 |
+
FS_CHMOD_FILE // predefined mode settings for WP files
|
207 |
+
);
|
208 |
+
|
209 |
+
if ($write_result){
|
210 |
+
die("1"); //created
|
211 |
+
}else{
|
212 |
+
echo "Problem creating file " . $root . $path . $filename;
|
213 |
+
}
|
214 |
+
|
215 |
+
}
|
216 |
+
|
217 |
+
|
218 |
+
//print_r($_POST);
|
219 |
+
|
220 |
+
|
221 |
+
}
|
222 |
+
echo "0";
|
223 |
+
die(); // this is required to return a proper result
|
224 |
+
}
|
225 |
+
|
226 |
public static function wpide_save_file() {
|
227 |
//check the user has the permissions
|
228 |
check_admin_referer('plugin-name-action_wpidenonce');
|
242 |
$backup_path = ABSPATH .'wp-content/plugins/' . basename(dirname(__FILE__)) .'/backups/' . str_replace( str_replace('\\', "/", ABSPATH), '', $file_name) .'.'.date("YmdH");
|
243 |
//create backup directory if not there
|
244 |
$new_file_info = pathinfo($backup_path);
|
245 |
+
if (!$wp_filesystem->is_dir($new_file_info['dirname'])) wp_mkdir_p( $new_file_info['dirname'] ); //should use the filesytem api here but there isn't a comparable command right now
|
246 |
|
247 |
//do backup
|
248 |
$wp_filesystem->copy( $file_name, $backup_path );
|
266 |
|
267 |
var wpide_app_path = "<?php echo plugin_dir_url( __FILE__ ); ?>";
|
268 |
|
269 |
+
function the_filetree() {
|
270 |
+
jQuery('#wpide_file_browser').fileTree({ script: ajaxurl }, function(parent, file) {
|
|
|
271 |
|
272 |
+
if ( jQuery(parent).hasClass("create_new") ){ //create new file/folder
|
273 |
+
//to create a new item we need to know the name of it so show input
|
274 |
+
|
275 |
+
var item = eval('('+file+')');
|
276 |
+
|
277 |
+
//hide all inputs just incase one is selected
|
278 |
+
jQuery(".new_item_inputs").hide();
|
279 |
+
//show the input form for this
|
280 |
+
jQuery("div.new_" + item.type).show();
|
281 |
+
jQuery("div.new_" + item.type + " input[name='new_" + item.type + "']").focus();
|
282 |
+
jQuery("div.new_" + item.type + " input[name='new_" + item.type + "']").attr("rel", file);
|
283 |
+
|
284 |
+
|
285 |
+
}else if ( jQuery(".wpide_tab[rel='"+file+"']").length > 0) { //focus existing tab
|
286 |
+
jQuery(".wpide_tab[sessionrel='"+ jQuery(".wpide_tab[rel='"+file+"']").attr("sessionrel") +"']").click();//focus the already open tab
|
287 |
+
}else{ //open file
|
288 |
|
289 |
+
var image_patern =new RegExp("(\.jpg|\.gif|\.png|\.bmp)jQuery");
|
290 |
if ( image_patern.test(file) ){
|
291 |
alert("Image editing is not currently available. It's a planned feature using http://pixlr.com/");
|
292 |
}else{
|
293 |
+
jQuery(parent).addClass('wait');
|
294 |
|
295 |
wpide_set_file_contents(file, function(){
|
296 |
|
297 |
//once file loaded remove the wait class/indicator
|
298 |
+
jQuery(parent).removeClass('wait');
|
299 |
|
300 |
});
|
301 |
|
302 |
+
jQuery('#filename').val(file);
|
303 |
}
|
304 |
|
305 |
}
|
306 |
|
307 |
});
|
308 |
+
}
|
309 |
+
|
310 |
+
jQuery(document).ready(function() {
|
311 |
+
// Handler for .ready() called.
|
312 |
+
the_filetree() ;
|
313 |
});
|
314 |
</script>
|
315 |
|
336 |
<div id="major-publishing-actions">
|
337 |
<div id="wpide_file_browser"></div>
|
338 |
<br style="clear:both;" />
|
339 |
+
<div class="new_file new_item_inputs">
|
340 |
+
<label for="new_folder">File name</label><input class="has_data" name="new_file" type="text" rel="" value="" placeholder="Filename.ext" />
|
341 |
+
<a href="#" id="wpide_create_new_file" class="button-primary">CREATE</a>
|
342 |
+
</div>
|
343 |
+
<div class="new_directory new_item_inputs">
|
344 |
+
<label for="new_directory">Directory name</label><input class="has_data" name="new_directory" type="text" rel="" value="" placeholder="Filename.ext" />
|
345 |
+
<a href="#" id="wpide_create_new_directory" class="button-primary">CREATE</a>
|
346 |
+
</div>
|
347 |
<div class="clear"></div>
|
348 |
</div>
|
349 |
</div>
|
385 |
|
386 |
}
|
387 |
add_action("init", create_function('', 'new WPide2();'));
|
388 |
+
?>
|
banner-772x250.jpg
ADDED
Binary file
|
images/new-file.png
ADDED
Binary file
|
images/new-folder.png
ADDED
Binary file
|
jqueryFileTree.css
CHANGED
@@ -21,7 +21,9 @@ UL.jqueryFileTree A {
|
|
21 |
padding: 0px 2px;
|
22 |
}
|
23 |
|
24 |
-
UL.jqueryFileTree A:hover
|
|
|
|
|
25 |
background: #BDF;
|
26 |
}
|
27 |
|
@@ -88,4 +90,48 @@ UL.jqueryFileTree A:hover {
|
|
88 |
.jqueryFileTree LI.ext_wmv { background: url(images/film.png) left top no-repeat; }
|
89 |
.jqueryFileTree LI.ext_xls { background: url(images/xls.png) left top no-repeat; }
|
90 |
.jqueryFileTree LI.ext_xml { background: url(images/code.png) left top no-repeat; }
|
91 |
-
.jqueryFileTree LI.ext_zip { background: url(images/zip.png) left top no-repeat; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
padding: 0px 2px;
|
22 |
}
|
23 |
|
24 |
+
UL.jqueryFileTree LI.directory > A:hover,
|
25 |
+
UL.jqueryFileTree LI.file > A:hover
|
26 |
+
{
|
27 |
background: #BDF;
|
28 |
}
|
29 |
|
90 |
.jqueryFileTree LI.ext_wmv { background: url(images/film.png) left top no-repeat; }
|
91 |
.jqueryFileTree LI.ext_xls { background: url(images/xls.png) left top no-repeat; }
|
92 |
.jqueryFileTree LI.ext_xml { background: url(images/code.png) left top no-repeat; }
|
93 |
+
.jqueryFileTree LI.ext_zip { background: url(images/zip.png) left top no-repeat; }
|
94 |
+
|
95 |
+
a.new_directory{
|
96 |
+
background: url(images/new-folder.png) center no-repeat;
|
97 |
+
}
|
98 |
+
|
99 |
+
a.new_file{
|
100 |
+
background: url(images/new-file.png) center center no-repeat;
|
101 |
+
}
|
102 |
+
|
103 |
+
ul.jqueryFileTree .new_file,
|
104 |
+
ul.jqueryFileTree .new_directory{
|
105 |
+
width:20px;
|
106 |
+
height:20px;
|
107 |
+
padding:2px;
|
108 |
+
float:left;
|
109 |
+
display:block;
|
110 |
+
opacity:0.6;
|
111 |
+
}
|
112 |
+
ul.jqueryFileTree .new_file:hover,
|
113 |
+
ul.jqueryFileTree .new_directory:hover{
|
114 |
+
width:20px;
|
115 |
+
height:20px;
|
116 |
+
padding:2px;
|
117 |
+
float:left;
|
118 |
+
display:block;
|
119 |
+
opacity:1;
|
120 |
+
}
|
121 |
+
|
122 |
+
div.new_directory,
|
123 |
+
div.new_file{
|
124 |
+
display:none;
|
125 |
+
}
|
126 |
+
|
127 |
+
#major-publishing-actions input[type='text'],
|
128 |
+
#major-publishing-actions input[type='text']{
|
129 |
+
text-align:left;
|
130 |
+
width:150px;
|
131 |
+
}
|
132 |
+
|
133 |
+
#major-publishing-actions label{
|
134 |
+
display: block;
|
135 |
+
font-weight: bold;
|
136 |
+
padding-left: 3px;
|
137 |
+
}
|
js/load-editor.js
CHANGED
@@ -667,5 +667,50 @@ jQuery(document).ready(function($) {
|
|
667 |
});
|
668 |
|
669 |
//END COMMANDS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
670 |
|
671 |
});//end jquery load
|
667 |
});
|
668 |
|
669 |
//END COMMANDS
|
670 |
+
|
671 |
+
|
672 |
+
//click action for new directory/file submit link
|
673 |
+
$("#wpide_create_new_directory, #wpide_create_new_file").click(function(e){
|
674 |
+
e.preventDefault();
|
675 |
+
|
676 |
+
var data_input = jQuery(this).parent().find("input.has_data");
|
677 |
+
var item = eval('('+ data_input.attr("rel") +')');
|
678 |
+
|
679 |
+
//item.path file|directory
|
680 |
+
var data = { action: 'wpide_create_new', path: item.path, type: item.type, file: data_input.val(), _wpnonce: jQuery('#_wpnonce').val(), _wp_http_referer: jQuery('#_wp_http_referer').val() };
|
681 |
+
|
682 |
+
jQuery.post(ajaxurl, data, function(response) {
|
683 |
+
|
684 |
+
if (response == "1"){
|
685 |
+
//remove the file/dir name from the text input
|
686 |
+
data_input.val("");
|
687 |
+
|
688 |
+
if ( jQuery("ul.jqueryFileTree a[rel='"+ item.path +"']").length == 0){
|
689 |
+
|
690 |
+
//if no parent then we are adding something to the wp-content folder so regenerate the whole filetree
|
691 |
+
the_filetree();
|
692 |
+
|
693 |
+
}
|
694 |
+
|
695 |
+
//click the parent once to hide
|
696 |
+
jQuery("ul.jqueryFileTree a[rel='"+ item.path +"']").click();
|
697 |
+
|
698 |
+
//hide the parent input block
|
699 |
+
data_input.parent().hide();
|
700 |
+
|
701 |
+
//click the parent once again to show with new folder and focus on this area
|
702 |
+
jQuery("ul.jqueryFileTree a[rel='"+ item.path +"']").click();
|
703 |
+
jQuery("ul.jqueryFileTree a[rel='"+ item.path +"']").focus();
|
704 |
+
|
705 |
+
}else if (response == "-1"){
|
706 |
+
alert("Permission/security problem. Refresh WPide and try again.");
|
707 |
+
}else{
|
708 |
+
alert(response);
|
709 |
+
}
|
710 |
+
|
711 |
+
|
712 |
+
});
|
713 |
+
|
714 |
+
});
|
715 |
|
716 |
});//end jquery load
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: WPsites, Thomas Wieczorek
|
|
3 |
Tags: code, theme editor, plugin editor, code editor
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 3.3.2
|
6 |
-
Stable tag: 2.0
|
7 |
|
8 |
WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
9 |
|
@@ -22,6 +22,7 @@ This plugin would not be possible without the Ajax.org Cloud9 Editor (http://ace
|
|
22 |
* Code autocomplete for WordPress and PHP functions along with function description, arguments and return value where applicable
|
23 |
* Automatic backup of every file you edit. (one daily backup and one hourly backup of each file stored in plugins/WPide/backups/filepath)
|
24 |
* File tree allowing you to access and edit any file in your wp-content folder (plugins, themes, uploads etc)
|
|
|
25 |
* Highlight matching parentheses
|
26 |
* Code folding
|
27 |
* Auto indentation
|
@@ -30,7 +31,6 @@ This plugin would not be possible without the Ajax.org Cloud9 Editor (http://ace
|
|
30 |
|
31 |
= Feature ideas and improvements: =
|
32 |
|
33 |
-
* Create new files and directories
|
34 |
* Image editing (combining many of the tools available in most Paint programs with high-quality features that have become ubiquitous in image editing programs)
|
35 |
* Improve the code autocomplete command information, providing more information on the commands, adding links through to the WordPress codex and PHP.net website for further info.
|
36 |
* Add find and replace functionality
|
@@ -52,12 +52,16 @@ Thomas Wieczorek - http://www.wieczo.net
|
|
52 |
|
53 |
1. Upload the WPide folder to the `/wp-content/plugins/` directory
|
54 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
|
|
55 |
|
56 |
== Frequently Asked Questions ==
|
57 |
|
58 |
-
=
|
59 |
|
60 |
-
|
|
|
|
|
|
|
61 |
|
62 |
== Screenshots ==
|
63 |
|
@@ -65,6 +69,9 @@ No support for Internet Explorer right now
|
|
65 |
|
66 |
== Changelog ==
|
67 |
|
|
|
|
|
|
|
68 |
= 2.0 =
|
69 |
* Recreated this plugin as a dedicated WPide section/app rather than extending the built in plugin/theme editor (just incase WP remove it)
|
70 |
* Now using the WP filesystem API (although currently restricted to local access)
|
3 |
Tags: code, theme editor, plugin editor, code editor
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 3.3.2
|
6 |
+
Stable tag: 2.0.1
|
7 |
|
8 |
WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
9 |
|
22 |
* Code autocomplete for WordPress and PHP functions along with function description, arguments and return value where applicable
|
23 |
* Automatic backup of every file you edit. (one daily backup and one hourly backup of each file stored in plugins/WPide/backups/filepath)
|
24 |
* File tree allowing you to access and edit any file in your wp-content folder (plugins, themes, uploads etc)
|
25 |
+
* Create new files and directories
|
26 |
* Highlight matching parentheses
|
27 |
* Code folding
|
28 |
* Auto indentation
|
31 |
|
32 |
= Feature ideas and improvements: =
|
33 |
|
|
|
34 |
* Image editing (combining many of the tools available in most Paint programs with high-quality features that have become ubiquitous in image editing programs)
|
35 |
* Improve the code autocomplete command information, providing more information on the commands, adding links through to the WordPress codex and PHP.net website for further info.
|
36 |
* Add find and replace functionality
|
52 |
|
53 |
1. Upload the WPide folder to the `/wp-content/plugins/` directory
|
54 |
1. Activate the plugin through the 'Plugins' menu in WordPress
|
55 |
+
1. Access WPide by clicking the WPide menu item in your main administration menu
|
56 |
|
57 |
== Frequently Asked Questions ==
|
58 |
|
59 |
+
= Can I override the default file permissions when creating files/directories on the local filesystem =
|
60 |
|
61 |
+
Yes you can using the below WordPress settings in wp-config.php which will effect files created with WPide and files added during the WordPress upgrade process.
|
62 |
+
|
63 |
+
define('FS_CHMOD_DIR', (0755 & ~ umask()));
|
64 |
+
define('FS_CHMOD_FILE', (0644 & ~ umask()));
|
65 |
|
66 |
== Screenshots ==
|
67 |
|
69 |
|
70 |
== Changelog ==
|
71 |
|
72 |
+
= 2.0.1 =
|
73 |
+
* You can now create new files/folders
|
74 |
+
|
75 |
= 2.0 =
|
76 |
* Recreated this plugin as a dedicated WPide section/app rather than extending the built in plugin/theme editor (just incase WP remove it)
|
77 |
* Now using the WP filesystem API (although currently restricted to local access)
|