<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Joel Starnes</title>
	<atom:link href="http://joelstarnes.co.uk/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://joelstarnes.co.uk/blog</link>
	<description>Joel Starnes's Blog on pageMash, WordPress, GSoC...</description>
	<pubDate>Thu, 21 Aug 2008 16:21:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>codeWord mid-term report</title>
		<link>http://joelstarnes.co.uk/blog/2008/codeword-mid-term-report/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/codeword-mid-term-report/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 20:41:49 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[codeWord]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=22</guid>
		<description><![CDATA[You might have noticed in my post to the wp-hackers list ajax saving is now fully implemented and working smoothly. Following some great advice there I have updated the main php file which is now much cleaner and WP2.6 ready. This also reminded me to tidy up a few other loose ends that weren&#8217;t in [...]]]></description>
			<content:encoded><![CDATA[<p>You might have noticed in my <a href="http://groups.google.com/group/wp-hackers/browse_thread/thread/52990aefe5f7e10a">post</a> to the wp-hackers list ajax saving is now fully implemented and working smoothly. Following some great advice there I have updated the main php file which is now much cleaner and WP2.6 ready. This also reminded me to tidy up a few other loose ends that weren&#8217;t in use.</p>
<p><span id="more-22"></span></p>
<h3>Quick saving</h3>
<p>ajax saving is fairly straight forward jquery code. It requires the original textarea to be updated with the changes from CodePress and temporarily re-enabled while the data is sent. It then shows update status and continues accordingly.</p>
<h3>Autocomplete2</h3>
<p>I have completely rebuilt the WordPress function lookup using <a href="http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/">this autocomplete jquery plugin</a>. It will now find partial matches within the function name and comes with alternate colouring and a few other little tweaks, but the main reason for changing was so that I could use objects nested in an array structure to give me space to store additional data such as the functions default parameters. However now I need a method of collecting all this data to go into the array.</p>
<p>I&#8217;ve already fixed a bug, where it would select the first item when you press the shift modifier key (therefore you couldn&#8217;t type an underscore), but it still needs a little more time smoothing it out. One of the problems, which initially seemed to be straight forward, but still remains to be solved, is giving back focus to CodePress after the code has been inserted from the function lookup. This should be as simple as just calling the focus method on the iframe, however this only works in Safari. You can tab through the tabstops to the iframe element and it works fine in all the browsers I tested, but for some reason calling focus() won&#8217;t do the same. I tried ensuring contentEditable was set correctly and playing with the designMode setting and everything else I could find, to no avail.</p>
<h3>Next..</h3>
<p>My next target is to try and sort out how I&#8217;m going to link the WordPress functions back to the codex reference.</p>
<h3>home</h3>
<p>I&#8217;ve also set up a home for codeWord: <a href="http://joelstarnes.co.uk/blog/codeword/">joelstarnes.co.uk/blog/codeword/</a> which consists of a brief description and screenshot.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/codeword-mid-term-report/feed/</wfw:commentRss>
		</item>
		<item>
		<title>pageMash hits the 10,000 mark</title>
		<link>http://joelstarnes.co.uk/blog/2008/pagemash-hits-the-10000-mark/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/pagemash-hits-the-10000-mark/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 09:55:32 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[pageMash]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=13</guid>
		<description><![CDATA[PageMash has just reached 10,000 downloads earlier today!!
Thanks to everyone who&#8217;s downloaded and all the people who&#8217;ve emailed me with bug reports and suggestions. wooo.

]]></description>
			<content:encoded><![CDATA[<p>PageMash has just reached 10,000 downloads earlier today!!<br />
Thanks to everyone who&#8217;s downloaded and all the people who&#8217;ve emailed me with bug reports and suggestions. wooo.<br />
<a title="10,000 Downloads" rel="lightbox" href="http://joelstarnes.co.uk/blog/wp-content/uploads/2008/07/10000_downloads.jpg"><img class="center size-full wp-image-9" style="margin-top: 3px; margin-bottom: 3px; vertical-align: middle;" title="10,000" src="http://joelstarnes.co.uk/blog/wp-content/uploads/2008/07/10000_downloads_cr.jpg" alt="pageMash Functions" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/pagemash-hits-the-10000-mark/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CodeWord &gt; update</title>
		<link>http://joelstarnes.co.uk/blog/2008/codeword-update/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/codeword-update/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 13:47:26 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[codeWord]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=12</guid>
		<description><![CDATA[This week I&#8217;ve been putting in a lot of hours and have consequently made loads of progress and now have most of the main functionality fully implemented. Here&#8217;s an update of what&#8217;s been going on and some of the problems I&#8217;ve encoutered.

Indent Guides
My first approach to toggling my indent guides on and off was to [...]]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve been putting in a lot of hours and have consequently made loads of progress and now have most of the main functionality fully implemented. Here&#8217;s an update of what&#8217;s been going on and some of the problems I&#8217;ve encoutered.<br />
<span id="more-12"></span></p>
<h3>Indent Guides</h3>
<p>My first approach to toggling my indent guides on and off was to use javascript to loop through each kbd tag, each of which contains a tab character, and alter it&#8217;s background-image style. The code was something like this:</p>
<pre class="javascript" name="code">var kbds = newcontent.body.getElementsByTagName('kbd');
if(self.showtabs) {
	for (var i = 0; i &lt; kbds.length; i++) {
		kbds[i].style.backgroundImage = “none”;
	}
	self.showtabs = false;
}else{
	for (var i = 0; i &lt; kbds.length; i++) {
		kbds[i].style.backgroundImage = “url(’http://localhost/wordmashj/wp-content/plugins/codeWord/codepress/images/tab_arrow.gif’)”;
	}
	self.showtabs = true;
}</pre>
<p>Notice that since the elements I want to find are in an iframe I have to call getElementsByTagName within the context of the iframe&#8217;s body. However using this method didn&#8217;t really work because I&#8217;d then need to tell new tab characters not to have the background-image and when the content is re-syntax higlighted all the tab guides come back. I wanted a more elegant solution and found the answer in an old post from <a href="http://www.quirksmode.org/dom/changess.html">quirksmode</a>. This article showed how javascript could be used to alter style sheet rules dynamically. My new code:</p>
<pre class="javascript" name="code">if(self.contentDocument) {
	var iframeDoc = self.contentDocument;
}else if(self.document){
	var iframeDoc = self.document;
}
var theRules = new Array();
if (iframeDoc.styleSheets[0].cssRules)
	theRules = iframeDoc.styleSheets[0].cssRules;
else if (iframeDoc.styleSheets[0].rules)
	theRules = iframeDoc.styleSheets[0].rules;

if(self.showtabs !== false){
	theRules[0].style.backgroundImage = "none";
	self.showtabs = false;
}else{
	theRules[0].style.backgroundImage = "url('http://localhost/wordmashj/wp-content/plugins/codeWord/codepress/images/tab_arrow.gif')";
	self.showtabs = true;
}</pre>
<p>This time to get around the iframe issue I accessed the iframes contentDocument and then select the first rule in the first (and only) stylesheet. The W3C insists on the cssRules array while Microsoft has decided to use the rules array. Futhermore an iframe in IE dosen&#8217;t have a contentDocument, I found a post on <a href="http://www.geekdaily.net/2007/09/19/javascript-adding-a-stylesheet-to-an-iframe/">geek daily</a> about a similar problem that he solved calling iframes.document, but I&#8217;ve battled away to no avail as of yet.</p>
<h3>More Tabs</h3>
<p>I&#8217;ve also fixed the problem in firefox of not inserting a tab character, by detecting wether the previous word matches a snippet trigger and if not it will manually insert a tab character, \t.</p>
<h3>jQuery dom manipulation</h3>
<p>I was using straight javascript to manipulate the dom and add buttons, etc but I&#8217;ve now changed some of this accross to jquery code just keep my code a bit cleaner and fixed a problem I was having in IE. I did get a bit confudled with some of the name spacing issues, but this was simply overcome after I released what I had done wrong.</p>
<h3>Save changes</h3>
<p>Originally I wanted to implement an auto-save but this wouldn&#8217;t be as straight forward as it may seem as you wouldn&#8217;t want to save the changes over the current files, but would instead need a temporary file and if you had more than one instance of the editor open would then need multiple temp files, and then knowing when a temporary file needs to be restored is all quite over-complicated.</p>
<p>I&#8217;ve come up with a much easy solution which stops accidental loss of data by detecting when the user attempts to navigate away from the page or close or refresh the page (<a href="http://www.4guysfromrolla.com/webtech/100604-1.shtml">window.onunload</a>) and if the file has been changed since last saved will prompt the user accordingly. The only downside is this method would not stop data loss if the browser crashed, hopefully this would not be a usual occurrence though.</p>
<h3>Function lookup</h3>
<p>This now properly inserts the looked up code into the editor at the current cursor position, but I want it to then set the focus back to the editor with the cursor just after the inserted text, this is on my to do list.</p>
<h3>Where next?</h3>
<p>My next main step is to try and get ajax saving sorted out at last! Code so far is again in the repository, feel free to take a look and let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/codeword-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CodeWord initial progress..</title>
		<link>http://joelstarnes.co.uk/blog/2008/codeword-080527/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/codeword-080527/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 12:09:14 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[codeWord]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=11</guid>
		<description><![CDATA[My project is a plugin integrating the CodePress code editor into WordPress, but with a few additional features and sorting out an array of bugs. This will allow admins to edit the theme code online, but with line numbering and syntaxhighlighting, etc.
The code is nearly all javascript with some bits of php and css. The [...]]]></description>
			<content:encoded><![CDATA[<p>My project is a plugin integrating the CodePress code editor into WordPress, but with a few additional features and sorting out an array of bugs. This will allow admins to edit the theme code online, but with line numbering and syntaxhighlighting, etc.</p>
<p><span id="more-11"></span>The code is nearly all javascript with some bits of php and css. The initial js script looks at the filename extension and adds a class name to the code textarea with the code language and the class name &#8216;codepress&#8217;. Then dynamically includes the codepress script once it is done manipulating the DOM as the codepress.js file will then find this textarea and add the according scripts for the browser rendering engine and programming/scripting language being edited. I do most of my debugging in firefox thanks to the immensely useful firebug add-on, but testing in opera9, safari3 and IE7.</p>
<p>I&#8217;ve been playing about with tabbing and indent guides. The tab key was being picked up fine in IE7 and firefox 2, but not firefox 3, opera or safari however the indent guides show up fine. Conversely the button to toggle line numbers (not a hugely useful function, but simple for testing out compatibility) seemed to work in nearly all except IE.</p>
<p>The function lookup is a javascript dropdown textbox that will auto-complete wordpress function, and insert them into the editor and I hoped to add a way of linking this to a reference site to lookup info such as how it can be used and in which version of WP the function was added by using one of the existing wordpress function achieve sites, but am so far unsure how exactly I will do this or if it is a feasible option.</p>
<p>This is basically the gist of what I&#8217;ve been doing so far, and I&#8217;ll keep you updated with my progress. If you&#8217;d like to take a look-see, I&#8217;ve made an initial commit to the WPSoC google code <a title="WPSoC Repository" href="http://code.google.com/p/wordpress-soc-2008/">repository</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/codeword-080527/feed/</wfw:commentRss>
		</item>
		<item>
		<title>pageMash v1.1.0</title>
		<link>http://joelstarnes.co.uk/blog/2008/pagemash-v110/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/pagemash-v110/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 20:28:34 +0000</pubDate>
		<dc:creator>author</dc:creator>
		
		<category><![CDATA[pageMash]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=10</guid>
		<description><![CDATA[After about a month without any updates to pageMash I&#8217;ve got round to adding a few new features:

I&#8217;ve added quick in-line page renaming using Justin Maier&#8217;s inlineEdit2 Mootools class.
and changed the display of the links to show when you hover over the » icon.



I&#8217;ve also added the function to deregistered prototype and any scripts that [...]]]></description>
			<content:encoded><![CDATA[<p>After about a month without any updates to pageMash I&#8217;ve got round to adding a few new features:</p>
<ul>
<li>I&#8217;ve added quick in-line page renaming using <a href="http://resume.justinmaier.com/">Justin Maier&#8217;s</a> <a href="http://dev.justinmaier.com/inlineEdit2/">inlineEdit2</a> Mootools class.</li>
<li>and changed the display of the links to show when you hover over the » icon.</li>
<li style="list-style:none;"><a title="pageMash admin" rel="lightbox" href="http://joelstarnes.co.uk/img/pagemash/pagemash_screenshot_large.jpg"><img class="center size-full wp-image-9" style="margin-top: 3px; margin-bottom: 3px; vertical-align: middle;" title="edit | hide | rename" src="http://joelstarnes.co.uk/blog/wp-content/uploads/2008/04/edit.jpg" alt="pageMash Functions" width="320" height="77" /></a></li>
</ul>
<ul>
<li>I&#8217;ve also added the function to deregistered prototype and any scripts that rely on this from the pageMash admin since this is incompatible with mootools and should temporarily disable any other plugins you have that would otherwise cause javascript errors.</li>
<li>For anyone who likes to know whats going on under-the-hood, I&#8217;ve split up the main pageMash file, which was getting a bit long, into separate CSS and JS files. I also added the cache_javascript_headers() function to save some processing.</li>
</ul>
<p>The <a title="pageMash plugin example" href="http://joelstarnes.co.uk/pagemash/example">example page </a>has been updated to WordPress 2.5 and this new version of pageMash.</p>
<p>If you have any problems or got any ideas for future releases, write me a nice letter (or <a title="mailto: Joel Starnes" href="http://joelstarnes.co.uk/contact">drop me an email</a> if you prefer).</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/pagemash-v110/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GSoC 2008</title>
		<link>http://joelstarnes.co.uk/blog/2008/gsoc-2008/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/gsoc-2008/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 19:45:52 +0000</pubDate>
		<dc:creator>author</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=8</guid>
		<description><![CDATA[I Have been accepted into Google&#8217;s Summer of Code 2008!! In my recent posts I documented my 3 proposals of which the second was accepted (WordPress Code Editor). I&#8217;ll be working on the plugin over the summer and will be mentored by Andy Peatling.
]]></description>
			<content:encoded><![CDATA[<p>I Have been accepted into Google&#8217;s Summer of Code 2008!! In my recent posts I documented my 3 proposals of which the second was accepted (<a title="GSoC proposal" href="http://code.google.com/soc/2008/wordpress/appinfo.html?csaid=790EB0B15953346E">WordPress Code Editor</a>). I&#8217;ll be working on the plugin over the summer and will be mentored by <a class="external text" title="http://andyinlife.com/" href="http://andyinlife.com/">Andy Peatling</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/gsoc-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress: Mootools Commenting</title>
		<link>http://joelstarnes.co.uk/blog/2008/wordpress-mootools-commenting/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/wordpress-mootools-commenting/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 22:25:05 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=7</guid>
		<description><![CDATA[My third proposal: This project will hope to produce a plugin to validate and send comments using ajax but powered by the mootools framework. The plugin would also feature the ability to let users modify their comment within 2 mins of posting it and would give admins quick ajax controls to modify, delete or report [...]]]></description>
			<content:encoded><![CDATA[<p>My third proposal: This project will hope to produce a plugin to validate and send comments using ajax but powered by the mootools framework. The plugin would also feature the ability to let users modify their comment within 2 mins of posting it and would give admins quick ajax controls to modify, delete or report the comment as spam available on the front-end next to each comment.<br />
This plugin would be useful for anyone who wants to enhance the commenting functionality of wordpress, but would be especially useful for people who are already using the mootools framework.</p>
<p><span id="more-8"></span> == Road Map ==<br />
* Within the first month I would complete the basic ajax code for sending comment, with a simple framework for validating and verifying. Using the mootools framework I will also be able to achieve smooth slide-in and highlighting effects. This will be the first major milestone.<br />
* In the second month I would give this a thorough cross-browser testing and also implement the other features outlined above.<br />
* This leaves the last month as contingency in case I run into major problems earlier on, and plenty of time to fully test the final code, rewriting anything that can be made more efficient and checking that it all still degrades gracefully.</p>
<p>== Implementation ==<br />
There are already separate existing plugins which provide some of these features but are nearly all written with other frameworks. I hope to use these as inspiration and build upon they&#8217;re combined success by creating a plugin that will handle all these features together. The code needs to be very well written so people can easily work with it, it should be well documented, it needs to be extremely robust and efficient and should self-diagnose common problems.<br />
There is a very good plugin: &#8216;WP AJAX Edit Comments&#8217;, written on jquery that offers some of this functionality.</p>
<p>== How it will work ==<br />
When the comment is submitted it will first be checked by client side javascript to ensure a valid email address and required fields are all filled in. Then it is sent to the server and put through the standard add comment procedure where it is re-checked. If this returns successfully to the original page this will display a confirmation and add the comment directly into the html code.<br />
It will also display a timer from when the comment was first submitted counting down 2 mins with a link to re-editing the comment.<br />
For admin users extra javascript code will be added when the page is created with links on each comment to modify, delete or report the comment as spam.<br />
There will be an additional settings tab in the WordPress admin which will allow admins to setup the plugin as they like, adjusting options such as the time allowed for user comment editing.</p>
<p>== Mootools ==<br />
I am very familiar with mootools and believe it is very well suited for this project. I will use the version 1.2 release using a minimal number of modules to keep the overhead to a minimum and speed &amp; efficiency at a maximum.<br />
Often frameworks are incompatible, and having more than one adds to the overhead, so this plugin will allow for developers who like to use mootools or want a specific mootools script such as JonDesign&#8217;s SmoothGallery within their post.</p>
<p>== About Me ==<br />
I have long had an interest in WordPress and recently become more active in the WP community, mostly as developer of the plugin &#8216;pageMash&#8217;; which I have thoroughly enjoyed developing. I received a lot of great feedback including topic #161869, blog posts such as http://blueprintds.com/2008/03/12/organizing-pages-in-wordpress/, and have been listed in a top 10 WP CMS plugins.<br />
I’m 18 years old and have been in web design and development for about 5 years now but have enjoyed programming ever since primary school. I do some web design work for local businesses; such as easyturn.co.uk and also contract out to a local web design company.  I am experienced with coding standards and enjoy working with other developers. I attend College in the UK studying maths, physics and economics and have been accepted to study computer science at university next year. I am also a great lover of jazz <img src='http://joelstarnes.co.uk/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/wordpress-mootools-commenting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress: Theme Code Editor</title>
		<link>http://joelstarnes.co.uk/blog/2008/wordpress-theme-code-editor/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/wordpress-theme-code-editor/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 19:57:53 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=6</guid>
		<description><![CDATA[My second proposal is to enhance the template editor with a simple, javascript powered, syntax highlighting editor. I am looking at implementing and building upon the project over at codepress.org (LGPL License).

== Implementation ==
To begin with I would simplify the editor and just implement the basic syntax highlighting for PHP, HTML, CSS &#38; JS. I [...]]]></description>
			<content:encoded><![CDATA[<p>My second proposal is to enhance the template editor with a simple, javascript powered, syntax highlighting editor. I am looking at implementing and building upon the project over at codepress.org (LGPL License).</p>
<p><span id="more-7"></span></p>
<p>== Implementation ==<br />
To begin with I would simplify the editor and just implement the basic syntax highlighting for PHP, HTML, CSS &amp; JS. I would then try to eliminate any bugs with thorough testing so there would be a reliable, robust base to build on.<br />
Once this is complete I would hope to add WordPress functions to the PHP bundle.<br />
This project could be continued with additions such as:<br />
* Auto save<br />
* Code snippets<br />
* Code completion<br />
* Linking of WordPress functions to the function reference in the wordpress.org codex.<br />
However it is unlikely that all these features would be implemented within the timescale, (as I think it is better to do one thing thoroughly).</p>
<p>This project would most likely be included as a plugin, but could easily be converted to use in the core if desired.</p>
<p>The code editor works through the use of regular expressions defined for each language in individual .js files the code is then styled with CSS.<br />
Since the coding is all client side JS there will likely be a lot or cross-browser issues to deal with.  I hope to first get the system working in Firefox, but eventually have it functional in all the current major browsers. For any browsers it won’t work in it will degrade gracefully.</p>
<p>The code would be saved to the DB using a jquery ajax call, this would mean code can be saved without the interuption of a page reload and re-syntax-coloring the code. Also it can help avoid data loss if the client&#8217;s internet connection drops out while the data is being sent. However it would fall back to the default method if the xmlhttprequest function is not available.</p>
<p>I would also want the editor to catch the &#8216;tab&#8217; keypress and insert a tab character rather then tabbing to the next html element. This is a very simple change but would, in my opinion, make the editor much more useable. I could also use css to style the tab character to show a grey bar to help the user see where indented code lines up.</p>
<p>== Milestones ==<br />
The first major milestone will be to get the editor implemented. Second I will then fix all major cross-browser issues. I hope to get to this point by half way through the allotted time, this will allow me plenty of time to sort out minor bugs and add ajax code saving. Then if I have time left I will look into adding some of the extra functionality listed earlier.</p>
<p>== About Me ==<br />
I have long had an interest in WordPress and recently become more active in the WP community, mostly as developer of the plugin &#8216;pageMash&#8217;; which I have thoroughly enjoyed developing. I received a lot of great feedback including topic #161869, blog posts such as http://blueprintds.com/2008/03/12/organizing-pages-in-wordpress/, and have been listed in a top 10 WP CMS plugins.<br />
I’m 18 years old and have been in web design and development for about 5 years now but have enjoyed programming ever since primary school. I do some web design work for local businesses; such as easyturn.co.uk and also contract out to a local web design company.  I am experienced with coding standards and enjoy working with other developers. I attend College in the UK studying maths, physics and economics and have been accepted to study computer science at university next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/wordpress-theme-code-editor/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress: Uninstall, Configure &#038; Edit plugins</title>
		<link>http://joelstarnes.co.uk/blog/2008/wordpress-uninstall-configure-edit-plugins/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/wordpress-uninstall-configure-edit-plugins/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 19:55:55 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=5</guid>
		<description><![CDATA[My proposal is to help integrate plugins more tightly and consistently with the addition of &#8216;uninstall&#8217; and &#8216;configure&#8217; actions in the “Plugin Management” and by enhancing the plugin editor’s capabilities by allowing editing of all plugin files.

== Summary ==
Obviously my proposal would only work if it was used within the WP core as it would [...]]]></description>
			<content:encoded><![CDATA[<p>My proposal is to help integrate plugins more tightly and consistently with the addition of &#8216;uninstall&#8217; and &#8216;configure&#8217; actions in the “Plugin Management” and by enhancing the plugin editor’s capabilities by allowing editing of all plugin files.</p>
<p><span id="more-6"></span></p>
<p>== Summary ==<br />
Obviously my proposal would only work if it was used within the WP core as it would need plugin developers to work with the provided hooks. The hooks would need to be well documented and the code should remain simple and very robust.<br />
I have noted these features are well requested and would really help improve WordPress and there has been a good patch already submitted, as shown, for plugin uninstall. I hope to improve upon this and implement a configure hook that matches it as I think the two features go hand in hand.<br />
The edit link has been debated as to whether it is necessary since you want to discourage editing of plugins, nonetheless for people who know what they are doing it is a useful feature. Being able to edit all the files within the plugin would just extend this ‘usefulness’.</p>
<p>== Milestones ==<br />
My first milestone would be to get the uninstall feature fully implemented, which I would hope to do within the first month.<br />
My second milestone would be the config feature which I would give another month.<br />
By the end of the first two months I would also hope to have completed the design for showing these two options from within the plugin admin.<br />
Then the final month I would check for bugs and generally make sure it all runs smoothly.<br />
The edit feature is a kind of extension which I would implement if the first two milestones go very smoothly and I’m running ahead of schedule.<br />
Presentation<br />
If I were to add my ‘uninstall’ and ‘configure’ hooks there would then be 4 actions in the plugin management:<br />
De/activate |Config | Edit | Uninstall<br />
If I was to implement both of these it would start to look a little overcrowded and may need “Config | Edit | Uninstall” to be listed in a dropdown box or simply hidden by a more button that uses jquery to reveal the other options in some way but this would need to degrade gracefully.</p>
<p>I would also need to decide if the uninstall link would only show for the plugins who are using the hook, or for all of them but grayed out for those not using it. There would also need to be a way to show that the plugin has been uninstalled (the link could become grayed out, but once the plugin is reactivated would need to revert to being clickable).</p>
<p>== Uninstall ==<br />
Topic #1108, Trac #5625, http://weblogtoolscollection.com/archives/2008/01/07/uninstall-is-there-such-a-thing/<br />
This would:<br />
* The interface should show a confirmation beforehand, to avoid accidental data loss.<br />
* Run uninstall code written by the plugin author to remove superfluous entries in the user’s DB. (and/or any other files that can be cleaned up). Options and DB tables can be passed to the hook to handle, but it is also possible to call custom cleanup code written by the author.<br />
* Then display ‘uninstall success’ confirmation and further info, also provided by author, on any other code that needs to be manually removed eg. from the template that the user has added (and may have forgotten about).</p>
<p>== Configure ==<br />
Topic #166, Trac #4498<br />
This would:<br />
* Give authors a ‘config’ hook to show their plugin’s config settings in the centralised “Plugin Settings” menu.<br />
Centralising the configuration of plugins would help standardise plugin settings. It would make it easier for users to adjust plugin settings, as they would all be in one place and would avoid cramming the settings menu of the WP admin with an extra tab for each plugin that has settings.</p>
<p>I would add an extra submenu tab linking to settings. In this page all the plugins would be listed down the right hand side (as in the plugin editor) with the settings for the selected plugin shown in the main column. The config link from the plugin management would link directly to that plugin’s own settings (similar to the edit link for plugins).</p>
<p>== Edit ==<br />
I would like to extend the functionality of the plugin editor by allowing editing of all plugin files (php, js, css, etc), not just the main one.<br />
This would be achieved by either adding a nested list below the selected plugin in the right hand “Plugin Files” menu showing the plugin’s other editable files. If the plugin uses subdirectories these files would be shown within the subdirectories (eg a css and a js folder). Only specific file types would be shown (php, js, css, etc – as you can’t edit image files here)</p>
<p>== About Me ==<br />
I have long had an interest in WordPress and recently become more active in the WP community, mostly as developer of the plugin &#8216;pageMash&#8217;; which I have thoroughly enjoyed developing. I received a lot of great feedback including topic #161869, blog posts such as http://blueprintds.com/2008/03/12/organizing-pages-in-wordpress/, and have been listed in a top 10 WP CMS plugins.<br />
I’m 18 years old and have been in web design and development for about 5 years now but have enjoyed programming ever since primary school. I do some web design work for local businesses; such as easyturn.co.uk and also contract out to a local web design company.  I am experienced with coding standards and enjoy working with other developers. I attend College in the UK studying maths, physics and economics and have been accepted to study computer science at university next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/wordpress-uninstall-configure-edit-plugins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hello World</title>
		<link>http://joelstarnes.co.uk/blog/2008/hello-world-2/</link>
		<comments>http://joelstarnes.co.uk/blog/2008/hello-world-2/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 11:45:12 +0000</pubDate>
		<dc:creator>Joel</dc:creator>
		
		<category><![CDATA[Hello World]]></category>

		<category><![CDATA[hello]]></category>

		<guid isPermaLink="false">http://joelstarnes.co.uk/blog/?p=3</guid>
		<description><![CDATA[This is my very first post just to say:
Hello World
This year I&#8217;ve decided to apply to GSoC and have set up this blog to document my proposals, which will follow shortly&#8230;
]]></description>
			<content:encoded><![CDATA[<p>This is my very first post just to say:</p>
<p><strong>Hello World</strong></p>
<p>This year I&#8217;ve decided to apply to GSoC and have set up this blog to document my proposals, which will follow shortly&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://joelstarnes.co.uk/blog/2008/hello-world-2/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.544 seconds -->
