JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
copyrighted dwt.php, metaform textboxes aren't puny by default, added kill_session()
authorJason Woofenden <jason183@herkamire.com>
Mon, 2 Apr 2007 21:07:56 +0000 (17:07 -0400)
committerJason Woofenden <jason183@herkamire.com>
Mon, 2 Apr 2007 21:07:56 +0000 (17:07 -0400)
dwt.php [new file with mode: 0644]
metaform/template.html
misc.php
session.php

diff --git a/dwt.php b/dwt.php
new file mode 100644 (file)
index 0000000..7d68258
--- /dev/null
+++ b/dwt.php
@@ -0,0 +1,54 @@
+<?php
+
+#  Copyright (C) 2007 Jason Woofenden
+#
+#  This file is part of wfpl.
+#
+#  wfpl is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU Lesser General Public License as published by the Free
+#  Software Foundation; either version 2.1 of the License, or (at your option)
+#  any later version.
+#
+#  wfpl is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
+#  more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with wfpl; if not, write to the Free Software Foundation, Inc., 51
+#  Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+require_once('code/wfpl/misc.php');
+
+function dwt_reset() {
+       $GLOBALS['_dwt_keys'] = array();
+       $GLOBALS['_dwt_values'] = array();
+}
+
+function dwt_init() {
+       if(isset($GLOBALS['_dwt_keys']) && isset($GLOBALS['_dwt_values'])) {
+               return;
+       }
+       dwt_reset();
+}
+
+function dwt_load($filename) {
+       $GLOBALS['_dwt_template'] = read_whole_file($filename);
+       dwt_init();
+}
+
+function dwt_set_raw($name, $value) {
+       $GLOBALS['_dwt_keys'][] = $name;
+       $GLOBALS['_dwt_values'][] = $value;
+}
+
+function dwt_set($name, $value) {
+       dwt_set_raw("<!-- TemplateBeginEditable name=\"$name\" -->", $value);
+}
+
+function dwt_output($filename = null) {
+       if($filename !== null) {
+               dwt_load($filename);
+       }
+       print(str_replace($GLOBALS['_dwt_keys'], $GLOBALS['_dwt_values'], $GLOBALS['_dwt_template']));
+}
index 07cf014..57a0d19 100644 (file)
@@ -19,7 +19,7 @@ div.error { border: 2px solid red; padding: 13px; margin: 20px; background: #ffd
   <form action="~form_name~.html~enctype_attr~" method="post"><!--~~editing start~~--><input type="hidden" name="~form_name~_edit_id" value="~~~form_name~_edit_id.attr~~" /><!--~~end~~--><!--~uploads start~--><input type="hidden" name="MAX_FILE_SIZE" value="~~upload_max_filesize~~" /><!--~end~-->
     <table cellspacing="0" cellpadding="4" border="0" summary=""><!--~row start~-->
 
-      <tr><!--~image start~--><td class="caption">~caption.html~: </td><td><input type="file" name="~name~" /></td><!--~end~--><!--~textbox start~--><td class="caption">~caption.html~: </td><td><input type="text" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~password start~--><td class="caption">~caption.html~: </td><td><input type="password" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~textarea start~--><td class="caption">~caption.html~: </td><td><textarea name="~name~">~~~name~.html~~</textarea></td><!--~end~--><!--~checkbox start~--><td class="caption">~caption.html~: </td><td><input type="checkbox" name="~name~~~~name~.checked~~" /></td><!--~end~--><!--~submit start~--><td class="submit_row" colspan="2"><input type="submit" name="~name~" value="~caption.attr~" /></td><!--~end~--></tr><!--~end~-->
+      <tr><!--~image start~--><td class="caption">~caption.html~: </td><td><input type="file" name="~name~" /></td><!--~end~--><!--~textbox start~--><td class="caption">~caption.html~: </td><td><input type="text" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~password start~--><td class="caption">~caption.html~: </td><td><input type="password" name="~name~" value="~~~name~.attr~~" /></td><!--~end~--><!--~textarea start~--><td class="caption">~caption.html~: </td><td><textarea rows="20" cols="50" name="~name~">~~~name~.html~~</textarea></td><!--~end~--><!--~checkbox start~--><td class="caption">~caption.html~: </td><td><input type="checkbox" name="~name~~~~name~.checked~~" /></td><!--~end~--><!--~submit start~--><td class="submit_row" colspan="2"><input type="submit" name="~name~" value="~caption.attr~" /></td><!--~end~--></tr><!--~end~-->
 
     </table>
   </form>
index ff0d227..18a1a41 100644 (file)
--- a/misc.php
+++ b/misc.php
@@ -18,6 +18,9 @@
 #  along with wfpl; if not, write to the Free Software Foundation, Inc., 51
 #  Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
+# This exists because file_get_contents() is not documented well. (It says that
+# the second parameter is optional, but does not specify what happens when you
+# do not pass anything.) And because it's nice to work in PHP4.2
 function read_whole_file($name) {
        $fd = fopen($name, 'r');
        if($fd === false) {
index 41670a6..07b759a 100644 (file)
@@ -130,6 +130,15 @@ function init_session() {
        }
 }
 
+# delete the current session
+function kill_session() {
+       if(!session_exists()) {
+               return;
+       }
+       db_delete('wfpl_session_data', 'where session_id=%i', $GLOBALS['session_id']);
+       db_delete('wfpl_sessions', 'where id=%i', $GLOBALS['session_id']);
+}
+
 # save a variable into the session
 function session_set($name, $value) {
        db_delete('wfpl_session_data', 'where session_id=%i && name=%"', $GLOBALS['session_id'], $name);