ref: b4148bc258fc901a6f3d00ca7326d10c2d9ad2cc
dir: /apps/dirdir/app.rc/
fn conf_enable_wiki { enable_wiki=yes wiki_editors_groups=$* conf_enable_app dirdir } fn dirdir_init { if(! ~ $#enable_wiki 0 && check_user $wiki_editors_groups) { dirdir_file=$local_path.md dirdir_dir=$dirdir_file^'_werc/dirdir/' if(test -f $local_path.md) { if(~ $#post_arg_dirdir_save 1 && ! ~ $"post_arg_edit_text '') save_page if not if(~ 1 $#post_arg_dirdir_edit $#post_arg_dirdir_preview) handler_body_main=(tpl_handler \ `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl}) if not if(! ~ $REQUEST_METHOD POST) ll_add handlers_bar_left tpl_handler \ apps/dirdir/sidebar_controls.tpl } if not if(~ 1 $#post_arg_dirdir_edit) handler_body_main=(tpl_handler \ `{get_lib_file dirdir/edit.tpl apps/dirdir/edit.tpl}) if not if(~ 1 $#post_arg_dirdir_save) { mkdir -p `{basename -d $local_path} save_page } if not ll_add handlers_bar_left tpl_handler \ apps/dirdir/sidebar_controls.tpl } } fn save_page { dirdir_verdir=$dirdir_dir/^`{date -n}^/ mkdir -p $dirdir_verdir # XXX Use a tmp file and mv(1) to ensure updates are atomic? echo $logged_user > $dirdir_verdir/author echo $post_arg_edit_text > $dirdir_verdir/data echo $post_arg_edit_text > $dirdir_file post_redirect $base_url^$req_path #notify_notes='Saved <a href="'$"req_path'">'$"req_path'</a>!' }