<?php
/**
* Elgg profile plugin edit default profile action removal
- *
+ *
* @package ElggProfile
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
* @author Curverider Ltd <info@elgg.com>
global $CONFIG;
admin_gatekeeper();
-
+
$id = (int)get_input('id');
-
-if ( ($id) && (set_plugin_setting("admin_defined_profile_$id", '', 'profile')) &&
- (set_plugin_setting("admin_defined_profile_type_$id", '', 'profile'))) {
+
+$fieldlist = get_plugin_setting('user_defined_fields', 'profile');
+if (!$fieldlist) {
+ $fieldlist = '';
+}
+
+$fieldlist = str_replace("{$id},", "", $fieldlist);
+$fieldlist = str_replace(",{$id}", "", $fieldlist);
+$fieldlist = str_replace("{$id}", "", $fieldlist);
+
+if (($id) && (set_plugin_setting("admin_defined_profile_$id", '', 'profile')) &&
+ (set_plugin_setting("admin_defined_profile_type_$id", '', 'profile')) &&
+ set_plugin_setting('user_defined_fields',$fieldlist,'profile')) {
system_message(elgg_echo('profile:editdefault:delete:success'));
} else {
register_error(elgg_echo('profile:editdefault:delete:fail'));
$label = sanitise_string(get_input('label'));
$type = sanitise_string(get_input('type'));
+$fieldlist = get_plugin_setting('user_defined_fields', 'profile');
+if (!$fieldlist) {
+ $fieldlist = '';
+}
+
if (($label) && ($type)){
- // find next index for new field
- $n = 0;
- while (get_plugin_setting("admin_defined_profile_$n", 'profile')) {
- $n++;
+ // Assign a random name
+ $n = md5(time().rand(0,9999));
+
+ if (!empty($fieldlist)) {
+ $fieldlist .= ',';
}
+ $fieldlist .= $n;
- if ( (set_plugin_setting("admin_defined_profile_$n", $label, 'profile')) &&
- (set_plugin_setting("admin_defined_profile_type_$n", $type, 'profile'))) {
+ if ((set_plugin_setting("admin_defined_profile_$n", $label, 'profile')) &&
+ (set_plugin_setting("admin_defined_profile_type_$n", $type, 'profile')) &&
+ set_plugin_setting('user_defined_fields',$fieldlist,'profile')) {
system_message(elgg_echo('profile:editdefault:success'));
} else {
register_error(elgg_echo('profile:editdefault:fail'));
--- /dev/null
+<?php\r
+/**\r
+ * Elgg profile plugin edit default profile action\r
+ *\r
+ * @package ElggProfile\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd <info@elgg.com>\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.com/\r
+ */\r
+\r
+admin_gatekeeper();\r
+\r
+$field = get_input('field');\r
+$text = get_input('value');\r
+\r
+set_plugin_setting("admin_defined_profile_{$field}",$text,'profile');\r
+\r
+echo $text;\r
+\r
+exit;
\ No newline at end of file
--- /dev/null
+<?php\r
+/**\r
+ * Elgg profile plugin reorder fields\r
+ *\r
+ * @package ElggProfile\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd <info@elgg.com>\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.com/\r
+ */\r
+\r
+admin_gatekeeper();\r
+$ordering = get_input('fieldorder');\r
+//if (!empty($ordering))\r
+$result = set_plugin_setting('user_defined_fields',$ordering,'profile');\r
+\r
+exit;
\ No newline at end of file
global $CONFIG;
admin_gatekeeper();
-$n = 0;
-while (get_plugin_setting("admin_defined_profile_$n", 'profile')) {
- set_plugin_setting("admin_defined_profile_$n", '', 'profile');
- set_plugin_setting("admin_defined_profile_type_$n", '', 'profile');
-
- $n++;
+if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) {
+ $fieldlistarray = explode(',', $fieldlist);
+ foreach($fieldlistarray as $listitem) {
+ set_plugin_setting("admin_defined_profile_{$listitem}", '', 'profile');
+ set_plugin_setting("admin_defined_profile_type_{$listitem}", '', 'profile');
+ }
}
set_plugin_setting('user_defined_fields', FALSE, 'profile');
<?php
/**
* Elgg profile index
- *
+ *
* @package ElggProfile
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
* @author Curverider Ltd <info@elgg.com>
set_context('search');
-
// List form elements
$n = 0;
$loaded_defaults = array();
-while ($translation = get_plugin_setting("admin_defined_profile_$n", 'profile'))
-{
- $type = get_plugin_setting("admin_defined_profile_type_$n", 'profile');
- $listing .= elgg_view("profile/", array('value' => $translation));
-
- $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
-
- $listing .= "<p class=\"{$even_odd}\"><b>$translation: </b>";
- $listing .= elgg_view("output/{$type}",array('value' => " [$type]"));
- $listing .= "</p>";
-
- $n++;
+$items = array();
+if ($fieldlist = get_plugin_setting('user_defined_fields', 'profile')) {
+ $fieldlistarray = explode(',', $fieldlist);
+ foreach($fieldlistarray as $listitem) {
+ if ($translation = get_plugin_setting("admin_defined_profile_{$listitem}", 'profile')) {
+ $item = new stdClass;
+ $item->translation = $translation;
+ $item->shortname = $listitem;
+ $item->name = "admin_defined_profile_{$listitem}";
+ $item->type = get_plugin_setting("admin_defined_profile_type_{$listitem}", 'profile');
+ $items[] = $item;
+ }
+ }
}
-$listing .= "<div class='default_profile_reset'>" . elgg_view('input/form',
- array(
- 'body' => elgg_view('input/submit', array('value' => elgg_echo('profile:resetdefault'),'class' => 'action_button disabled')),
- 'action' => $CONFIG->wwwroot . 'action/profile/editdefault/reset'
- )
-) . "</div>";
+$listing = elgg_view('profile/editdefaultprofileitems',array('items' => $items, 'fieldlist' => $fieldlist));
+
+$listing .= elgg_view('input/form',
+ array (
+ 'body' => elgg_view('input/submit', array('value' => elgg_echo('profile:resetdefault'))),
+ 'action' => $CONFIG->wwwroot . 'action/profile/editdefault/reset'
+ )
+ );
set_context('admin');
-
-page_draw(elgg_echo('profile:edit:default'),elgg_view_layout("one_column_with_sidebar", $title . $form . $listing));
\ No newline at end of file
+
+$body = elgg_view_layout("one_column_with_sidebar", $title . $form . $listing);
+
+page_draw(elgg_echo('profile:edit:default'), $body);
\ No newline at end of file
*/
'profile' => "Profile",
- 'profile:edit:default' => 'Replace profile fields',
+ 'profile:edit:default' => 'Profile fields',
'profile:preview' => 'Preview',
/**
'profile:saved' => "Your profile was successfully saved.",
'profile:icon:uploaded' => "Your profile picture was successfully uploaded.",
-
+
/**
* Profile comment wall
**/
- 'profile:commentwall:add' => "Add to the wall",
- 'profile:commentwall:posted' => "You successfully posted on the comment wall.",
+ 'profile:commentwall:add' => "Add to the wall",
+ 'profile:commentwall:posted' => "You successfully posted on the comment wall.",
'profile:commentwall:deleted' => "You successfully deleted the message.",
'profile:commentwall:blank' => "Sorry; you need to actually put something in the message area before we can save it.",
'profile:commentwall:notfound' => "Sorry; we could not find the specified item.",
'profile:commentwall:none' => "No comment wall posts found.",
'profile:commentwall:somethingwentwrong' => "Something went wrong when trying to save your message, make sure you actually wrote a message.",
'profile:commentwall:failure' => "An unexpected error occurred when adding your message. Please try again.",
-
+
/**
* Email messages commentwall
*/
-
+
'profile:comment:subject' => 'You have a new message board comment!',
'profile:comment:body' => "You have a new message board comment from %s. It reads:
-
+
%s
<?xml version="1.0" encoding="UTF-8"?>
<plugin_manifest>
<field key="author" value="Curverider ltd" />
- <field key="version" value="1.7" />
+ <field key="version" value="1.8" />
+ <field key="category" value="bundled" />
+ <field key="category" value="social" />
<field key="description" value="Elgg profile plugin." />
<field key="website" value="http://www.elgg.org/" />
<field key="copyright" value="(C) Curverider 2008-2010" />
register_action("profile/editdefault",false,$CONFIG->pluginspath . "profile/actions/editdefault.php", true);
register_action("profile/editdefault/delete",false,$CONFIG->pluginspath . "profile/actions/deletedefaultprofileitem.php", true);
register_action("profile/editdefault/reset",false,$CONFIG->pluginspath . "profile/actions/resetdefaultprofile.php", true);
+register_action("profile/editdefault/reorder",false,$CONFIG->pluginspath . "profile/actions/reorder.php", true);
register_action("profile/addcomment",false,$CONFIG->pluginspath . "profile/actions/addcomment.php");
register_action("profile/deletecomment",false,$CONFIG->pluginspath . "profile/actions/deletecomment.php");
\ No newline at end of file
--- /dev/null
+/*\r
+ * Editable 1.3.3\r
+ *\r
+ * Copyright (c) 2009 Arash Karimzadeh (arashkarimzadeh.com)\r
+ * Licensed under the MIT (MIT-LICENSE.txt)\r
+ * http://www.opensource.org/licenses/mit-license.php\r
+ *\r
+ * Date: Mar 02 2009\r
+ */\r
+(function($){$.fn.editable=function(options){var defaults={onEdit:null,onSubmit:null,onCancel:null,editClass:null,submit:null,cancel:null,type:"text",submitBy:"blur",editBy:"click",options:null};if(options=="disable"){return this.unbind(this.data("editable.options").editBy,this.data("editable.options").toEditable)}if(options=="enable"){return this.bind(this.data("editable.options").editBy,this.data("editable.options").toEditable)}if(options=="destroy"){return this.unbind(this.data("editable.options").editBy,this.data("editable.options").toEditable).data("editable.previous",null).data("editable.current",null).data("editable.options",null)}var options=$.extend(defaults,options);options.toEditable=function(){$this=$(this);$this.data("editable.current",$this.html());opts=$this.data("editable.options");$.editableFactory[opts.type].toEditable($this.empty(),opts);$this.data("editable.previous",$this.data("editable.current")).children().focus().addClass(opts.editClass);if(opts.submit){$("<button/>").appendTo($this).html(opts.submit).one("mouseup",function(){opts.toNonEditable($(this).parent(),true)})}else{$this.one(opts.submitBy,function(){opts.toNonEditable($(this),true)}).children().one(opts.submitBy,function(){opts.toNonEditable($(this).parent(),true)})}if(opts.cancel){$("<button/>").appendTo($this).html(opts.cancel).one("mouseup",function(){opts.toNonEditable($(this).parent(),false)})}if($.isFunction(opts.onEdit)){opts.onEdit.apply($this,[{current:$this.data("editable.current"),previous:$this.data("editable.previous")}])}};options.toNonEditable=function($this,change){opts=$this.data("editable.options");$this.one(opts.editBy,opts.toEditable).data("editable.current",change?$.editableFactory[opts.type].getValue($this,opts):$this.data("editable.current")).html(opts.type=="password"?"*****":$this.data("editable.current"));var func=null;if($.isFunction(opts.onSubmit)&&change==true){func=opts.onSubmit}else{if($.isFunction(opts.onCancel)&&change==false){func=opts.onCancel}}if(func!=null){func.apply($this,[{current:$this.data("editable.current"),previous:$this.data("editable.previous")}])}};this.data("editable.options",options);return this.one(options.editBy,options.toEditable)};$.editableFactory={text:{toEditable:function($this,options){$("<input/>").appendTo($this).val($this.data("editable.current"))},getValue:function($this,options){return $this.children().val()}},password:{toEditable:function($this,options){$this.data("editable.current",$this.data("editable.password"));$this.data("editable.previous",$this.data("editable.password"));$('<input type="password"/>').appendTo($this).val($this.data("editable.current"))},getValue:function($this,options){$this.data("editable.password",$this.children().val());return $this.children().val()}},textarea:{toEditable:function($this,options){$("<textarea/>").appendTo($this).val($this.data("editable.current"))},getValue:function($this,options){return $this.children().val()}},select:{toEditable:function($this,options){$select=$("<select/>").appendTo($this);$.each(options.options,function(key,value){$("<option/>").appendTo($select).html(value).attr("value",key)});$select.children().each(function(){var opt=$(this);if(opt.text()==$this.data("editable.current")){return opt.attr("selected","selected").text()}})},getValue:function($this,options){var item=null;$("select",$this).children().each(function(){if($(this).attr("selected")){return item=$(this).text()}});return item}}}})(jQuery);
\ No newline at end of file
'url' => elgg_echo('url'),
'email' => elgg_echo('email')
)));
-
-$submit_control = elgg_view('input/submit', array('internalname' => elgg_echo('save'), 'value' => elgg_echo('Add')));
-
+
+$submit_control = elgg_view('input/submit', array('internalname' => elgg_echo('add'), 'value' => elgg_echo('add')));
+
$formbody = <<< END
<p>$label_text: $label_control
$type_text: $type_control
--- /dev/null
+<script language="javascript" type="text/javascript" src="<?php echo $vars['url']?>mod/profile/vendor/jq.editable.min.js"></script>\r
+<script language="javascript" type="text/javascript">\r
+var reorderURL = '<?php echo elgg_add_action_tokens_to_url($vars['url'] . 'action/profile/editdefault/reorder', FALSE); ?>';\r
+function sortCallback(event, ui) {\r
+ var orderArr = $('#sortableList').sortable('toArray');\r
+ var orderStr = orderArr.join(',');\r
+ console.log(orderArr);\r
+ console.log(orderStr);\r
+ jQuery.post(reorderURL, {'fieldorder': orderStr});\r
+}\r
+\r
+$(document).ready(function() {\r
+ $('#sortableList').sortable({\r
+ items: 'li',\r
+ handle: '.handle',\r
+ stop: sortCallback\r
+ });\r
+});\r
+\r
+</script>\r
+<script language="javascript" type="text/javascript" src="<?php echo $vars['url']; ?>mod/multiadmin/vendors/js/jquery.jeditable.js" ></script>\r
+\r
+<div id="list">\r
+ <ul id="sortableList">\r
+<?php\r
+\r
+ $save = elgg_echo('save');\r
+ $cancel = elgg_echo('cancel');\r
+\r
+ foreach($vars['items'] as $item) {\r
+ $url = elgg_add_action_tokens_to_url("{$vars['url']}action/profile/editdefault/editfield");\r
+ echo <<< END\r
+\r
+<script language="javascript" type="text/javascript">\r
+\r
+ $(function() {\r
+ $(".{$item->shortname}_editable").editable("$url", {\r
+ type : 'text',\r
+ submitdata: { _method: "post", 'field': '{$item->shortname}' },\r
+ onblur: 'submit',\r
+ width:'300px',\r
+ height:'none',\r
+ style:'display:inline;',\r
+ tooltip:'Click to edit label'\r
+ });\r
+ });\r
+\r
+</script>\r
+\r
+END;\r
+\r
+ echo elgg_view("profile/", array('value' => $item->translation));\r
+\r
+ //$even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';\r
+ $url = elgg_add_action_tokens_to_url("{$vars['url']}action/profile/editdefault/delete?id={$item->shortname}");\r
+ echo "<li id=\"{$item->shortname}\"><div class=\"delete_note\" style=\"float:right\"><a href=\"$url\">" . elgg_echo('delete') . "</a></div>";\r
+ echo "<img width='16' height='16' class='handle' alt='move' title='Drag here to reorder this item' src='{$vars['url']}mod/profile/graphics/drag_handle.png'/>";\r
+ echo "<b class=\"profile_field_editable\"><span class=\"{$item->shortname}_editable\">$item->translation</span></b>: [".elgg_echo($item->type)."]";\r
+ echo "</li>";\r
+\r
+ }\r
+\r
+?>\r
+ </ul>\r
+</div>\r
+<div id="tempList"></div>\r
+\r
+<input name="sortableListOrder" type="hidden" id="sortableListOrder" value="<?php echo $vars['fieldlist']; ?>" />\r