<?xml version="1.0" ?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
	<channel>
		<title>Pronto Project</title>
		<link>http://www.prontoproject.com/blog/</link>
		<description>News, tips, and other awesome from the Pronto Project</description>
		<dc:date>2010-08-01T02:08:36Z</dc:date>
		<copyright>Judd Vinet</copyright>
		<generator>Pronto</generator>
		<dc:language>en</dc:language>
		<item>
			<title>Pronto moves to GitHub</title>
			<link>http://www.prontoproject.com/blog/post/9</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;Pronto has finally joined the &quot;social coding&quot; movement - the source code repository is now hosted at GitHub. &amp;nbsp;You can find it here:&lt;br /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.github.com/jvinet/pronto&quot;&gt;http://www.github.com/jvinet/pronto&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At present, packaged releases aren't very timely, so if you want the latest and greatest code, you'll want to follow git.&lt;/p&gt;</content:encoded>
			<dc:date>2010-03-27T12:03:00Z</dc:date>
		</item>
		<item>
			<title>New Release: Pronto 0.6</title>
			<link>http://www.prontoproject.com/blog/post/8</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;After more than a year of casual development, fixes, and refinement, Pronto 0.6 is here.&lt;/p&gt;
&lt;p&gt;The framework has matured nicely, and 0.6 brings you a new data model layer, a robust logging facility, and many bugfixes.&amp;nbsp; Here's a summarized list of notable changes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added logging facility with flexible routing controls&lt;/li&gt;
&lt;li&gt;Old model layer deprecated in favour of the new RecordModel/RecordSelector classes, which add more power and flexibility. See the manual for more info.&lt;/li&gt;
&lt;li&gt;Added &quot;fly-models&quot; - adhoc models for use when explicit model classes may be overkill&lt;/li&gt;
&lt;li&gt;Added support for multiple database connections&lt;/li&gt;
&lt;li&gt;Changes to SQL enumeration routine, accepts HAVING clauses now&lt;/li&gt;
&lt;li&gt;Changed parameters for &lt;span class=&quot;code&quot;&gt;tpForm::htmlarea()&lt;/span&gt; to make TinyMCE cusotmizations easier&lt;/li&gt;
&lt;li&gt;PostgreSQL driver should actually work now&amp;nbsp; ;)&lt;/li&gt;
&lt;li&gt;Moved user-related code into a module&lt;/li&gt;
&lt;li&gt;Better interaction between Pronto and Javascript through a ubiquitous &quot;pronto&quot; JS object&lt;/li&gt;
&lt;li&gt;Added UI routines via JS library, will be used by future plugins&lt;/li&gt;
&lt;li&gt;Added an error handler that will send debug data to site administrators when in production mode&lt;/li&gt;
&lt;li&gt;Fixes for brain-dead IE, again. (love you, IE)&lt;/li&gt;
&lt;li&gt;Changed argument order for &lt;span class=&quot;code&quot;&gt;tpHTML::composite_url()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Added backtrace() function for debugging/error handling&lt;/li&gt;
&lt;li&gt;Muchos bugfixes&lt;/li&gt;
&lt;li&gt;Better automatic file handling in default &lt;span class=&quot;code&quot;&gt;load_record()&lt;/span&gt;, &lt;span class=&quot;code&quot;&gt;tpFile::file()&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;tpFile::image()&lt;/span&gt; methods&lt;/li&gt;
&lt;li&gt;A few good Javascript improvements for AJAX and performance&lt;/li&gt;
&lt;li&gt;Changes for PHP 5.3  
&lt;ul&gt;
&lt;li&gt;Removed use of &lt;span class=&quot;code&quot;&gt;ereg()&lt;/span&gt; and friends (deprecated)&lt;/li&gt;
&lt;li&gt;Removed &lt;span class=&quot;code&quot;&gt;split()&lt;/span&gt;, &lt;span class=&quot;code&quot;&gt;mysql_escape_string&lt;/span&gt; (deprecated)&lt;/li&gt;
&lt;li&gt;Removed use of &lt;span class=&quot;code&quot;&gt;{}&lt;/span&gt; to access string offsets (deprecated)&lt;/li&gt;
&lt;li&gt;Removed use of &quot;&lt;span class=&quot;code&quot;&gt;=&amp;amp; new Classname()&lt;/span&gt;&quot; (deprecated)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-0.6.tar.gz&quot;&gt;Download Pronto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/docs/manual.html&quot;&gt;Read the Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/docs/api/index.html&quot;&gt;Read the API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/kbase.tar.gz&quot;&gt;Download the Knowledge Base (example app)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/blog.tar.gz&quot;&gt;Download the Blog (example app, using modules)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded>
			<dc:date>2010-01-13T05:01:00Z</dc:date>
		</item>
		<item>
			<title>New Release: Pronto 0.5</title>
			<link>http://www.prontoproject.com/blog/post/7</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;Today is a red letter day.&amp;nbsp; Pronto has finally matured enough that it can be crowned with a real version number.&amp;nbsp; We've also released an additional example application, which is a simple blog.&amp;nbsp; Every framework seems to focus on blogs as examples, so we didn't want to be left out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notable Changes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Altered URL routing to allow named subpatterns, which are then merged into a final (internal) request variable array along with GET/POST.&lt;/li&gt;
&lt;li&gt;Added SQLite 2/3 drivers (&lt;strong&gt;untested&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;Put MySQL into ANSI mode so we can escape reserved words using double-quotes instead of backticks. Backticks will still work as well.&lt;/li&gt;
&lt;li&gt;Modified internal use of registry to prefix internal objects with &lt;span class=&quot;code&quot;&gt;pronto:&lt;/span&gt; for namespace control.&lt;/li&gt;
&lt;li&gt;Added argument to &lt;span class=&quot;code&quot;&gt;Validator::validate()&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;Validator::required()&lt;/span&gt; that overrides the default request argument set.&lt;/li&gt;
&lt;li&gt;Fixed &lt;span class=&quot;code&quot;&gt;google_translate.php&lt;/span&gt; and added &lt;span class=&quot;code&quot;&gt;translate_all.ph&lt;/span&gt;p to translate English to other languages supported by Google Translate.&lt;/li&gt;
&lt;li&gt;Added a change-language box to the default Pronto layout&lt;/li&gt;
&lt;li&gt;Added a PDO database driver&lt;/li&gt;
&lt;li&gt;Started using multibyte string functions where appropriate&lt;/li&gt;
&lt;li&gt;Added &lt;span class=&quot;code&quot;&gt;ppImage::auto_rotate()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Changed session behaviour to initialize/use only if its required.&amp;nbsp; This makes Pronto easier to use behind an http reverse proxy such as &lt;a href=&quot;http://varnish.projects.linpro.no/&quot;&gt;Varnish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Altered path settings to Pronto and application code can live anywhere, even outside the web root.&amp;nbsp; To move them, alter &lt;span class=&quot;code&quot;&gt;DIR_FS_PRONTO&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;DIR_FS_APP&lt;/span&gt; in &lt;span class=&quot;code&quot;&gt;config.php&lt;/span&gt;, then alter the &lt;span class=&quot;code&quot;&gt;require()&lt;/span&gt; line in &lt;span class=&quot;code&quot;&gt;index.php&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Added &lt;span class=&quot;code&quot;&gt;tpAJAX::autocomplete()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Modules can now use their own &lt;span class=&quot;code&quot;&gt;config/navigation.php&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Chnaged &lt;span class=&quot;code&quot;&gt;tpAJAX::popup_div()&lt;/span&gt; to &lt;span class=&quot;code&quot;&gt;tpAJAX::popup_bind()&lt;/span&gt;, now takes real jQuery selectors as targets&lt;/li&gt;
&lt;li&gt;Upgraded TinyMCE to 3.2.0.2, swapped out ajaxfilemanager for tinybrowser&lt;/li&gt;
&lt;li&gt;Revamped navigation menus to support multi-depth sub menus&lt;/li&gt;
&lt;li&gt;Changed &lt;span class=&quot;code&quot;&gt;tpAJAX::dialog()&lt;/span&gt; to be simpler and more versatile&lt;/li&gt;
&lt;li&gt;Merged functionality of dialogs and popups so they both use &lt;span class=&quot;code&quot;&gt;tpAJAX::buttons()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Many deprecated methods removed:   
&lt;ul&gt;
&lt;li&gt;Removed PHPMailer (deprecated by SwiftMailer) and FCKEditor (deprecated by TinyMCE)&lt;/li&gt;
&lt;li&gt;Removed old backwards-compatible DB methods&lt;/li&gt;
&lt;li&gt;Removed &lt;span class=&quot;code&quot;&gt;Page::validate()&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;Page::required()&lt;/span&gt; shortcut methods&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Plugins must be referenced through &lt;span class=&quot;code&quot;&gt;$this-&amp;gt;plugins&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Removed &lt;span class=&quot;code&quot;&gt;Web::url()&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;Web::full_url()&lt;/span&gt; shortcut methods&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;code&quot;&gt;tpTable::build_grid()&lt;/span&gt; no longer uses &lt;span class=&quot;code&quot;&gt;cb_fn&lt;/span&gt; or &lt;span class=&quot;code&quot;&gt;valuefn&lt;/span&gt; parameters&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;Links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-0.5.tar.gz&quot;&gt;Download Pronto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/docs/manual.html&quot;&gt;Read the Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/docs/api/index.html&quot;&gt;Read the API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/kbase.tar.gz&quot;&gt;Download the Knowledge Base (example app)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.prontoproject.com/files/blog.tar.gz&quot;&gt;Download the Blog (example app, using modules)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<dc:date>2008-10-22T07:10:00Z</dc:date>
		</item>
		<item>
			<title>New SVN Snapshot: 20080909</title>
			<link>http://www.prontoproject.com/blog/post/6</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;Bugfixes, new toys, and all-round happyosity. Pronto for the win.&lt;br /&gt;&lt;br /&gt;If you're upgrading an existing app, take special note of the bold item below. You may be required to alter your templates to use the new &lt;span class=&quot;code&quot;&gt;url()&lt;/span&gt; function within grids and &lt;span class=&quot;code&quot;&gt;$html-&amp;gt;link()&lt;/span&gt; calls.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;See the relevant manual section for details. &lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;code&quot;&gt;Template::set()&lt;/span&gt; now accepts arrays of varibles to set&lt;/li&gt;
&lt;li&gt;cosmetic improvements in CRUD generator&lt;/li&gt;
&lt;li&gt;added ability to specify subform column widths in build_form&lt;/li&gt;
&lt;li&gt;bugfixes for CRUD hooks, some getting called twice&lt;/li&gt;
&lt;li&gt;added ability to pass a 2-d array to tpForm::select() and have it use &amp;lt;optgroup&amp;gt; tags&lt;/li&gt;
&lt;li&gt;added &lt;span class=&quot;code&quot;&gt;tpForm::dom_id()&lt;/span&gt; though we're not enforcing it yet&lt;br /&gt;added &lt;span class=&quot;code&quot;&gt;tpAJAX::autocomplete_multisel()&lt;/span&gt; and the requisite CSS/JS support files&lt;/li&gt;
&lt;li&gt;added thickbox (no support functions yet)&lt;/li&gt;
&lt;li&gt;added a module generator alongside the CRUD generator&lt;/li&gt;
&lt;li&gt;store URL routes in Registry so we don't access it via globals&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Changed the URL generation, it's now usually required that all urls get passed through &lt;span class=&quot;code&quot;&gt;url()&lt;/span&gt; or &lt;span class=&quot;code&quot;&gt;absolute_url()&lt;/span&gt; first, even when going through &lt;span class=&quot;code&quot;&gt;tpHTML::link&lt;/span&gt; or &lt;span class=&quot;code&quot;&gt;tpHTML::link_button()&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;added &lt;span class=&quot;code&quot;&gt;Page::set_ajax()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;fixed http status code setting via &lt;span class=&quot;code&quot;&gt;Web::status()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;changed on-demand (ajax) loading of JS files. Now all 'load' files must complete before all 'run' snippets are executed.&lt;br /&gt;added backtrace info to error output&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-20080909.tar.gz&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<dc:date>2008-09-09T13:09:00Z</dc:date>
		</item>
		<item>
			<title>New SVN Snapshot: 20080606</title>
			<link>http://www.prontoproject.com/blog/post/5</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;Summer's here. What better way to spend it, than indoors learning a new web framework?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Moved SQL generation routines out of Page and into a separate SQL_Generator class&lt;/li&gt;
&lt;li&gt;Added a CSS reset so browsers can all agree on default styling&lt;/li&gt;
&lt;li&gt;Added &lt;span class=&quot;code&quot;&gt;hide_misc_errors&lt;/span&gt; to &lt;span class=&quot;code&quot;&gt;tpForm::build_form()&lt;/span&gt; for tabbed/multi forms&lt;/li&gt;
&lt;li&gt;Improved tpForm::propagate()&lt;/li&gt;
&lt;li&gt;ppMailer plugin now uses SwiftMailer instead of PHPMailer&lt;/li&gt;
&lt;li&gt;Added ppPDF plugin to convert HTML to PDF using DOMPDF or Prince&lt;/li&gt;
&lt;li&gt;Better variable substitution in action URLs in grids and forms&lt;/li&gt;
&lt;li&gt;Upgraded jQuery to 1.2.6&lt;/li&gt;
&lt;li&gt;Added a file-based cache driver&lt;/li&gt;
&lt;li&gt;Renamed Page_Server class to Page_Static&lt;/li&gt;
&lt;li&gt;Removed support for the deprecated &lt;span class=&quot;code&quot;&gt;Model::list_data()&lt;/span&gt; method (use &lt;span class=&quot;code&quot;&gt;list_params()&lt;/span&gt; instead)&lt;/li&gt;
&lt;li&gt;Boring old bugfixes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-20080606.tar.gz&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<dc:date>2008-06-06T13:06:00Z</dc:date>
		</item>
		<item>
			<title>New SVN Snapshot: 20080428</title>
			<link>http://www.prontoproject.com/blog/post/4</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;New release time!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;br /&gt;Change in nomenclature: &quot;template plugins&quot; are now also known as &quot;helpers&quot;, and &quot;page plugins&quot; are now also known as simply &quot;plugins&quot;&lt;/li&gt;
&lt;li&gt;Added a datetime widget to the Form helper&lt;/li&gt;
&lt;li&gt;Moved template logic into a separate class so it can be accessed outside of page controllers (eg, a commandline client can now use it to render email content)&lt;/li&gt;
&lt;li&gt;CSS fixes for IE6 and IE7 (oh how I hate thee)&lt;/li&gt;
&lt;li&gt;Changed Mailer plugin to use SwiftMailer instead of PHPMailer. PHPMailer is still available via ppPHPMailer for the time being.&lt;/li&gt;
&lt;li&gt;Upgraded TinyMCE to 3.0.7&lt;/li&gt;
&lt;li&gt;Changes to display callback functions in tpGrid::build_grid()&lt;/li&gt;
&lt;li&gt;More bugfixes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-20080428.tar.gz&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<dc:date>2008-04-28T13:04:00Z</dc:date>
		</item>
		<item>
			<title>New SVN Snapshot: 20080403</title>
			<link>http://www.prontoproject.com/blog/post/3</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;A few incremental improvements done over the weekend.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Moved input validation routines into a separate facility class&lt;/li&gt;
&lt;li&gt;Made page plugins accessible through the registry, so other layers can now use them (eg, data models)&lt;/li&gt;
&lt;li&gt;Added rotation functionality to Image plugin&lt;/li&gt;
&lt;li&gt;Bugfixes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.prontoproject.com/files/pronto-20080403.tar.gz&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<dc:date>2008-04-04T13:04:00Z</dc:date>
		</item>
		<item>
			<title>Forums Available</title>
			<link>http://www.prontoproject.com/blog/post/2</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;As a stopgap solution for community collaboration (we have bigger plans in the works), we've launched a forum. Please help us fill those empty forums - the echoes are unnerving.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://forum.prontoproject.com&quot;&gt;http://forum.prontoproject.com&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<dc:date>2008-03-28T13:03:00Z</dc:date>
		</item>
		<item>
			<title>Site Launched!</title>
			<link>http://www.prontoproject.com/blog/post/1</link>
			<content:encoded xmlns="http://www.w3.org/1999/xhtml">&lt;p&gt;Although Pronto has been in development for over a year, we've only now decided to announce its presence to the world. Behold, world!&amp;nbsp;&lt;br /&gt;&lt;br /&gt;This site is still just a zygote of what it will become, so please be patient. For now, it serves only to introduce you to Pronto and to provide documentation and tarballs.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Stay tuned, as more is certainly on the way.&lt;/p&gt;</content:encoded>
			<dc:date>2008-03-25T13:03:00Z</dc:date>
		</item>
	</channel>
</rss>
