}
     foreach ($widgets[1] as $widget) {
         if (isset($widget['fieldType']) && count($widget['fieldType'])) {
             foreach ($widget['fieldType'] as $type) {
                 array_push($wgByTypes[$type], $widget['name']);
             }
         }
     }
     //echo '<pre>'; print_r($widgets[1]); die();
     $js = "\r\r\tvar name = \$('#name'),\r\tvalue = \$('#value'),\r\tallFields = \$([]).add(name).add(value),\r\ttips = \$('.validateTips');\r\t\r\tvar listWidgets = jQuery.parseJSON('" . str_replace("'", "\\'", CJavaScript::jsonEncode($widgets[0])) . "');\r\tvar widgets = jQuery.parseJSON('" . str_replace("'", "\\'", CJavaScript::jsonEncode($widgets[1])) . "');\r\tvar wgByType = jQuery.parseJSON('" . str_replace("'", "\\'", CJavaScript::jsonEncode($wgByTypes)) . "');\r\t\r\tvar fieldType = {\r\t\t\t'INTEGER':{\r\t\t\t\t'hide':['match','other_validator','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':10,\r\t\t\t\t\t'default':'0',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'VARCHAR':{\r\t\t\t\t'hide':['widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':255,\r\t\t\t\t\t'default':'',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'TEXT':{\r\t\t\t\t'hide':['field_size','range','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':0,\r\t\t\t\t\t'default':'',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'DATE':{\r\t\t\t\t'hide':['field_size','field_size_min','match','range','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':0,\r\t\t\t\t\t'default':'0000-00-00',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'FLOAT':{\r\t\t\t\t'hide':['match','other_validator','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':'10,2',\r\t\t\t\t\t'default':'0.00',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'BOOL':{\r\t\t\t\t'hide':['field_size','field_size_min','match','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':0,\r\t\t\t\t\t'default':0,\r\t\t\t\t\t'range':'1==" . UserModule::t('Yes') . ";0==" . UserModule::t('No') . "',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'BLOB':{\r\t\t\t\t'hide':['field_size','field_size_min','match','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':0,\r\t\t\t\t\t'default':'',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t},\r\t\t\t'BINARY':{\r\t\t\t\t'hide':['field_size','field_size_min','match','widgetparams'],\r\t\t\t\t'val':{\r\t\t\t\t\t'field_size':0,\r\t\t\t\t\t'default':'',\r\t\t\t\t\t'range':'',\r\t\t\t\t\t'widgetparams':''\r\t\t\t\t}\r\t\t\t}\r\t\t};\r\t\t\t\r\tfunction showWidgetList(type) {\r\t\t\$('div.widget select').empty();\r\t\t\$('div.widget select').append('<option value=\"\">" . UserModule::t('No') . "</option>');\r\t\tif (wgByType[type]) {\r\t\t\tfor (var k in wgByType[type]) {\r\t\t\t\t\$('div.widget select').append('<option value=\"'+wgByType[type][k]+'\">'+widgets[wgByType[type][k]]['label']+'</option>');\r\t\t\t}\r\t\t}\r\t}\r\t\t\r\tfunction setFields(type) {\r\t\tif (fieldType[type]) {\r\t\t\tif (" . (isset($_GET['id']) ? 0 : 1) . ") {\r\t\t\t\tshowWidgetList(type);\r\t\t\t\t\$('#widgetlist option:first').attr('selected', 'selected');\r\t\t\t}\r\t\t\t\r\t\t\t\$('div.row').addClass('toshow').removeClass('tohide');\r\t\t\tif (fieldType[type].hide.length) \$('div.'+fieldType[type].hide.join(', div.')).addClass('tohide').removeClass('toshow');\r\t\t\tif (\$('div.widget select').val()) {\r\t\t\t\t\$('div.widgetparams').removeClass('tohide');\r\t\t\t}\r\t\t\t\$('div.toshow').show(500);\r\t\t\t\$('div.tohide').hide(500);\r\t\t\t" . (!isset($_GET['id']) ? "\r\t\t\tfor (var k in fieldType[type].val) { \r\t\t\t\t\$('div.'+k+' input').val(fieldType[type].val[k]);\r\t\t\t}" : '') . "\r\t\t}\r\t}\r\t\r\tfunction isArray(obj) {\r\t\tif (obj.constructor.toString().indexOf('Array') == -1)\r\t\t\treturn false;\r\t\telse\r\t\t\treturn true;\r\t}\r\t\t\r\t\$('#dialog-form').dialog({\r\t\tautoOpen: false,\r\t\theight: 400,\r\t\twidth: 400,\r\t\tmodal: true,\r\t\tbuttons: {\r\t\t\t'" . UserModule::t('Save') . "': function() {\r\t\t\t\tvar wparam = {};\r\t\t\t\tvar fparam = {};\r\t\t\t\t\$('#dialog-form fieldset .wparam').each(function(){\r\t\t\t\t\tif (\$(this).val()) wparam[\$(this).attr('name')] = \$(this).val();\r\t\t\t\t});\r\t\t\t\t\r\t\t\t\tvar tab = \$('#tabs ul li.ui-tabs-selected').text();\r\t\t\t\tfparam[tab] = {};\r\t\t\t\t\$('#dialog-form fieldset .tab-'+tab).each(function(){\r\t\t\t\t\tif (\$(this).val()) fparam[tab][\$(this).attr('name')] = \$(this).val();\r\t\t\t\t});\r\t\t\t\t\r\t\t\t\tif (\$.JSON.encode(wparam)!='{}') \$('div.widgetparams input').val(\$.JSON.encode(wparam));\r\t\t\t\tif (\$.JSON.encode(fparam[tab])!='{}') \$('div.other_validator input').val(\$.JSON.encode(fparam)); \r\t\t\t\t\r\t\t\t\t\$(this).dialog('close');\r\t\t\t},\r\t\t\t'" . UserModule::t('Cancel') . "': function() {\r\t\t\t\t\$(this).dialog('close');\r\t\t\t}\r\t\t},\r\t\tclose: function() {\r\t\t}\r\t});\r\r\r\t\$('#widgetparams').focus(function() {\r\t\tvar widget = widgets[\$('#widgetlist').val()];\r\t\tvar html = '';\r\t\tvar wparam = (\$('div.widgetparams input').val())?\$.JSON.decode(\$('div.widgetparams input').val()):{};\r\t\tvar fparam = (\$('div.other_validator input').val())?\$.JSON.decode(\$('div.other_validator input').val()):{};\r\t\t\r\t\t// Class params\r\t\tfor (var k in widget.params) {\r\t\t\thtml += '<label for=\"name\">'+((widget.paramsLabels[k])?widget.paramsLabels[k]:k)+'</label>';\r\t\t\thtml += '<input type=\"text\" name=\"'+k+'\" id=\"widget_'+k+'\" class=\"text wparam ui-widget-content ui-corner-all\" value=\"'+((wparam[k])?wparam[k]:widget.params[k])+'\" />';\r\t\t}\r\t\t// Validator params\t\t\r\t\tif (widget.other_validator) {\r\t\t\tvar tabs = '';\r\t\t\tvar li = '';\r\t\t\tfor (var t in widget.other_validator) {\r\t\t\t\ttabs += '<div id=\"tab-'+t+'\" class=\"tab\">';\r\t\t\t\tli += '<li'+((fparam[t])?' class=\"ui-tabs-selected\"':'')+'><a href=\"#tab-'+t+'\">'+t+'</a></li>';\r\t\t\t\t\r\t\t\t\tfor (var k in widget.other_validator[t]) {\r\t\t\t\t\ttabs += '<label for=\"name\">'+((widget.paramsLabels[k])?widget.paramsLabels[k]:k)+'</label>';\r\t\t\t\t\tif (isArray(widget.other_validator[t][k])) {\r\t\t\t\t\t\ttabs += '<select type=\"text\" name=\"'+k+'\" id=\"filter_'+k+'\" class=\"text fparam ui-widget-content ui-corner-all tab-'+t+'\">';\r\t\t\t\t\t\tfor (var i in widget.other_validator[t][k]) {\r\t\t\t\t\t\t\ttabs += '<option value=\"'+widget.other_validator[t][k][i]+'\"'+((fparam[t]&&fparam[t][k])?' selected=\"selected\"':'')+'>'+widget.other_validator[t][k][i]+'</option>';\r\t\t\t\t\t\t}\r\t\t\t\t\t\ttabs += '</select>';\r\t\t\t\t\t} else {\r\t\t\t\t\t\ttabs += '<input type=\"text\" name=\"'+k+'\" id=\"filter_'+k+'\" class=\"text fparam ui-widget-content ui-corner-all tab-'+t+'\" value=\"'+((fparam[t]&&fparam[t][k])?fparam[t][k]:widget.other_validator[t][k])+'\" />';\r\t\t\t\t\t}\r\t\t\t\t}\r\t\t\t\ttabs += '</div>';\r\t\t\t}\r\t\t\thtml += '<div id=\"tabs\"><ul>'+li+'</ul>'+tabs+'</div>';\r\t\t}\r\t\t\r\t\t\$('#dialog-form fieldset').html(html);\r\t\t\r\t\t\$('#tabs').tabs();\r\t\t\r\t\t// Show form\r\t\t\$('#dialog-form').dialog('open');\r\t});\r\t\r\t\$('#field_type').change(function() {\r\t\tsetFields(\$(this).val());\r\t});\r\t\r\t\$('#widgetlist').change(function() {\r\t\tif (\$(this).val()) {\r\t\t\t\$('div.widgetparams').show(500);\r\t\t} else {\r\t\t\t\$('div.widgetparams').hide(500);\r\t\t}\r\t\t\r\t});\r\t\r\t// show all function \r\t\$('div.form p.note').append('<br/><a href=\"#\" id=\"showAll\">" . UserModule::t('Show all') . "</a>');\r \t\$('#showAll').click(function(){\r\t\t\$('div.row').show(500);\r\t\treturn false;\r\t});\r\t\r\t// init\r\tsetFields(\$('#field_type').val());\r\t\r\t";
     $cs->registerScript(__CLASS__ . '#dialog', $js);
 }
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $this->layout = '//layouts/column2';
     $model = new ProfileField();
     $scheme = get_class(Yii::app()->db->schema);
     if (isset($_POST['ProfileField'])) {
         $model->attributes = $_POST['ProfileField'];
         if ($model->validate()) {
             $sql = 'ALTER TABLE ' . Profile::model()->tableName() . ' ADD `' . $model->varname . '` ';
             $sql .= $this->fieldType($model->field_type);
             if ($model->field_type != 'TEXT' && $model->field_type != 'DATE' && $model->field_type != 'BOOL' && $model->field_type != 'BLOB' && $model->field_type != 'BINARY') {
                 $sql .= '(' . $model->field_size . ')';
             }
             $sql .= ' NOT NULL ';
 public function actionCreate()
 {
     $model = new ProfileField();
     if (isset($_POST['ProfileField'])) {
         $model->attributes = $_POST['ProfileField'];
         if ($model->validate()) {
             $sql = 'ALTER TABLE ' . Profile::tableName() . ' ADD `' . $model->varname . '` ';
             $sql .= $model->field_type;
             if ($model->field_type != 'TEXT' && $model->field_type != 'DATE') {
                 $sql .= '(' . $model->field_size . ')';
             }
             $sql .= ' NOT NULL ';
             if ($model->default) {
                 $sql .= " DEFAULT '" . $model->default . "'";
             } else {
                 $sql .= $model->field_type == 'TEXT' || $model->field_type == 'VARCHAR' ? " DEFAULT ''" : " DEFAULT 0";
             }
             $model->dbConnection->createCommand($sql)->execute();
             $model->save();
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
Exemple #3
0
$field->title = 'MySpace URL';
$field->sort_order = 800;
$field->profile_field_category_id = $cSocial->id;
$field->field_type_class = 'ProfileFieldTypeText';
$field->is_system = true;
if ($field->save()) {
    $field->fieldType->validator = 'url';
    $field->fieldType->save();
}
$field = new ProfileField();
$field->internal_name = "url_googleplus";
$field->title = 'Google+ URL';
$field->sort_order = 900;
$field->profile_field_category_id = $cSocial->id;
$field->field_type_class = 'ProfileFieldTypeText';
$field->is_system = true;
if ($field->save()) {
    $field->fieldType->validator = 'url';
    $field->fieldType->save();
}
$field = new ProfileField();
$field->internal_name = "url_twitter";
$field->title = 'Twitter URL';
$field->sort_order = 1000;
$field->profile_field_category_id = $cSocial->id;
$field->field_type_class = 'ProfileFieldTypeText';
$field->is_system = true;
if ($field->save()) {
    $field->fieldType->validator = 'url';
    $field->fieldType->save();
}
 /**
  * Setup some inital database settings.
  *
  * This will be done at the first step.
  */
 private function setupInitialData()
 {
     // Seems database is already initialized
     if (HSetting::Get('paginationSize') == 10) {
         return;
     }
     // Rebuild Search
     HSearch::getInstance()->rebuild();
     HSetting::Set('baseUrl', Yii::app()->getBaseUrl(true));
     HSetting::Set('paginationSize', 10);
     HSetting::Set('displayNameFormat', '{profile.firstname} {profile.lastname}');
     // Authentication
     HSetting::Set('authInternal', '1', 'authentication');
     HSetting::Set('authLdap', '0', 'authentication');
     HSetting::Set('needApproval', '0', 'authentication_internal');
     HSetting::Set('anonymousRegistration', '1', 'authentication_internal');
     HSetting::Set('internalUsersCanInvite', '1', 'authentication_internal');
     // Mailing
     HSetting::Set('transportType', 'php', 'mailing');
     HSetting::Set('systemEmailAddress', '*****@*****.**', 'mailing');
     HSetting::Set('systemEmailName', 'My Social Network', 'mailing');
     HSetting::Set('receive_email_activities', User::RECEIVE_EMAIL_DAILY_SUMMARY, 'mailing');
     HSetting::Set('receive_email_notifications', User::RECEIVE_EMAIL_WHEN_OFFLINE, 'mailing');
     // File
     HSetting::Set('maxFileSize', '1048576', 'file');
     HSetting::Set('forbiddenExtensions', 'exe', 'file');
     // Caching
     HSetting::Set('type', 'CFileCache', 'cache');
     HSetting::Set('expireTime', '3600', 'cache');
     HSetting::Set('installationId', md5(uniqid("", true)), 'admin');
     // Design
     HSetting::Set('theme', "HumHub");
     // Basic
     HSetting::Set('enable', 1, 'tour');
     // Add Categories
     $cGeneral = new ProfileFieldCategory();
     $cGeneral->title = "General";
     $cGeneral->sort_order = 100;
     $cGeneral->visibility = 1;
     $cGeneral->is_system = true;
     $cGeneral->description = '';
     $cGeneral->save();
     $cCommunication = new ProfileFieldCategory();
     $cCommunication->title = "Communication";
     $cCommunication->sort_order = 200;
     $cCommunication->visibility = 1;
     $cCommunication->is_system = true;
     $cCommunication->description = '';
     $cCommunication->save();
     $cSocial = new ProfileFieldCategory();
     $cSocial->title = "Social bookmarks";
     $cSocial->sort_order = 300;
     $cSocial->visibility = 1;
     $cSocial->is_system = true;
     $cSocial->description = '';
     $cSocial->save();
     // Add Fields
     $field = new ProfileField();
     $field->internal_name = "firstname";
     $field->title = 'Firstname';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->ldap_attribute = 'givenName';
     $field->is_system = true;
     $field->required = true;
     $field->show_at_registration = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "lastname";
     $field->title = 'Lastname';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->ldap_attribute = 'sn';
     $field->show_at_registration = true;
     $field->required = true;
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "title";
     $field->title = 'Title';
     $field->sort_order = 300;
     $field->ldap_attribute = 'title';
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "gender";
     $field->title = 'Gender';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeSelect';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->options = "male=>Male\nfemale=>Female\ncustom=>Custom";
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "street";
     $field->title = 'Street';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 150;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "zip";
     $field->title = 'Zip';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cGeneral->id;
     $field->is_system = true;
     $field->field_type_class = 'ProfileFieldTypeText';
     if ($field->save()) {
         $field->fieldType->maxLength = 10;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "city";
     $field->title = 'City';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "country";
     $field->title = 'Country';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "state";
     $field->title = 'State';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "birthday";
     $field->title = 'Birthday';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeBirthday';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "about";
     $field->title = 'About';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cGeneral->id;
     $field->field_type_class = 'ProfileFieldTypeTextArea';
     $field->is_system = true;
     if ($field->save()) {
         #$field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "phone_private";
     $field->title = 'Phone Private';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "phone_work";
     $field->title = 'Phone Work';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "mobile";
     $field->title = 'Mobile';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "fax";
     $field->title = 'Fax';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_skype";
     $field->title = 'Skype Nickname';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_msn";
     $field->title = 'MSN';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->maxLength = 100;
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_icq";
     $field->title = 'ICQ Number';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeNumber';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "im_xmpp";
     $field->title = 'XMPP Jabber Address';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cCommunication->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'email';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url";
     $field->title = 'Url';
     $field->sort_order = 100;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_facebook";
     $field->title = 'Facebook URL';
     $field->sort_order = 200;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_linkedin";
     $field->title = 'LinkedIn URL';
     $field->sort_order = 300;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_xing";
     $field->title = 'Xing URL';
     $field->sort_order = 400;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_youtube";
     $field->title = 'Youtube URL';
     $field->sort_order = 500;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_vimeo";
     $field->title = 'Vimeo URL';
     $field->sort_order = 600;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_flickr";
     $field->title = 'Flickr URL';
     $field->sort_order = 700;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_myspace";
     $field->title = 'MySpace URL';
     $field->sort_order = 800;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_googleplus";
     $field->title = 'Google+ URL';
     $field->sort_order = 900;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $field = new ProfileField();
     $field->internal_name = "url_twitter";
     $field->title = 'Twitter URL';
     $field->sort_order = 1000;
     $field->profile_field_category_id = $cSocial->id;
     $field->field_type_class = 'ProfileFieldTypeText';
     $field->is_system = true;
     if ($field->save()) {
         $field->fieldType->validator = 'url';
         $field->fieldType->save();
     }
     $group = new Group();
     $group->name = "Users";
     $group->description = "Example Group by Installer";
     $group->save();
 }