<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-137955475057920285</id><updated>2011-11-27T17:16:47.404-06:00</updated><title type='text'>Dermis - Templating Framework for Classic ASP</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-683442576237863967</id><published>2010-04-19T08:59:00.004-05:00</published><updated>2010-04-19T11:43:02.255-05:00</updated><title type='text'>New Forums</title><content type='html'>I've had some very positive feedback and questions, which is great, but this blog isn't built for feedback.  So, as of today, the official Dermis forum is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.williammeitzen.com/"&gt;http://forums.williammeitzen.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is my personal website, so please don't do anything you shouldn't.&lt;br /&gt;&lt;br /&gt;Also, I'll be transitioning away from using this blog to the forum.&lt;br /&gt;&lt;br /&gt;Some of you have expressed gratitude ("Thanks for your AWESOME templating engine!" and such), which I am humbled by.  You can post such kindness on the forum now. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-683442576237863967?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/683442576237863967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-forums.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/683442576237863967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/683442576237863967'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-forums.html' title='New Forums'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-3683221389772321765</id><published>2010-04-15T10:17:00.004-05:00</published><updated>2010-04-15T12:37:06.764-05:00</updated><title type='text'>New Example</title><content type='html'>At the request of an anonymous post, I created an example for a very simple forum reader.&lt;br /&gt;&lt;br /&gt;You can find it in Dermis' documentation, under Simple Examples / Simple Forum Reader.&lt;br /&gt;&lt;br /&gt;It shows the entire list of categories, with the first three articles under each category.&lt;br /&gt;&lt;br /&gt;Its layout leaves a lot to be desired, but the essentials are there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-3683221389772321765?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/3683221389772321765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-example.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3683221389772321765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3683221389772321765'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-example.html' title='New Example'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-4361315202062020084</id><published>2010-04-14T13:47:00.002-05:00</published><updated>2010-04-14T13:56:07.398-05:00</updated><title type='text'>Updated</title><content type='html'>Perhaps I spoke too soon.&lt;br /&gt;&lt;br /&gt;I added a (sub) assign command and a (function) get_template_vars command to the required_include.asp file, effectively making it visible to the template that is running.&lt;br /&gt;&lt;br /&gt;This new functionality will be useful to those making large templates.  It will be nice to make template files do some work for themselves, rather than the calling script.&lt;br /&gt;&lt;br /&gt;What's funny is I came up with a solution while writing the previous post. It's odd that you can come up with a solution while trying to define exactly what the problem is.&lt;br /&gt;&lt;br /&gt;I didn't document it extremely well, mainly because the Dermis methods are named the same as the sub and function, which may make it confusing at first.  I might change that.&lt;br /&gt;&lt;br /&gt;See the "email customer's receipt" code for an example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-4361315202062020084?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/4361315202062020084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/04/updated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4361315202062020084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4361315202062020084'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/04/updated.html' title='Updated'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-3215523961503852699</id><published>2010-04-14T08:40:00.006-05:00</published><updated>2010-04-14T13:57:37.195-05:00</updated><title type='text'>New Features</title><content type='html'>For the last few days, I've been working on a way to include an ASP script into a template. The idea is for the template to be able to retrieve the information it needs instead of relying on the calling script.&lt;br /&gt;&lt;br /&gt;Let's take the invoice example from the Dermis documentation. Right now, the calling script must give the template the business' name, address, email address, and phone, as well as the invoice detail.  It makes more sense for the calling script to only give the template the invoice detail, and for the template to retrieve the business' name, address, email address, and phone for itself (at least to me).&lt;br /&gt;&lt;br /&gt;So far, I've created a command which takes advantage of the fact that templates are compiled before they run.  "$dermis.infix.application_directory" will be utterly replaced by the directory part of request.servervariables("url"). This will ensure that the script will run in the directory the calling script is in:&lt;br /&gt;&lt;br /&gt;{* start of template code *}&lt;br /&gt;&amp;lt;!--#include virtual="$dermis.infix.application_directory/retrieve_business_info.asp" --&amp;gt;&lt;br /&gt;{* end of template code *}&lt;br /&gt;&lt;br /&gt;I saw no similar command in Smarty, so I created one.  "infix" (verb form) seems to be a good command to create. If you have a better term, feel free to email me!&lt;br /&gt;&lt;br /&gt;The hard part is figuring out how to let the included script (retrieve_business_info.asp) retrieve and change the template variables.  I'm still working on that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-3215523961503852699?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/3215523961503852699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3215523961503852699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3215523961503852699'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/04/new-features.html' title='New Features'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-3953226933214532345</id><published>2010-03-18T16:56:00.006-05:00</published><updated>2010-03-18T17:15:27.923-05:00</updated><title type='text'>Updated Email Customer's Receipt example</title><content type='html'>I updated the "Email Customer's Receipt" example considerably.  It retrieves business, receipt header, and receipt detail information from a SQL Server database.&lt;br /&gt;&lt;br /&gt;I made most of the changes to the ASP code, and added T-SQL code to create tables and insert data into the example db_dermistest database.  I included some code which should prevent SQL injection, as well.&lt;br /&gt;&lt;br /&gt;If you're interested in a fairly complete example of using Dermis to email an invoice with information pulled from SQL Server, there you go.  I hope it proves useful to you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-3953226933214532345?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/3953226933214532345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/03/updated-email-customers-receipt-example.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3953226933214532345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3953226933214532345'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/03/updated-email-customers-receipt-example.html' title='Updated Email Customer&apos;s Receipt example'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-1594958660138127486</id><published>2010-03-04T13:02:00.011-06:00</published><updated>2010-03-06T13:37:14.463-06:00</updated><title type='text'>Updated Docs Again</title><content type='html'>I corrected the Fetch method bug, and re-ran all of the simple, advanced, and email examples to make sure they work.&lt;br /&gt;&lt;br /&gt;Also, I added documentation on how to create a test database, database user, and database login.  I used SQL Server 2005 Express.  You can use your own database and authentication, of course, but if you're creating a development server or VM, having the steps right there should shorten the time it takes to get right to developing.  I included a lot of screenshots, too.&lt;br /&gt;&lt;br /&gt;I also re-structured the documentation directories.&lt;br /&gt;&lt;br /&gt;Perhaps I should add some more screenshots on Sourceforge ... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-1594958660138127486?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/1594958660138127486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/03/updated-docs-again.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1594958660138127486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1594958660138127486'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/03/updated-docs-again.html' title='Updated Docs Again'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-1464028065618821761</id><published>2010-02-26T07:22:00.002-06:00</published><updated>2010-02-26T09:59:12.082-06:00</updated><title type='text'>Bug with Fetch Method</title><content type='html'>I realized last night that I hard-coded the Fetch method to use localhost instead of the current webserver's name.&lt;br /&gt;&lt;br /&gt;I am working to correct this now.&lt;br /&gt;&lt;br /&gt;I will also re-run the simple, advanced, and email examples to make sure they work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-1464028065618821761?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/1464028065618821761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/bug-with-fetch-method.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1464028065618821761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1464028065618821761'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/bug-with-fetch-method.html' title='Bug with Fetch Method'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-7088247204385972103</id><published>2010-02-23T11:55:00.005-06:00</published><updated>2010-02-23T17:55:37.769-06:00</updated><title type='text'>Version 1.1 Released</title><content type='html'>I've added the fetch method, and substr, number_format, ceiling, floor and round template variable modifiers.&lt;br /&gt;&lt;br /&gt;(Actually, I already had a few of those modifiers in the code, but they weren't documented until now.)&lt;br /&gt;&lt;br /&gt;I'm finished documenting, too.  I added a couple of email examples, and improved the layout of the documentation for template variable modifiers.&lt;br /&gt;&lt;br /&gt;I also fixed a bug with the floor and round functions.&lt;br /&gt;&lt;br /&gt;Note: there is a bug with VBScript implementation of the round function.  I think my function returns the correct mathematical value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-7088247204385972103?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/7088247204385972103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/version-11-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/7088247204385972103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/7088247204385972103'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/version-11-released.html' title='Version 1.1 Released'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-3628547835273394591</id><published>2010-02-20T21:12:00.005-06:00</published><updated>2010-02-20T21:30:28.504-06:00</updated><title type='text'>Almost finished documenting</title><content type='html'>Adding the fetch method required me to create several examples.  One of them is a customer receipt.  It shows the customer address, lists items purchased, and calculates the total.  It took a bit longer than I thought because I had to add some variable modifiers that PHP already has:&lt;br /&gt;&lt;br /&gt;substr (3 functions)&lt;br /&gt;number_format (3 functions)&lt;br /&gt;&lt;br /&gt;Dermis can perform some calculations, but it's more particular about the formatting than I'd like: all of the variables and operators must be together; spaces are not tolerated:&lt;br /&gt;{ assign var="fltSubtotal" value=$fltSubtotal+$rcdItem.price*$rcdItem.quantity }&lt;br /&gt;&lt;br /&gt;If Smarty is this strict about formatting, I'll leave it there.&lt;br /&gt;&lt;br /&gt;So, again, now that I'm finished with the customer receipt example, I'll resume documenting again! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-3628547835273394591?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/3628547835273394591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/almost-finished-documenting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3628547835273394591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3628547835273394591'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/almost-finished-documenting.html' title='Almost finished documenting'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-9156171931011097927</id><published>2010-02-18T11:08:00.006-06:00</published><updated>2010-02-18T11:19:36.281-06:00</updated><title type='text'>{assign} bug fixed</title><content type='html'>One useful purpose of the fetch method is to send an email based on a template.  While documenting an example of this, I discovered that the {assign} tag couldn't handle variables in the value element:&lt;br /&gt;&lt;br /&gt;{assign var="to" value="$to_firstname $to_lastname &lt;$to_email&gt;"}&lt;br /&gt;&lt;br /&gt;I suppose you could call it a "new feature," but Smarty could do this already, so I'll just call this a bug fix.&lt;br /&gt;&lt;br /&gt;If you'd like to ensure you get all emails, use the default modifier:&lt;br /&gt;&lt;br /&gt;{assign var="to" value="$to_firstname $to_lastname &lt;$to_email|default:'your.email@organization.com'&gt;"}&lt;br /&gt;&lt;br /&gt;Anyway, I'll now continue documenting how to use Dermis to send an email based on a template file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-9156171931011097927?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/9156171931011097927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/assign-bug-fixed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/9156171931011097927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/9156171931011097927'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/assign-bug-fixed.html' title='{assign} bug fixed'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-3193293116205389035</id><published>2010-02-16T12:18:00.006-06:00</published><updated>2010-02-16T12:36:23.431-06:00</updated><title type='text'>Fetch is Fetching Now!</title><content type='html'>The fetch method is working now!  I'm very excited!&lt;br /&gt;&lt;br /&gt;Background: Fetch retrieves the HTML output of a template.  It's like pouring the output into a variable.&lt;br /&gt;&lt;br /&gt;This code:&lt;br /&gt;strContent=objT.fetch("simpletest.tpl")&lt;br /&gt;response.write strContent&lt;br /&gt;&lt;br /&gt;... is equivalent to this code:&lt;br /&gt;objT.display("simpletest.tpl")&lt;br /&gt;&lt;br /&gt;It took quite a bit of thinking, but not really much code, to get it to work.  I couldn't find ANYONE who figured out how to pass session variables to a different SessionID on the same localhost.  But I did!&lt;br /&gt;&lt;br /&gt;This makes it possible to construct an email message based on a template file.  I uploaded the new .ZIP file, but I still need to update the documentation.  Updating the documentation will take a bit more time, only because I want to replace the "Send Template Email Sub" extra with equivalent code and template.  I hope to finish in a day or two.  Whoo-hoo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-3193293116205389035?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/3193293116205389035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/fetch-is-fetching-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3193293116205389035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/3193293116205389035'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/fetch-is-fetching-now.html' title='Fetch is Fetching Now!'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-1444684436486437082</id><published>2010-02-11T11:47:00.002-06:00</published><updated>2010-02-11T11:55:42.505-06:00</updated><title type='text'>Fetch</title><content type='html'>I've been coding for a few hours trying to add the fetch method, unsuccessfully.  The roadblock I'm hitting is that I can't seem to figure out how to pass session variables from one script to another.&lt;br /&gt;&lt;br /&gt;The fetch method is there, but it doesn't work.  If you're brave, kindly try to get it working.  If you do, I'll seriously consider partnering with you as a co-developer!&lt;br /&gt;&lt;br /&gt;I've googled around, but I haven't seen someone pass cookies into a calling script.  However, if it's possible at all, I figure I'm pretty close!&lt;br /&gt;&lt;br /&gt;I'm wore out. No more today.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-1444684436486437082?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/1444684436486437082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/fetch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1444684436486437082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1444684436486437082'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/fetch.html' title='Fetch'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-4086822121065569319</id><published>2010-02-10T12:56:00.008-06:00</published><updated>2010-02-11T11:57:37.888-06:00</updated><title type='text'>Bug Fixed &amp; Fetch</title><content type='html'>Someone (an anonymous user) pointed out a bug with the {foreach} tag: the ".last" property was being set one iteration premature.  It was an easy fix; I corrected it the same day (Feb. 1).&lt;br /&gt;&lt;br /&gt;Whoever pointed it out, thank you!&lt;br /&gt;&lt;br /&gt;I've postponed working on {config_load} for foreseeable future.  Coding for it is pretty tough, and frankly, I see it rarely used in Smarty templates.&lt;br /&gt;&lt;br /&gt;However, I'm pretty excited working on a fetch method.  Basically, it will return the result of a template back to the caller.  This is what the Smarty fetch command does.&lt;br /&gt;&lt;br /&gt;strContent=objT.fetch("dates.tpl")&lt;br /&gt;&lt;br /&gt;This would compile the template, execute it "invisibly," and return the output.  &lt;br /&gt;&lt;br /&gt;My initial tests shows that it won't work if your webserver is running on XP.  It returns, "The requested resource is in use."  This problem doesn't exist on Windows Server 2003.&lt;br /&gt;&lt;br /&gt;Post your URL as a comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-4086822121065569319?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/4086822121065569319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2010/02/bug-fixed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4086822121065569319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4086822121065569319'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2010/02/bug-fixed.html' title='Bug Fixed &amp; Fetch'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-4062897401451911986</id><published>2009-12-09T13:37:00.002-06:00</published><updated>2009-12-09T16:24:43.276-06:00</updated><title type='text'>{config_load} progress</title><content type='html'>Writing code for {config_load} is turning out to be harder than I thought.  Parsing and caching a {config_load} file is somewhat easy, but coming up with a calling scheme is not.&lt;br /&gt;&lt;br /&gt;Basically, I want the compiled file to call a function which sets the config session variables: session("t_tpl_config")("variable_name")="value"&lt;br /&gt;&lt;br /&gt;Coming up with a way to create that function, the function name, and the filename is difficult.  The generated filename must be unique, and the generated function name must be unique.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-4062897401451911986?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/4062897401451911986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/12/configload-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4062897401451911986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4062897401451911986'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/12/configload-progress.html' title='{config_load} progress'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-2506396850423064272</id><published>2009-11-24T15:08:00.007-06:00</published><updated>2009-11-24T16:16:53.206-06:00</updated><title type='text'>Next: {config_load}</title><content type='html'>I'd like to implement {config_load} next.&lt;br /&gt;&lt;br /&gt;{config_load file="filename.ext" section="section_name"}&lt;br /&gt;&lt;br /&gt;{config_load} loads variables for use in the template.  You will be able to access these values with hash marks: {#variablename#}.  "section" is optional.  You'll be able to load only the portion of the config file that you need.&lt;br /&gt;&lt;br /&gt;Here is Smarty's explanation for {config_load}:&lt;br /&gt;&lt;a href="http://www.smarty.net/manual/en/language.function.config.load.php"&gt;http://www.smarty.net/manual/en/language.function.config.load.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think I'll only be able to implement the "file" and "section" parameters.  I don't think I'll be able to implement the "scope" parameter, because I'm not sure how much control I'll have in controlling the scope of variables.&lt;br /&gt;&lt;br /&gt;After finishing {config_load}, I think I'll bump up the version number from 1.0 to 1.1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-2506396850423064272?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/2506396850423064272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/next-configload.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/2506396850423064272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/2506396850423064272'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/next-configload.html' title='Next: {config_load}'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-1548734684670719035</id><published>2009-11-24T11:55:00.003-06:00</published><updated>2009-11-24T11:58:11.729-06:00</updated><title type='text'>Added truncate modifier</title><content type='html'>I just finished adding the truncate variable modifier.  It cuts off a string at either 80 characters, or some number of characters you indicate.  Smarty has more options, and I'd like to add them later, but this is good enough for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-1548734684670719035?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/1548734684670719035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/added-truncate-modifier.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1548734684670719035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/1548734684670719035'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/added-truncate-modifier.html' title='Added truncate modifier'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-185487468305276095</id><published>2009-11-24T09:49:00.005-06:00</published><updated>2009-11-24T11:35:29.644-06:00</updated><title type='text'>Working on truncate</title><content type='html'>I'm working on the truncate modifier.&lt;br /&gt;&lt;br /&gt;{ $strVariable|truncate }&lt;br /&gt;{ $strVariable|truncate:intLength }&lt;br /&gt;&lt;br /&gt;Truncate will end a string variable's output to a character length.  If no length is given, the default intLength value is 80.  It will try to cut off at a word boundary before the intLength value.  Smarty's truncate has some additional optional parameters, but I don't think I'll be able to implement it fully very soon.  So, I'll just implement the length parameter, for now.&lt;br /&gt;&lt;br /&gt;Also, I'm going back and forth regarding implementing dynamic includes in Dermis.  The difficulty is that Dermis would have to determine if the .tpl.file needs to be compiled at every occurrence of an {include} tag.  If it is, this means that the Dermis compiler would need to be invoked.  Therefore, the Dermis code would need to be #included once the script begins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-185487468305276095?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/185487468305276095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/working-on-truncate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/185487468305276095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/185487468305276095'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/working-on-truncate.html' title='Working on truncate'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-6730640556529210786</id><published>2009-11-20T08:10:00.006-06:00</published><updated>2009-11-20T08:41:30.350-06:00</updated><title type='text'>Dynamic includes might be possible</title><content type='html'>Despite what nearly everyone says, dynamic includes may be possible in ASP.  You just have to go through some effort to do so.&lt;br /&gt;&lt;br /&gt;Dermis passes variables from ASP to the compiled Dermis file using session variables.  It then shells to the compiled file using the server.execute("filename.asp") command.  When you use the server.execute command, the called script cannot see variables (or code) from the parent (i.e., calling) script. However, session variables are outside of the variable space. So, Dermis can copy ASP variables into session variables, server.execute the script, return to the parent script, and delete the session variables.&lt;br /&gt;&lt;br /&gt;(Incidentally, once the server.execute command finishes, the parent script can see its own variables again.  Because of this, you can call sequential objT.display("filename.tpl") commands.  But I digress...)&lt;br /&gt;&lt;br /&gt;Right now, {include} compiles to &amp;lt;!--#include--!&amp;gt;.  However, after a bit of searching, I found a site that has given me an idea.  Using server.execute instead of #include may be a better solution, because you can have:&lt;br /&gt;&lt;br /&gt;server.execute(strFilename)&lt;br /&gt;server.execute(strDirectory &amp; "/filename.tpl.asp")&lt;br /&gt;server.execute(strDirectory &amp; "/" &amp; strLanguage &amp; "/filename.tpl.asp")&lt;br /&gt;&lt;br /&gt;...and such.  However, the hard part will be how to compile an {include} file with variable components, because you don't know what the final filename will be until you run the code.  (I think this is called "just in time" compiling.)  Because we've shelled into a running script, and we can't see parent variables or code, I think the only solution is to somehow write the resolved filename to a session variable, exit the script, create the included file using the session variable, re-start the script, and go from there.&lt;br /&gt;&lt;br /&gt;I have to think about this some more, but something in me tells me there's a way to do this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-6730640556529210786?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/6730640556529210786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dynamic-includes-might-be-possible.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/6730640556529210786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/6730640556529210786'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dynamic-includes-might-be-possible.html' title='Dynamic includes might be possible'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-117962539302892730</id><published>2009-11-19T17:28:00.004-06:00</published><updated>2009-11-19T17:35:03.890-06:00</updated><title type='text'>Added {strip} tag</title><content type='html'>I added the {strip} tag!  Just like Smarty, it removes leading and trailing whitespace around newlines (vbcrlf) in the compiled code, as well as the newlines themselves.   The {/strip} tag is optional.&lt;br /&gt;&lt;br /&gt;I've only tested it with one {strip} in a file.  I'll test it with several soon, in the next few days.&lt;br /&gt;&lt;br /&gt;I also added breadcrumbs to the documentation.  No big deal, but it makes it look a bit nicer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-117962539302892730?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/117962539302892730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/added-strip-tag.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/117962539302892730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/117962539302892730'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/added-strip-tag.html' title='Added {strip} tag'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-9200134649128224593</id><published>2009-11-19T14:17:00.004-06:00</published><updated>2009-11-19T14:29:49.321-06:00</updated><title type='text'>Dermis 1.0</title><content type='html'>Dermis 1.0 is out!  I'm very excited!&lt;br /&gt;&lt;br /&gt;Documentation finally looks decent!&lt;br /&gt;&lt;br /&gt;After thinking about it for a while, I decided to call it 1.0 after the documentation was acceptable.&lt;br /&gt;&lt;br /&gt;For the documentation, I modified a free layout I found called "Artificial Castling" (wrongly called Artificial Casting).  Of course, I linked back to where I got it from in the footer, as the author requested.&lt;br /&gt;&lt;br /&gt;It took me a few hours to write the code to distribute the single large documentation file into multiple files.  It took me about as long to get the stylesheet code tamed.&lt;br /&gt;&lt;br /&gt;I also think I may have a better workaround for using Dermis on IIS+XP: if the .tpl file is modified, just delete the old .tpl.asp immediately before writing the updated .tpl.asp file.  It will only do this on XP (actually, non-"windows nt"), because Server 2003 doesn't have this problem, and I want to minimize the permissions needed for the system.&lt;br /&gt;&lt;br /&gt;As you use it, let me know where you're from, and how you're using it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-9200134649128224593?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/9200134649128224593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dermis-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/9200134649128224593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/9200134649128224593'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dermis-10.html' title='Dermis 1.0'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-843691596489151131</id><published>2009-11-14T16:09:00.003-06:00</published><updated>2009-11-14T16:15:32.171-06:00</updated><title type='text'>Caching &amp; Date</title><content type='html'>Okay, that IIS+XP caching bug REALLY was getting on my nerves!  Even better, I think I have it solved.  Clearing an IIS checkbox called "Cache ISAPI applications" did the trick.  I've documented it, too.  Hooray!&lt;br /&gt;&lt;br /&gt;I also think I solved some date issues, too.  They have to do with using VBScript's date type.  I'm hoping it will translate into preserving database (MS Access &amp; SQL Server) timestamps, too.  More on that later.&lt;br /&gt;&lt;br /&gt;Oh, yeah.  I forgot to change the internal version number from 0.5 to 0.6.  It didn't cause a bug.  It was just a silly oversight on my part.&lt;br /&gt;&lt;br /&gt;I'll upload the .zip file in about 10 minutes, assuming I don't see anything else.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-843691596489151131?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/843691596489151131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/caching-date.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/843691596489151131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/843691596489151131'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/caching-date.html' title='Caching &amp; Date'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-990803700385736484</id><published>2009-11-13T23:15:00.005-06:00</published><updated>2009-11-13T23:34:21.763-06:00</updated><title type='text'>Documentation &amp; Bug</title><content type='html'>I've added code to the documentation which uses the append method.  I've also added some HTML output to show results of running code, and left the ASP &amp; TPL files.&lt;br /&gt;&lt;br /&gt;The documentation is still one very long file.  It's cumbersome to learn from and sloppy, I'm sure, but it's easier and faster for me to write it while it's just one file.&lt;br /&gt;&lt;br /&gt;I also discovered an annoying bug that I'm not sure I can correct.  When you update a .TPL file, the browser output doesn't change!  The compiled .tpl.asp is being updated, and using different data from the calling .asp script outputs different results, so I think IIS may be running the .asp script from somewhere other than c:\inetpub\wwwroot\var\templates_c.  So far, I'm only seeing it on IIS+XP+IE+Dermis, but I haven't checked Win2003 or Firefox because I discovered it only a few hours ago.  It's 11:30 pm, and I want to go to bed.  Good-night!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-990803700385736484?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/990803700385736484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/documentation-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/990803700385736484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/990803700385736484'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/documentation-bug.html' title='Documentation &amp; Bug'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-5580335999566587103</id><published>2009-11-13T14:58:00.007-06:00</published><updated>2009-11-13T23:15:30.493-06:00</updated><title type='text'>Dermis 0.6</title><content type='html'>I've released Dermis 0.6.  (An upgrade from 0.5!  Whoo-hoo!)&lt;br /&gt;&lt;br /&gt;The display method and {include} tag can now handle relative and absolute directories.&lt;br /&gt;&lt;br /&gt;Here's some of my test code:&lt;br /&gt;&lt;br /&gt;objT.display("header.tpl")&lt;br /&gt;objT.display("dermistest\header.tpl")&lt;br /&gt;objT.display("dermistest\dermistest\header.tpl")&lt;br /&gt;objT.display("\header.tpl")&lt;br /&gt;objT.display("\dermistest\header.tpl")&lt;br /&gt;objT.display("\dermistest\dermistest\header.tpl")&lt;br /&gt;&lt;br /&gt;{ include file="header.tpl" }&lt;br /&gt;{ include file="dermistest\header.tpl" }&lt;br /&gt;{ include file="dermistest\dermistest\header.tpl" }&lt;br /&gt;{ include file="\header.tpl" }&lt;br /&gt;{ include file="\dermistest\header.tpl" }&lt;br /&gt;{ include file="\dermistest\dermistest\header.tpl" }&lt;br /&gt;&lt;br /&gt;I'm not sure what criteria there is for a 1.0 release.  Perhaps breaking up the documentation into separate files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-5580335999566587103?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/5580335999566587103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dermis-06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/5580335999566587103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/5580335999566587103'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/dermis-06.html' title='Dermis 0.6'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-8322275612181884101</id><published>2009-11-13T09:53:00.002-06:00</published><updated>2009-11-13T10:00:17.978-06:00</updated><title type='text'>Finished append method</title><content type='html'>The "append" method works now!  I haven't documented it yet.  For now, look at the code in default.asp to see how to use it.&lt;br /&gt;&lt;br /&gt;Now, I need to fix the display method and {include}, because they can't handle directories yet:&lt;br /&gt;objT.display("bluelayout/default.tpl") ' - doesn't work yet&lt;br /&gt;{include file="bluelayout/header.tpl") ' - doesn't work yet&lt;br /&gt;&lt;br /&gt;Perhaps I'll move it from Dermis 0.5 to 0.6 after this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-8322275612181884101?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/8322275612181884101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/finished-append-method.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/8322275612181884101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/8322275612181884101'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/finished-append-method.html' title='Finished append method'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-4494639244063797082</id><published>2009-11-12T15:44:00.009-06:00</published><updated>2009-11-12T16:00:01.190-06:00</updated><title type='text'>Download the .zip file only</title><content type='html'>Download the Dermis .zip file only, &lt;span style="font-weight:bold;"&gt;not from SVN.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/dermis/"&gt;https://sourceforge.net/projects/dermis/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At least, don't download from SVN for a while.  I upload the .zip file when there are no (known) bugs.  The SVN code is my "working folder," and often has bugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-4494639244063797082?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/4494639244063797082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/same-day-new-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4494639244063797082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4494639244063797082'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/same-day-new-post.html' title='Download the .zip file only'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-725840762552624071</id><published>2009-11-12T14:30:00.003-06:00</published><updated>2009-11-12T15:43:38.704-06:00</updated><title type='text'>Sidetracked</title><content type='html'>Okay, so I haven't finished the "append" method yet.  But, I wasn't slacking!&lt;br /&gt;&lt;br /&gt;I was using the {foreach} tag to test my fledgling "append" method code, and discovered some weaknesses with {foreach}. So, I re-wrote the compiled output code for the {foreach} tag.  It was tougher than I thought.  I had to start at square one: smarty.net {foreach} examples, and about 70 lines of pseudo-code in ASP, just so I could get the big picture.  However, the end result was worth it.  {foreach} compiles to much nicer, and probably stronger, code.&lt;br /&gt;&lt;br /&gt;I also discovered (and more importantly, FIXED) a huge {include} issue.  The chance for a variable collision in the compiled code (i.e., two identically-named variables) was guaranteed if there were two include statements that both use {foreach} or {section}.  Now, compiled filenames have incrementing numbers, even different filenames.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-725840762552624071?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/725840762552624071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/sidetracked.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/725840762552624071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/725840762552624071'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/sidetracked.html' title='Sidetracked'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-5455467990035557578</id><published>2009-11-05T11:07:00.003-06:00</published><updated>2009-11-05T11:55:47.194-06:00</updated><title type='text'>Adding append method</title><content type='html'>I'm working on an "append" method, similar to Smarty's.  I should finish in a few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-5455467990035557578?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/5455467990035557578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/append-method.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/5455467990035557578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/5455467990035557578'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/append-method.html' title='Adding append method'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-4232453632160819733</id><published>2009-11-04T12:37:00.004-06:00</published><updated>2009-11-05T11:57:09.098-06:00</updated><title type='text'>Potential error fixed</title><content type='html'>The old code would declare variables immediately before using them.  However, I was thinking last night, "What if the user implements nested loops using foreach or section??  ASP won't go past re-declaring variables!"&lt;br /&gt;&lt;br /&gt;A feeling of dread overcame me!  (Okay... maybe I'm being too melodramatic.)  But it was a serious issue I needed to correct quickly.&lt;br /&gt;&lt;br /&gt;So, I made some changes where variables are declared at the top of the compiled file instead of immediately before it is used.&lt;br /&gt;&lt;br /&gt;I've been committing to SVN all along, but overwriting dermis0.5.zip over and over again.  I know it is bad practice to use the same version number.  Once Dermis takes off, I'll use different version numbers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-4232453632160819733?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/4232453632160819733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/potential-error-fixed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4232453632160819733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/4232453632160819733'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/potential-error-fixed.html' title='Potential error fixed'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-8841419094087637342</id><published>2009-11-03T08:19:00.002-06:00</published><updated>2009-11-03T08:48:55.251-06:00</updated><title type='text'>Uploaded</title><content type='html'>The files weren't appearing because uploading via SVN is different than "uploading files."  They can be downloaded via a zip file now (or SVN).&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/dermis/"&gt;https://sourceforge.net/projects/dermis/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As far as I know, it's the only Smarty port to ASP/VBScript I know of.  I'm excited about releasing it into the wild!&lt;br /&gt;&lt;br /&gt;If you are using it, let me know, only so I can brag to my friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-8841419094087637342?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/8841419094087637342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/uploaded.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/8841419094087637342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/8841419094087637342'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/uploaded.html' title='Uploaded'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-137955475057920285.post-6929397072435216132</id><published>2009-11-02T15:06:00.001-06:00</published><updated>2009-11-02T15:30:09.554-06:00</updated><title type='text'>Uploading</title><content type='html'>I'm trying to upload the files for Dermis now via SVN.  They haven't appeared yet, but I think it's because of sourceforge's 15 minute delay plastered all over their site.&lt;br /&gt;&lt;br /&gt;I realize that the documentation may be hard to find.  Sorry about that!&lt;br /&gt;&lt;br /&gt;You can download the files from here: &lt;a href="http://dermis.svn.sourceforge.net/viewvc/dermis/trunk/"&gt;http://dermis.svn.sourceforge.net/viewvc/dermis/trunk/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you download the files, the documentation can be found here: /html/index.html&lt;br /&gt;&lt;br /&gt;Right now, the documentation is all contained in one file, and none of the links work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/137955475057920285-6929397072435216132?l=dermissystem.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dermissystem.blogspot.com/feeds/6929397072435216132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dermissystem.blogspot.com/2009/11/uploading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/6929397072435216132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/137955475057920285/posts/default/6929397072435216132'/><link rel='alternate' type='text/html' href='http://dermissystem.blogspot.com/2009/11/uploading.html' title='Uploading'/><author><name>William</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
