<?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>Webmaster Bulletin &#187; php</title>
	<atom:link href="http://www.webmasterbulletin.net/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webmasterbulletin.net</link>
	<description>Rambling around the web publishing industry</description>
	<lastBuildDate>Wed, 21 Jul 2010 09:48:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pdf Generation with PHP</title>
		<link>http://www.webmasterbulletin.net/2008/09/pdf-generation-with-php/299</link>
		<comments>http://www.webmasterbulletin.net/2008/09/pdf-generation-with-php/299#comments</comments>
		<pubDate>Wed, 17 Sep 2008 13:42:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Components]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.webmasterbulletin.net/?p=299</guid>
		<description><![CDATA[The topic of PDF generation with PHP used to be quite painful : PHP native functions require PDF lib, a library that does not come straight out of the box, and is distributed under commercial license. In spite of this dominant position, other solutions have been implemented and available under opensource license.

fpdf is probably the [...]]]></description>
			<content:encoded><![CDATA[<p>The topic of PDF generation with PHP used to be quite painful : PHP native functions require PDF lib, a library that does not come straight out of the box, and is distributed under commercial license. In spite of this dominant position, other solutions have been implemented and available under opensource license.</p>
<ul>
<li><a href="http://www.fpdf.org/" target="_blank">fpdf </a>is probably the most famous of PHP PDF libraries. FPDF project remained inactive for years but was still very usable in its latest version, dated 2004. And finally after 4 years of inactivity a new version finally came out this august 2008, with important features such as GIF image support and possibility to have different page formats in a single document. Most interesting is the additionnal <a href="http://www.vanxuan.net/tool/pdftable/" target="_blank">PDFTable </a>class, which does a very good job render<strong> HTML table conversion to PDF format</strong>. That&#8217;s in my opinion the easiest way for a webmaster with good knowledge of  HTML to generate PDF documents.</li>
<li><a href="http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf" target="_blank">TCPDF </a>is another example of an advanced PHP PDF generation library but I haven&#8217;t tried it yet. Does seem to support some level of HTML parsing but not to the point of <strong>converting HTML tables to PDF </strong>(see above)</li>
<li><a href="http://framework.zend.com/manual/en/zend.pdf.html" target="_blank">ZendPDF </a>is a good bet as a component of Zend Framework but focuses on low level graphic functions and as such lacks essential features such as automatic word wrapping.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webmasterbulletin.net/2008/09/pdf-generation-with-php/299/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMS compare : Concrete5, Wordpress, Silverstripe</title>
		<link>http://www.webmasterbulletin.net/2008/09/cms-compare-concrete5-wordpress-silverstripe/236</link>
		<comments>http://www.webmasterbulletin.net/2008/09/cms-compare-concrete5-wordpress-silverstripe/236#comments</comments>
		<pubDate>Wed, 03 Sep 2008 20:40:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Technologies]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.webmasterbulletin.net/?p=236</guid>
		<description><![CDATA[This article makes a quick comparison of 3 popular PHP  Content management Systems :  Concrete5, Silverstripe and Wordpress. While Concrete5 and Silverstripe are two real content management frameworks, Wordpress is hugely popular as a blogging platform and each new version brings new feature that make it perfectly usable as a CMS, provided you install specific [...]]]></description>
			<content:encoded><![CDATA[<p>This article makes a quick <strong>comparison </strong>of 3 popular PHP <strong> Content management Systems</strong> :  Concrete5, Silverstripe and Wordpress. While Concrete5 and Silverstripe are two real content management frameworks, Wordpress is hugely popular as a blogging platform and each new version brings new feature that make it perfectly usable as a CMS, provided you install specific plugins such as PageMash.</p>
<p><span id="more-236"></span></p>
<p>Among these 3 popular content management solutions, each on has its own specific features. In a few words</p>
<ul>
<li> Wordpress is perfect for community based content websites</li>
<li>Silverstripe is perfect for basic page management in a multiple level hierarchy, with limited user rights and priviliege system</li>
<li>Concrete5 is ideal for large organisations with complex user groups and workflow schemas</li>
</ul>
<p>what they have in common : features we compare</p>
<ul>
<li> unlimited hierarchy structure with drag and drop reordering</li>
<li> a visual form editor</li>
<li>flexible data schema for tables and records</li>
<li> wysiwyg editing with advanced media management</li>
</ul>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span style="font-family: Arial,sans-serif;">comparison table</span></strong></p>
<table border="1" cellspacing="0" cellpadding="4" width="100%" bordercolor="#000000">
<col width="43"></col>
<col width="43"></col>
<col width="43"></col>
<col width="43"></col>
<col width="43"></col>
<col width="43"></col>
<tbody>
<tr valign="top">
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;"><strong>WORDPRESS 2,6</strong></span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;"><strong>CONCRETE5</strong></span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;"><strong>SILVERSTRIPE 2,2</strong></span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"><span style="font-family: Arial,sans-serif;">Page Management</span></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">inline editing</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">drag &amp; drop pages reordering<br />
</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">PageMash plugin</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">template</span></p>
<p><span style="font-family: Arial,sans-serif;">management</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">site wide + code based</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">page types + template / per page </span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">per page type (code based)</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">programmatic content type</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">***</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">******</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">*****</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">version control</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">version compare</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES (requires python)</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%" height="16"><span style="font-family: Arial,sans-serif;">File / media upload</span></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">unlimited file size (swfupload)</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"><span style="font-family: Arial,sans-serif;">wysiwyg form maker </span></td>
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES<br />
cforms2 plugin</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES<br />
form page type</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></p>
<p><span style="font-family: Arial,sans-serif;">userDefinedForm</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">validation</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">NO</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">CAPTCHA protection</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">NO</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">NO</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">form confirmation message</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">text editor</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">NO</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">wysiwyg editor (additional field 			in page)</span></td>
<td width="17%"></td>
</tr>
<tr valign="top">
<td width="17%"></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">entry list</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES<br />
flexigrid</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES<br />
basic HTML &#8211; no delete 			button</span></td>
<td width="17%"><span style="font-family: Arial,sans-serif;">YES<br />
basic html &#8211; no delete 			button</span></td>
<td width="17%"></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.webmasterbulletin.net/2008/09/cms-compare-concrete5-wordpress-silverstripe/236/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>jobberbase : Neat PHP jobbase application</title>
		<link>http://www.webmasterbulletin.net/2008/07/jobberbase-neat-php-jobbase-application/153</link>
		<comments>http://www.webmasterbulletin.net/2008/07/jobberbase-neat-php-jobbase-application/153#comments</comments>
		<pubDate>Wed, 30 Jul 2008 12:44:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.webmasterbulletin.net/?p=153</guid>
		<description><![CDATA[
did they use a code generator ? Romanian developped JobberBase is so nicely coded that we would like to put a name on the framework that intiated this nice lightweight jobboard application. It won&#8217;t bother with user registration or profile maintenance:  jobberbase is one of the simplest expression of job listing application, may be even [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone" src="http://www.jobberbase.com/img/slide1.jpg" alt="" width="423" height="203" /></p>
<p>did they use a code generator ? Romanian developped JobberBase is so nicely coded that we would like to put a name on the framework that intiated this nice lightweight jobboard application. It won&#8217;t bother with user registration or profile maintenance:  jobberbase is one of the simplest expression of job listing application, may be even too simple to be true. Great work has been put into the design of the frond and back using MVC paradigm, Jquery helpers and smarty templates. Good job. More @ <a href="http://www.jobberbase.com/">http://www.jobberbase.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmasterbulletin.net/2008/07/jobberbase-neat-php-jobbase-application/153/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Online Image editing : jquery&#8217;s way</title>
		<link>http://www.webmasterbulletin.net/2008/07/online-image-editing-jquerys-way/92</link>
		<comments>http://www.webmasterbulletin.net/2008/07/online-image-editing-jquerys-way/92#comments</comments>
		<pubDate>Fri, 25 Jul 2008 08:30:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Image editing]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.webmasterbulletin.net/?p=92</guid>
		<description><![CDATA[
My last  article on Silvesrtripe CMS online image editing feature led me to investigate alternative solution for websites and software developers that wish to implement this kind of component for their backoffice.. Surfing on CAKEPHP framework homepage turned out to illustrate perfectly the kind of component that should be standard on all CMS : [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-96" title="jqueryimgselectarea1" src="http://www.webmasterbulletin.net/wp-content/uploads/2008/07/jqueryimgselectarea1.jpg" alt="" width="500" height="272" /></p>
<p>My last  article on<a href="http://www.webmasterbulletin.net/2008/07/silvestripes-image-editing-feature/28" target="_blank"> Silvesrtripe CMS online image editing </a>feature led me to investigate alternative solution for websites and software developers that wish to implement this kind of component for their backoffice.. Surfing on CAKEPHP framework homepage turned out to illustrate perfectly the kind of component that should be standard on all CMS : resizing is now pretty common, and what we want now is cropping. There  is actually a plugin for jquery that does the interface job, <a href="http://odyniec.net/projects/imgareaselect/">ImgAreaSelect</a>. ImgAreaSelect come with loads of configuration options that make it a perfect tool for cropping images : the selection area is responsive, draggable, and can be adjusted to work only within specified limits or predefined  aspect ratio. What&#8217;s missing in Jquery is the server side of things, and you&#8217;ll find that either on <a href="http://www.webmotionuk.co.uk/php-jquery-image-upload-and-crop/" target="_blank">webmotionUK</a> for pure PHP or on <a href="http://bakery.cakephp.org/articles/view/jquery-image-upload-crop" target="_blank">CAKEPHP</a>&#8217;s site for Cake integration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webmasterbulletin.net/2008/07/online-image-editing-jquerys-way/92/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Create url for mod_rewrite</title>
		<link>http://www.webmasterbulletin.net/2008/07/create-url-for-mod_rewrite/129</link>
		<comments>http://www.webmasterbulletin.net/2008/07/create-url-for-mod_rewrite/129#comments</comments>
		<pubDate>Thu, 10 Jul 2008 14:43:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Search engine optimization]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.webmasterbulletin.net/?p=129</guid>
		<description><![CDATA[Creating urls with Search engine optimized keywords from database records involves more than just mod_rewrite and htaccess synchronization. The first step of a good search engine indexing strategy is to take one of your database fields as index (title is a good one) , transform it by removing spaces, special characters, and if necessary append [...]]]></description>
			<content:encoded><![CDATA[<p>Creating urls with Search engine optimized keywords from database records involves more than just mod_rewrite and htaccess synchronization. The first step of a good search engine indexing strategy is to take one of your database fields as index (title is a good one) , transform it by removing spaces, special characters, and if necessary append record unique identifier to the generated string. Here is a sample function that transforms a string to make it file compliant using a regular expression to discard non alphanumeric characters and replace spaces with dashes :</p>
<blockquote><p>function make_url($string){</p>
<p>$pattern = &#8220;([^[[:alnum:]|[:space:]|[:blank:]])+&#8221;;<br />
$anchor = ereg_replace($pattern, &#8221;, strtolower($string));<br />
$pattern = &#8220;([[:space:]]|[[:blank:]])+&#8221;;<br />
$anchor = ereg_replace($pattern, &#8216;-&#8217;, $anchor);<br />
return  short_name($anchor); // return the short filtered name<br />
} # end function</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.webmasterbulletin.net/2008/07/create-url-for-mod_rewrite/129/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
