aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-03-01 21:06:27 -0800
committerredmatrix <git@macgirvin.com>2016-03-01 21:06:27 -0800
commit548bf884a4b34a4881f3188e54c592597f755dc9 (patch)
treef448f4b694f7263388e020e36fb586175d8f203e
parenta0baa480e3968306c8ebc297a60f84b4d2ccf8c9 (diff)
downloadvolse-hubzilla-548bf884a4b34a4881f3188e54c592597f755dc9.tar.gz
volse-hubzilla-548bf884a4b34a4881f3188e54c592597f755dc9.tar.bz2
volse-hubzilla-548bf884a4b34a4881f3188e54c592597f755dc9.zip
profile field admin page (functional only: still needs a lot of HTML/CSS cleanup)
-rw-r--r--include/identity.php4
-rw-r--r--mod/admin.php121
-rwxr-xr-xview/tpl/admin_aside.tpl1
-rw-r--r--view/tpl/admin_profiles.tpl31
4 files changed, 138 insertions, 19 deletions
diff --git a/include/identity.php b/include/identity.php
index 382b096fe..0a461dbe4 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -1652,7 +1652,7 @@ function get_profile_fields_basic($filter = 0) {
$profile_fields_basic = (($filter == 0) ? get_config('system','profile_fields_basic') : null);
if(! $profile_fields_basic)
- $profile_fields_basic = array('name','pdesc','chandesc','gender','dob','dob_tz','address','locality','region','postal_code','country_name','marital','sexual','homepage','hometown','keywords','about','contact');
+ $profile_fields_basic = array('name','pdesc','chandesc','gender','dob','dob_tz','address','locality','region','postal_code','country_name','marital','with','howlong','sexual','homepage','hometown','keywords','about','contact');
$x = array();
if($profile_fields_basic)
@@ -1667,7 +1667,7 @@ function get_profile_fields_advanced($filter = 0) {
$basic = get_profile_fields_basic($filter);
$profile_fields_advanced = (($filter == 0) ? get_config('system','profile_fields_advanced') : null);
if(! $profile_fields_advanced)
- $profile_fields_advanced = array('with','howlong','politic','religion','likes','dislikes','interest','channels','music','book','film','tv','romance','work','education');
+ $profile_fields_advanced = array('politic','religion','likes','dislikes','interest','channels','music','book','film','tv','romance','work','education');
$x = array();
if($basic)
diff --git a/mod/admin.php b/mod/admin.php
index 292a4e66a..2e2536af3 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -1620,26 +1620,47 @@ 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",
- dbesc($_REQUEST['field_name']),
- dbesc($_REQUEST['field_type']),
- dbesc($_REQUEST['field_desc']),
- dbesc($_REQUEST['field_help']),
- dbesc($_REQUEST['field_inputs']),
- intval($_REQUEST['id'])
- );
+ if(array_key_exists('basic',$_REQUEST)) {
+ $arr = explode(',',$_REQUEST['basic']);
+ for($x = 0; $x < count($arr); $x ++)
+ if(trim($arr[$x]))
+ $arr[$x] = trim($arr[$x]);
+ set_config('system','profile_fields_basic',$arr);
+
+ if(array_key_exists('advanced',$_REQUEST)) {
+ $arr = explode(',',$_REQUEST['advanced']);
+ for($x = 0; $x < count($arr); $x ++)
+ if(trim($arr[$x]))
+ $arr[$x] = trim($arr[$x]);
+ set_config('system','profile_fields_advanced',$arr);
+ }
+ goaway(z_root() . '/admin/profs');
}
- 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'])
- );
+
+
+ if(array_key_exists('field_name',$_REQUEST)) {
+ 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",
+ 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');
@@ -1686,4 +1707,70 @@ function admin_page_profs(&$a) {
'$submit' => t('Save')
));
}
+
+ $basic = '';
+ $barr = array();
+ $fields = get_profile_fields_basic();
+ if(! $fields)
+ $fields = get_profile_fields_basic(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if($basic)
+ $basic .= ', ';
+ $basic .= trim($k);
+ $barr[] = trim($k);
+ }
+ }
+
+ $advanced = '';
+ $fields = get_profile_fields_advanced();
+ if(! $fields)
+ $fields = get_profile_fields_advanced(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if(in_array(trim($k),$barr))
+ continue;
+ if($advanced)
+ $advanced .= ', ';
+ $advanced .= trim($k);
+ }
+ }
+
+ $all = '';
+ $fields = get_profile_fields_advanced(1);
+ if($fields) {
+ foreach($fields as $k => $v) {
+ if($all)
+ $all .= ', ';
+ $all .= trim($k);
+ }
+ }
+
+ $r = q("select * from profdef where true");
+ if($r) {
+ foreach($r as $rr) {
+ if($all)
+ $all .= ', ';
+ $all .= $rr['field_name'];
+ }
+ }
+
+
+ $o = replace_macros(get_markup_template('admin_profiles.tpl'),array(
+ '$title' => t('Profile Management'),
+ '$basic' => array('basic',t('Basic Profile Fields'),$basic,''),
+ '$advanced' => array('advanced',t('Advanced Profile Fields'),$advanced,t('In addition to basic fields')),
+ '$all' => $all,
+ '$all_desc' => t('All available fields'),
+ '$cust_field_desc' => t('Custom Fields'),
+ '$cust_fields' => $r,
+ '$edit' => t('Edit'),
+ '$drop' => t('Delete'),
+ '$new' => t('Create'),
+ '$submit' => t('Submit')
+ ));
+
+ return $o;
+
+
}
diff --git a/view/tpl/admin_aside.tpl b/view/tpl/admin_aside.tpl
index ab190fc95..da762a094 100755
--- a/view/tpl/admin_aside.tpl
+++ b/view/tpl/admin_aside.tpl
@@ -21,6 +21,7 @@
<li><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
<li><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
<li><a href='{{$admin.features.0}}'>{{$admin.features.1}}</a></li>
+ <li><a href='{{$admin.profs.0}}'>{{$admin.profs.1}}</a></li>
<li><a href='{{$admin.dbsync.0}}'>{{$admin.dbsync.1}}</a></li>
</ul>
</div>
diff --git a/view/tpl/admin_profiles.tpl b/view/tpl/admin_profiles.tpl
new file mode 100644
index 000000000..70fcc303b
--- /dev/null
+++ b/view/tpl/admin_profiles.tpl
@@ -0,0 +1,31 @@
+<div class="generic-content-wrapper">
+<h2>{{$title}}</h2>
+
+<form action="admin/profs" method="post">
+
+{{include file="field_textarea.tpl" field=$basic}}
+{{include file="field_textarea.tpl" field=$advanced}}
+
+<input type="submit" name="submit" value="{{$submit}}" />
+
+</form>
+
+<div>{{$all_desc}}</div>
+
+<div>{{$all}}</div>
+
+<br /><br />
+<div>{{$cust_field_desc}}</div>
+
+<button href="admin/profs/new">{{$new}}</button>
+
+{{if $cust_fields}}
+<table>
+{{foreach $cust_fields as $field}}
+<tr><td>{{$field.field_desc}}</td><td>{{$field.field_name}}</td><td><a href="admin/profs/{{$field.id}}" >{{$edit}}</a> <a href="admin/profs/drop/{{$field.id}}">{{$drop}}</a></td></tr>
+{{/foreach}}
+</table>
+{{/if}}
+
+
+</div>