+function ~file_name~_tem_sets(~php_fields~) {<!--~tem_sets {~-->
+ tem_set('~name~', $~name~);<!--~}~-->
+}
+<!--~opt_listing_2 {~-->
+# You may pass a "where clause" for the db query.
+function ~file_name~_display_listing($where = 'order by ~always_field~ limit 100') {
+ $rows = db_get_rows('~table_name~', 'id<!--~listing_fields_1 {~-->,~name~<!--~}~-->', $where);
+ if($rows == false || count($rows) == 0) {
+ tem_show('empty_listing');
+ tem_show('listings');
+ return false;
+ }
+
+ foreach($rows as $row) {
+ list($id<!--~listing_fields_2 {~-->, $~name~<!--~}~-->) = $row;
+ tem_set('id', $id);
+ if($~always_field~ == '') {
+ $~always_field~ = '--';
+ }
+ ~file_name~_tem_sets(~php_fields~);
+ tem_show('listing_row');
+ }
+ tem_show('populated_listing');
+ tem_show('listings');
+ return true;
+}
+<!--~}~-->
+function ~file_name~_main() {<!--~opt_display_1 {~-->
+ if(isset($_REQUEST['~file_name~_id'])) {
+ $ret = ~file_name~_display_main();
+ if($ret) {
+ return $ret;
+ }
+ tem_show('display_body');
+ } else {
+ $ret = ~file_name~_edit_main();
+ if($ret) {
+ return $ret;
+ }
+ tem_show('edit_body');
+ }
+<!--~}~--><!--~opt_display_1_else {~-->
+ $ret = _~file_name~_main();
+ if($ret) {
+ return $ret;
+ }
+<!--~}~-->
+}<!--~opt_display_2 {~-->
+
+function ~file_name~_display_main() {
+ $id = format_int($_REQUEST['~file_name~_id']);
+ unset($_REQUEST['~file_name~_id']);
+ if(!$id) {
+ message('Error: Broken link');
+ return './~file_name~';
+ }
+ $row = db_get_row('~table_name~', ~file_name upper~_DB_FIELDS, 'where id=%i', $id);
+ if(!$row) {
+ message('Error: ~singular cap~ not found');
+ return './~file_name~';
+ }
+ list(~php_fields~) = $row;
+ ~file_name~_tem_sets(~php_fields~);
+ tem_set('id', $id);
+}
+
+function ~file_name~_edit_main() {<!--~}~--><!--~opt_display_2_else {~-->
+
+
+function _~file_name~_main() {<!--~}~--><!--~opt_pass {~-->
+ if(!logged_in_as_admin()) {
+ $GLOBALS['url'] = this_url();
+ return 'admin_login';
+ }
+<!--~}~--><!--~pulldowns {~-->
+ pulldown('~name~', array('option 1', 'option 2', 'option 3'));
+<!--~}~--><!--~opt_db_3 {~-->
+ $edit_id = format_int($_REQUEST['~file_name~_edit_id']);
+ unset($_REQUEST['~file_name~_edit_id']);
+ if($edit_id) {
+ # add hidden field for database id of row we're editing
+ tem_set('~file_name~_edit_id', $edit_id);
+ tem_show('editing');
+ }
+
+ $delete_id = format_int($_REQUEST['~file_name~_delete_id']);
+ unset($_REQUEST['~file_name~_delete_id']);
+ if($delete_id) {
+ db_delete('~table_name~', 'where id=%i', $delete_id);
+ message('~singular cap~ deleted.');
+
+ return './~file_name~';
+ }
+
+ if(!$edit_id) {<!--~opt_listing_1 {~-->
+ if(!isset($_REQUEST['~file_name~_new']) && !isset($_REQUEST['~always_field~'])) {
+ ~file_name~_display_listing();
+ return;
+ }
+<!--~}~-->
+ tem_show('new_msg');
+ }<!--~}~-->
+
+ if(isset($_POST['~always_field~'])) {
+ list(~php_fields~) = ~file_name~_get_fields();
+
+ if("you're happy with the POSTed values") {<!--~opt_db_4 {~-->
+ if($edit_id) {
+ db_update('~table_name~', ~file_name upper~_DB_FIELDS, ~php_fields~, 'where id=%i', $edit_id);
+ message('~singular cap~ updated.');
+ } else {
+ db_insert('~table_name~', ~file_name upper~_DB_FIELDS, ~php_fields~);
+ message('~singular cap~ saved.');
+ }<!--~}~--><!--~opt_email_2 {~-->
+ if($GLOBALS['~file_name~_form_recipient'] != 'fixme@example.com') {
+ $to = $GLOBALS['~file_name~_form_recipient'];
+ $from = 'noreply@~this_domain~';
+ $reply_to = $to;