<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gilluminate &#187; PHP</title>
	<atom:link href="http://www.gilluminate.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gilluminate.com</link>
	<description>By Jason Gill</description>
	<lastBuildDate>Sat, 28 Jan 2012 21:01:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Host Your Own Custom WordPress Plugin Auto-Updater</title>
		<link>http://www.gilluminate.com/2011/12/23/host-your-own-custom-wordpress-plugin-updater/</link>
		<comments>http://www.gilluminate.com/2011/12/23/host-your-own-custom-wordpress-plugin-updater/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 22:53:51 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.gilluminate.com/?p=6361</guid>
		<description><![CDATA[The Problem The biggest appeal WordPress has is it&#8217;s extensibility via plugins. But if you create a plugin for personal use or for a corporation with a very specific purpose, you may not want to go through the process of having it submitted, approved, and available for the world on the WordPress Plugin repository. So [...]]]></description>
			<content:encoded><![CDATA[<h2>The Problem</h2>
<p><a href="http://www.gilluminate.com/wp-content/uploads/wordpress_plugins_screenshot.jpg"><img class="alignright size-thumbnail wp-image-6364" src="http://www.gilluminate.com/wp-content/uploads/wordpress_plugins_screenshot-150x114.jpg" alt="WordPress Plugins" width="150" height="114" /></a>The biggest appeal WordPress has is it&#8217;s extensibility via plugins. But if you create a plugin for personal use or for a corporation with a very specific purpose, you may not want to go through the process of having it submitted, approved, and available for the world on the <a href="http://wordpress.org/extend/plugins/">WordPress Plugin repository</a>. So what&#8217;s wrong with just hosting your plugin .zip file and providing a link for convenient access? One answer: updates.</p>
<p>When a plugin is installed via the official repository, it will automatically make a call back periodically and check for updates. If updates are available, it will alert the user and provide a link to &#8220;update automatically.&#8221; With a home-grown private plugin, or a plugin kept out of the official repo. for whatever reason, there is no such lookup and link available. Until now!</p>
<h2>Don&#8217;t You Just Love Open Source?</h2>
<p>The wonderful thing about Open Source products like WordPress, is that you can see how things are working, and make your own solutions for issues like the scenario described above. After a lot of tinkering and investigation I came up with a really easy and simple solution with just 3 easy steps.</p>
<h5><strong>Step 1:</strong> Host an update file.</h5>
<p>Create a plain-text file that contains 2 parts. The first part contains the current version number of your plugin, the second part contains the URL of where your plugin .zip file can be downloaded from. Separate these parts from each other using a simple pipe. Like this:</p>
<p><code>1.2.3|http://www.mycustomrepository.com/plugins/myplugin-1.2.3.zip</code></p>
<p>Now you need to host this file somewhere accessible by WordPress. My recomendation is to include this file right within your plugin folder prior to compressing it, and host the folder along side your .zip file. So the URL for the update file in our example above might be:</p>
<p><code>http://www.mycustomrepository.com/plugins/myplugin/myplugin.chk</code></p>
<p>Notice that I added a .chk extension on the filename. The extension does not matter here, just as long as the file is saved out as plain text. Using .chk just makes it easy to distinguish. It could just as well be .txt or whatever you want.</p>
<h5><strong>Step 2:</strong> Include update checker</h5>
<p>I have developed a php file that contains all of the code necessary to make this work. You can either copy/paste its contents unchanged into your plugin&#8217;s main .php file, or I recommend just adding this file to your plugin folder and require it in your code.</p>
<a href='https://github.com/downloads/gilluminate/wp-custom-defaults/gill-updates.php' class='icon-button download-icon'><span class='et-icon'><span>Download gill-updates.php</span></span></a>
<p class="clear">You will also add some code to your plugin referencing the update check file discussed in step 1, and set a quick variable referencing your plugin.</p>
<p>To accomplish all of this, follow this example at the bottom of your plugin php:<br />
<code>//custom updates/upgrades<br />
$this_file = __FILE__;<br />
$update_check = "http://www.mycustomrepository.com/plugins/myplugin/myplugin.chk";<br />
require_once('gill-updates.php');</code></p>
<h5><strong>Step 3:</strong> Host your plugin .zip file in the location you specified above</h5>
<p>In our case, you would add the myplugin.zip file to the web host so that it will be accessible at the exact location specified in your update check file. For example:</p>
<p><code>http://www.mycustomrepository.com/plugins/myplugin-1.2.3.zip</code></p>
<h2>What now?</h2>
<p>Once you have completed the steps above you are set to allow your plugin to automatically check for updates of itself. All you need to do when you update your plugin, is edit the update file to a new version. Also, make sure the .zip file it points to contains your new version.For example:</p>
<p><code>2.0|http://www.mycustomrepository.com/plugins/myplugin-2.0.zip</code></p>
<p>That&#8217;s it! The plugin will now compare it&#8217;s current version (specified in the meta information of your plugin) to the version listed in the check file. If the check file number is greater than the number in your plugin, it will provide an &#8220;update automatically&#8221; link as though it were being hosted in the official repository, and when clicked it will update the plugin automatically with the file specified.</p>
<h2>Credit</h2>
<p>Ainun Nazieb who wrote a similar post on <a href="http://nazieb.com/797/how-to-make-your-own-plugins-themes-updating-service">How to Make Your Own Plugins/Themes Updating Service</a>. Ainun&#8217;s post claims it will work for plugins, but there wasn&#8217;t any specific information to support that claim. It was specifically related to Themes. This post certainly saved me a lot of work and started me on the right path, however.</p>
<p>The image used above was stolen from <a href="http://wp.smashingmagazine.com/2011/03/08/ten-things-every-wordpress-plugin-developer-should-know/">Smashingmagazine.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2011/12/23/host-your-own-custom-wordpress-plugin-updater/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CForms II, Bluehost and the From: address</title>
		<link>http://www.gilluminate.com/2011/02/17/cforms-ii-bluehost-and-the-from-address/</link>
		<comments>http://www.gilluminate.com/2011/02/17/cforms-ii-bluehost-and-the-from-address/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 21:14:47 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[BlueHost]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.gilluminate.com/?p=5908</guid>
		<description><![CDATA[There are several forum posts, articles, and help from bluehost attempting to explain how to get the default address on Bluehost to send to something besides user@***.bluehost.com when using CForms II plugin for WordPress. However, I had no success with following them. They all seem pretty out of date and are lacking in specific instructions. [...]]]></description>
			<content:encoded><![CDATA[<p>There are <a href="http://www.bluehostforum.com/showthread.php?15481-Addon-Domain-GoogleApps-WordPress-cForms-impossible">several</a> <a href="http://www.deliciousdays.com/cforms-forum/troubleshooting/bluehost-email-from-adddress/">forum</a> <a href="http://www.bluehostforum.com/archive/index.php/t-20181.html">posts</a>, <a href="http://www.nyayapati.com/srao/2010/02/how-to-change-admin-email-address-boxxxx-bluehost-com-to-mydomain-com-on-a-bluehost-hosted-wordpress/">articles</a>, and <a href="http://helpdesk.bluehost.com/index.php/kb/article/000206">help</a> from <a href="http://helpdesk.bluehost.com/index.php/kb/article/000214">bluehost</a> attempting to explain how to get the default address on Bluehost to send to something besides user@***.bluehost.com when using CForms II plugin for WordPress. However, I had no success with following them. They all seem pretty out of date and are lacking in specific instructions. So, I&#8217;m not trying to beat a dead horse here, I&#8217;m just trying to sum up exactly what I did that gave me success (after 3 days of trying). My method focuses on using the php.ini approach. Further, I&#8217;m using an approach that allows a different email address to be specified for various multiple domains on the same Bluehost account.</p>
<ol>
<ol>
<li>Using cPanel, go to PHP Configuration under the &#8220;software/services&#8221; section. There you will see 3 options: PHP5, PHP5 (Single php.ini), and PHP5 (FastCGI). If you are going to be using multiple domains in a single Bluehost account, make sure the first option is selected. If you are only using one domain on Bluehost or you want to use one setting to handle all of your domains, select the second option.</li>
<li>In the same PHP Configuration panel, under the install default php.ini section, select to include IonCube &amp; SourceGuardian</li>
<li>Click on install php.ini master file. If the file already exists, it will give you an error. That&#8217;s fine, we can use the newly generated file or an existing file.</li>
<li>Using either the file manager, your ftp program, or SSH, navigate to the root of public_html and make a copy of php.ini.default named php.ini</li>
<li>If you selected the first option in #1 above, copy that php.ini file into <strong>the root of your cforms plugin directory</strong>. If you selected the second option, leave that file where it is.</li>
<li>Edit the newly created php.ini file by doing a text search for sendmail_path and replacing the entire line with something similar to the following:</li>
</ol>
</ol>
<pre>sendmail_path = /usr/sbin/sendmail -t -i -f '"User Frienldy Name" &lt;friendly@yourdomain.com&gt;'</pre>
<p>(note: you are allowed to use a Friendly Name, which isn&#8217;t something I could find in any other documentation. I was just experimenting and found out it worked for me.)</p>
<ol>
<ol>
<li>Create a file named info.php and place it at the same directory as your php.ini file. In the info.php file, simply include the following php:</li>
</ol>
</ol>
<pre>&lt;?php phpinfo(); ?&gt;</pre>
<ol>
<li>View that page by visiting the correct path in your browser, whether it be yourdomain.com/info.php or if it be yourdomain.com/wp-content/plugins/cforms/info.php</li>
<li>Verify that the &#8220;Loaded Configuration File&#8221; option is showing the directory you placed your php.ini file in. If it shows /etc as part of your location, something is not right. Repeat steps 1-8 until that shows up.</li>
<li>Also using cPanel, go into the Email Accounts settings under the &#8220;Mail&#8221; section. Add friendly@yourdomain.com as a valid Bluehost email address.<br />
(note: this does NOT have to be wordpress@yourdomain.com, it can be anything as long as this matches what you placed in your php.ini file and you use the domain associated with Bluehost. <strong>Without this account, none of the settings above will work</strong>.)</li>
<li>Test your CForm to make sure it gets emailed correctly.</li>
</ol>
<p>That&#8217;s about it. I hope this helps you. If so, leave a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2011/02/17/cforms-ii-bluehost-and-the-from-address/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BB Moderation Hold plugin w/ BB Press version 1.0+</title>
		<link>http://www.gilluminate.com/2009/11/30/bb-moderation-hold-plugin-w-bb-press-version-1-0/</link>
		<comments>http://www.gilluminate.com/2009/11/30/bb-moderation-hold-plugin-w-bb-press-version-1-0/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 23:35:08 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[BB Press]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.gilluminate.com/?p=5659</guid>
		<description><![CDATA[It appears that the BB Moderation Hold plugin hasn&#8217;t updated for newer versions of BB Press. The moderation links are not appearing in the admin navigation and when you click &#8220;moderate&#8221; from within the post itself as a moderator it redirects to the homepage rather than taking you to the moderation pages. The fix for [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that the BB Moderation Hold plugin hasn&#8217;t updated for newer versions of BB Press. The moderation links are not appearing in the admin navigation and when you click &#8220;moderate&#8221; from within the post itself as a moderator it redirects to the homepage rather than taking you to the moderation pages.</p>
<p>The fix for both issues is rather simple, but requires editing the php code in the plugin itself. Simply open up moderation.php and make the following tweaks:</p>
<p>Change:</p>
<pre> bb_admin_add_submenu(__('Topics for Moderation'), 'moderate', 'bb_moderation_hold_topic_admin_page', 'content.php' );</pre>
<p>To:</p>
<pre> bb_admin_add_submenu(__('Topics for Moderation'), 'moderate', 'bb_moderation_hold_topic_admin_page', 'topics.php' );</pre>
<p>Change:</p>
<pre> bb_admin_add_submenu(__('Topics for Moderation'), 'moderate', 'bb_moderation_hold_topic_admin_page', 'content.php' );</pre>
<p>To:</p>
<pre> bb_admin_add_submenu(__('Topics for Moderation'), 'moderate', 'bb_moderation_hold_topic_admin_page', 'posts.php' );</pre>
<p>You are basically changing both instances of &#8216;content.php&#8217; to &#8216;topics.php&#8217; and &#8216;posts.php&#8217; respectively.</p>
<p>Now when you replace moderation.php on your server you should see extra links under the posts and topics sections and you should be taken to the appropriate pages when moderating.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2009/11/30/bb-moderation-hold-plugin-w-bb-press-version-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>parsing XML with PHP on Apache2 server with apache-mod_php installed</title>
		<link>http://www.gilluminate.com/2007/01/30/parsing-xml-with-php-on-apache2-server-with-apache-mod_php-installed/</link>
		<comments>http://www.gilluminate.com/2007/01/30/parsing-xml-with-php-on-apache2-server-with-apache-mod_php-installed/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 05:45:00 +0000</pubDate>
		<dc:creator>Jason Gill</dc:creator>
				<category><![CDATA[Developer Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.gillumiante.com/2007/01/31/parsing-xml-with-php-on-apache2-server-with-apache-mod_php-installed</guid>
		<description><![CDATA[There are many examples of how to parse through an XML document using PHP out on the web by doing a quick google search. I was having problems because even while following all of those examples, I was getting the following error: PHP Fatal error: Call to undefined function: xml_parser_create() Everywhere I searched said &#8220;you [...]]]></description>
			<content:encoded><![CDATA[<p>There are many examples of how to parse through an XML document using PHP out on the web by doing a quick <a href="http://www.google.com/search?&amp;q=php+xml">google search</a>. I was having problems because even while following all of those examples, I was getting the following error:</p>
<p><code>PHP Fatal error: Call to undefined function: xml_parser_create()</code></p>
<p>Everywhere I searched said &#8220;you need to recompile PHP and use &#8211;with-xml and it will get rid of this error. Well, I didn&#8217;t compile PHP in the first place, I installed Apache2 as an RPM in Mandrake and the PHP module (apache-mod_php) to go with it. I couldn&#8217;t find anywhere that told me how to add XML support to PHP in that case.</p>
<p>After many hours of searching, I finally discovered that you need to also install the <a href="http://rpm.pbone.net/index.php3?stat=3&amp;search=php-xml&amp;srodzaj=3">php-xml RPM</a> and the problem will go away. Seems easy enough now, but I was really having a difficult time finding the answer to this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gilluminate.com/2007/01/30/parsing-xml-with-php-on-apache2-server-with-apache-mod_php-installed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

