diff options
author | friendica <info@friendica.com> | 2014-08-27 22:01:02 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-08-27 22:01:02 -0700 |
commit | 2d210db1b85e5893afe285fc7b32f9987f1ae565 (patch) | |
tree | 5acc6288380390c8ba21543a34e60228257ec276 /mod | |
parent | eb27bea794d5aff547be9722f7c058678b8cbb1d (diff) | |
download | volse-hubzilla-2d210db1b85e5893afe285fc7b32f9987f1ae565.tar.gz volse-hubzilla-2d210db1b85e5893afe285fc7b32f9987f1ae565.tar.bz2 volse-hubzilla-2d210db1b85e5893afe285fc7b32f9987f1ae565.zip |
ability to create/edit/delete custom profile field definitions - read the source. Currently the created entries aren't added to the allowed fields arrays, but this can be done by hand until that bit is made available. Only choice for input type at the moment is 'text' or a text input, not a textarea. Multiple choice will be added later.
Diffstat (limited to 'mod')
-rw-r--r-- | mod/admin.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/mod/admin.php b/mod/admin.php index bcbb6fc26..e54163c62 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -1291,11 +1291,74 @@ readable."); function admin_page_profs_post(&$a) { + if($_REQUEST['id']) { + $r = q("update profdef set field_name = '%s', field_type = '%s', field_desc = '%s' field_help = '%s', field_inputs = '%s' where id = %d limit 1", + dbesc($_REQUEST['field_name']), + dbesc($_REQUEST['field_type']), + dbesc($_REQUEST['field_desc']), + dbesc($_REQUEST['field_help']), + dbesc($_REQUEST['field_inputs']), + intval($_REQUEST['id']) + ); + } + else { + $r = q("insert into profdef ( field_name, field_type, field_desc, field_help, field_inputs ) values ( '%s' , '%s', '%s', '%s', '%s' )", + dbesc($_REQUEST['field_name']), + dbesc($_REQUEST['field_type']), + dbesc($_REQUEST['field_desc']), + dbesc($_REQUEST['field_help']), + dbesc($_REQUEST['field_inputs']) + ); + } + + // add to chosen array basic or advanced + + goaway(z_root() . '/admin/profs'); } function admin_page_profs(&$a) { + if((argc() > 3) && argv(2) == 'drop' && intval(argv(3))) { + $r = q("delete from profdef where id = %d limit 1", + intval(argv(3)) + ); + // remove from allowed fields + + goaway(z_root() . '/admin/profs'); + } + + if((argc() > 2) && argv(2) === 'new') { + return replace_macros(get_markup_template('profdef_edit.tpl'),array( + '$header' => t('New Profile Field'), + '$field_name' => array('field_name',t('Field nickname'),$_REQUEST['field_name'],t('System name of field')), + '$field_type' => array('field_type',t('Input type'),(($_REQUEST['field_type']) ? $_REQUEST['field_type'] : 'text'),''), + '$field_desc' => array('field_desc',t('Field Name'),$_REQUEST['field_desc'],t('Label on profile pages')), + '$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')), + '$submit' => t('Save') + )); + + } + + if((argc() > 2) && intval(argv(2))) { + $r = q("select * from profdef where id = %d limit 1", + intval(argv(2)) + ); + if(! $r) { + notice( t('Field definition not found') . EOL); + goaway(z_root() . '/admin/profs'); + } + + return replace_macros(get_markup_template('profdef_edit.tpl'),array( + '$id' => intval($r[0]['id']), + '$header' => t('New Profile Field'), + '$field_name' => array('field_name',t('Field nickname'),$r[0]['field_name'],t('System name of field')), + '$field_type' => array('field_type',t('Input type'),$r[0]['field_type'],''), + '$field_desc' => array('field_desc',t('Field Name'),$r[0]['field_desc'],t('Label on profile pages')), + '$field_help' => array('field_help',t('Help text'),$r[0]['field_help'],t('Additional info (optional)')), + '$submit' => t('Save') + )); + } } |