acl_check( 'administration', 'manage', 'users', $my->usertype, 'components', 'com_users' )) { mosRedirect( 'index2.php', _NOT_AUTH ); } if (file_exists('components/com_comprofiler/language/'.$mosConfig_lang.'.php')) { include('components/com_comprofiler/language/'.$mosConfig_lang.'.php'); } else { include('components/com_comprofiler/language/english.php'); } require_once( $mainframe->getPath( 'admin_html' ) ); include_once( "components/com_comprofiler/ue_config.php" ); include_once("components/com_comprofiler/comprofiler.class.php"); $task = trim( mosGetParam( $_REQUEST, 'task', null ) ); $cid = mosGetParam( $_REQUEST, 'cid', array( 0 ) ); if (!is_array( $cid )) { $cid = array ( 0 ); } //echo ""; switch ($task) { case "new": editUser( 0, $option); break; case "edit": editUser( intval( $cid[0] ), $option ); break; case "save": saveUser( $option ); break; case "remove": removeUsers( $cid, $option ); break; case "block": changeUserBlock( $cid, 1, $option ); break; case "unblock": changeUserBlock( $cid, 0, $option ); break; case "approve": approveUser( $cid, 1, $option ); break; case "reject": approveUser( $cid, 0, $option ); break; case "showconfig": showConfig( $option ); break; case "showinstruction": showInstructions($database, $option, $mosConfig_lang); break; case "showsubscription": showSubscription($database, $option, $mosConfig_lang); break; case "saveconfig": saveConfig( $option ); break; case "newTab": editTab( 0, $option); break; case "editTab": editTab( intval( $cid[0] ), $option ); break; case "saveTab": saveTab( $option ); break; case "removeTab": removeTabs( $cid, $option ); break; case "showTab": showTab( $option ); break; case "orderupTab": orderTabs( $cid[0], -1, $option ); break; case "orderdownTab": orderTabs( $cid[0], 1, $option ); break; case "newField": editField( 0, $option); break; case "editField": editField( intval( $cid[0] ), $option ); break; case "saveField": saveField( $option ); break; case "removeField": removeField( $cid, $option ); break; case "showField": showField( $option ); break; case "orderupField": orderFields( $cid[0], -1, $option ); break; case "orderdownField": orderFields( $cid[0], 1, $option ); break; case "saveList": saveList($option ); break; case "editList": editList( $cid[0], 1, $option ); break; case "newList": editList( 0, $option); break; case "showLists": showLists( $option ); break; case "removeList": removeList( $cid, $option ); break; case "orderupList": orderLists( $cid[0], -1, $option ); break; case "orderdownList": orderLists( $cid[0], 1, $option ); break; case "fieldPublishedYes": publishField( $cid, 1, $option ); break; case "fieldPublishedNo": publishField( $cid, 0, $option ); break; case "fieldRequiredYes": requiredField( $cid, 1, $option ); break; case "fieldRequiredNo": requiredField( $cid, 0, $option ); break; case "fieldProfileYes": profileField( $cid, 1, $option ); break; case "fieldProfileNo": profileField( $cid, 0, $option ); break; case "fieldRegistrationYes": registrationField( $cid, 1, $option ); break; case "fieldRegistrationNo": registrationField( $cid, 0, $option ); break; case "listPublishedYes": listPublishedField( $cid, 1, $option ); break; case "listPublishedNo": listPublishedField( $cid, 0, $option ); break; case "listDefaultYes": listDefaultField( $cid, 1, $option ); break; case "listDefaultNo": listDefaultField( $cid, 0, $option ); break; case "tools": loadTools(); break; case "loadSampleData": loadSampleData(); break; case "syncUsers": syncUsers(); break; case "showusers": showUsers( $option ); break; default: HTML_comprofiler::showCredits(); break; } function saveList( $option ) { global $database, $my, $_POST; global $mosConfig_live_site; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); //echo ""; $row = new moscomprofilerLists( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } //echo "\n"; if(isset($_POST['col1'])) { $row->col1fields = implode("|*|",$_POST['col1']); } else { $row->col1fields = null; } ; if(isset($_POST['col2'])) { $row->col2fields = implode("|*|",$_POST['col2']); } else { $row->col2fields = null; } ; if(isset($_POST['col3'])) { $row->col3fields = implode("|*|",$_POST['col3']); } else { $row->col3fields = null; } ; if(isset($_POST['col4'])) { $row->col4fields = implode("|*|",$_POST['col4']); } else { $row->col4fields = null; } ; if ($row->col1enabled != 1) $row->col1enabled=0; if ($row->col2enabled != 1) $row->col2enabled=0; if ($row->col3enabled != 1) $row->col3enabled=0; if ($row->col4enabled != 1) $row->col4enabled=0; if ($row->col1captions != 1) $row->col1captions=0; if ($row->col2captions != 1) $row->col2captions=0; if ($row->col3captions != 1) $row->col3captions=0; if ($row->col4captions != 1) $row->col4captions=0; if (!$row->store($_POST['listid'],true)) { echo "\n"; exit(); } //echo $database->getquery(); mosRedirect( "index2.php?option=$option&task=showLists" ); } function showLists( $option ) { global $database, $mainframe, $my, $acl,$mosConfig_list_limit; if(!isset($mosConfig_list_limit)) $limit = 10; else $limit=$mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $limit ); $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); if($_POST['task']=='showLists') { $search = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' ); $search = $database->getEscaped( trim( strtolower( $search ) ) ); } $where = array(); if (isset( $search ) && $search!= "") { $where[] = "(a.title LIKE '%$search%' OR a.description LIKE '%$search%')"; } $database->setQuery( "SELECT COUNT(*)" . "\nFROM #__comprofiler_lists AS a" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") ); $total = $database->loadResult(); echo $database->getErrorMsg(); require_once("includes/pageNavigation.php"); $pageNav = new mosPageNav( $total, $limitstart, $limit ); $database->setQuery( "SELECT listid, title, description, published,`default`" . "\nFROM #__comprofiler_lists a" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") . "\n ORDER BY ordering" . "\nLIMIT $pageNav->limitstart, $pageNav->limit" ); $rows = $database->loadObjectList(); if ($database->getErrorNum()) { echo $database->stderr(); return false; } HTML_comprofiler::showLists( $rows, $pageNav, $search, $option ); } function editList( $fid='0', $option='com_comprofiler' ) { global $database, $my, $acl; $row = new moscomprofilerLists( $database ); // load the row from the db table $row->load( $fid ); $lists['published'] = mosHTML::yesnoSelectList( 'published', 'class="inputbox" size="1"', $row->published ); $lists['default'] = mosHTML::yesnoSelectList( 'default', 'class="inputbox" size="1"', $row->default ); $my_groups = $acl->get_object_groups( 'users', $my->id, 'ARO' ); //print_r($my_groups); if (is_array( $my_groups ) && count( $my_groups ) > 0) { $ex_groups = $acl->get_group_children( $my_groups[0], 'ARO', 'RECURSE' ); } else { $ex_groups = array(); } //print_r($ex_groups); $gtree = $acl->get_group_children_tree( null, 'USERS', false ); // remove users 'above' me $i = 0; while ($i < count( $gtree )) { if (in_array( $gtree[$i]->value, $ex_groups )) { array_splice( $gtree, $i, 1 ); } else { $i++; } } $gtree2=array(); $gtree2 = array_merge( $gtree2, $acl->get_group_children_tree( null, 'USERS', false )); $usergids=explode(",",$row->usergroupids); $ugids = array(); foreach($usergids as $usergid) { $ugids[]->value=$usergid; } $lists['usergroups'] = moscomprofilerHTML::selectList( $gtree2, 'usergroups', 'size="4" MULTIPLE onblur="loadUGIDs(this);" mosReq=1 mosLabel="User Groups"', 'value', 'text', $ugids,1 ); $database->setQuery( "SELECT f.fieldid, f.title" /* . "\n, u.email"*/ . "\nFROM #__comprofiler_fields AS f" /* . "\nLEFT JOIN #__users AS u ON u.id = f.user_id"*/ . "\nWHERE f.published = 1 AND f.profile=1" . "\n ORDER BY f.ordering" ); //echo $database->getQuery(); $field = $database->loadObjectList(); $fields = array(); //print_r(array_values($field)); for ($i=0, $n=count( $field ); $i < $n; $i++) { $fieldvalue = array(); $fieldvalue =& $field[$i]; //print "fieldid = ".$fieldvalue->fieldid; $fields[$fieldvalue->title] = $fieldvalue->fieldid; } //print_r(array_values($fields)); HTML_comprofiler::editList( $row, $lists,$fields, $option, $fid ); } function removeList( $cid, $option ) { global $database, $acl; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); if (!is_array( $cid ) || count( $cid ) < 1) { echo "\n"; exit; } $msg = ''; if (count( $cid )) { $obj = new moscomprofilerLists( $database ); foreach ($cid as $id) { $obj->delete( $id ); } } //if($msg!='') echo "\n"; mosRedirect( "index2.php?option=$option&task=showLists", $msg ); } function orderLists( $lid, $inc, $option ) { global $database; $row = new moscomprofilerLists( $database ); $row->load( $lid ); $row->move( $inc ); mosRedirect( "index2.php?option=$option&task=showLists" ); } function showField( $option ) { global $database, $mainframe, $my, $acl,$_POST,$mosConfig_list_limit; if(!isset($mosConfig_list_limit)) $limit = 10; else $limit=$mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $limit ); $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); if($_POST['task']=='showField') { $search = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' ); $search = $database->getEscaped( trim( strtolower( $search ) ) ); } $where = array(); $where[] = "(f.sys = 0)"; if (isset( $search ) && $search!= "") { $where[] = "(f.name LIKE '%$search%' OR f.type LIKE '%$search%')"; } $database->setQuery( "SELECT COUNT(*)" . "\nFROM #__comprofiler_fields AS f" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") ); $total = $database->loadResult(); echo $database->getErrorMsg(); require_once("includes/pageNavigation.php"); $pageNav = new mosPageNav( $total, $limitstart, $limit ); $where[] = "(f.tabid = t.tabid)"; $database->setQuery( "SELECT f.fieldid, f.title, f.name, f.type, f.required, f.published, f.profile, f.ordering, f.registration, t.title AS 'tab'" . "\nFROM #__comprofiler_fields AS f, #__comprofiler_tabs AS t" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") . "\n ORDER BY t.ordering, f.ordering" . "\nLIMIT $pageNav->limitstart, $pageNav->limit" ); $rows = $database->loadObjectList(); if ($database->getErrorNum()) { echo $database->stderr(); return false; } HTML_comprofiler::showFields( $rows, $pageNav, $search, $option ); } function editField( $fid='0', $option='com_comprofiler' ) { global $database, $my, $acl; $row = new moscomprofilerFields( $database ); // load the row from the db table $row->load( $fid ); $tabs = $database->setQuery("SELECT tabid, title FROM #__comprofiler_tabs ORDER BY title"); $tabs = $database->loadObjectList(); $lists = array(); $tablist = array(); for ($i=0, $n=count( $tabs ); $i < $n; $i++) { $tab =& $tabs[$i]; $tablist[] = mosHTML::makeOption( $tab->tabid, getLangDefinition($tab->title) ); } $lists['tabs'] = mosHTML::selectList( $tablist, 'tabid', 'class="inputbox" size="1" mosReq=1 mosLabel="Tab"', 'value', 'text', $row->tabid ); $types = array(); $types[] = mosHTML::makeOption( 'checkbox', 'Check Box' ); $types[] = mosHTML::makeOption( 'date', 'Date' ); $types[] = mosHTML::makeOption( 'select', 'Drop Down' ); $types[] = mosHTML::makeOption( 'emailaddress', 'Email Address' ); //$types[] = mosHTML::makeOption( 'password', 'Password Field' ); $types[] = mosHTML::makeOption( 'editorta', 'Editor Text Area' ); $types[] = mosHTML::makeOption( 'textarea', 'Text Area' ); $types[] = mosHTML::makeOption( 'text', 'Text Field' ); $types[] = mosHTML::makeOption( 'radio', 'Radio Button' ); $types[] = mosHTML::makeOption( 'webaddress', 'Web Address' ); $fvalues = $database->setQuery( "SELECT fieldtitle " . "\n FROM #__comprofiler_field_values" . "\n WHERE fieldid=$fid" . "\n ORDER BY ordering" ); $fvalues = $database->loadObjectList(); $lists['type'] = mosHTML::selectList( $types, 'type', 'class="inputbox" size="1" onchange="selType(this.options[this.selectedIndex].value);"', 'value', 'text', $row->type ); $lists['required'] = mosHTML::yesnoSelectList( 'required', 'class="inputbox" size="1"', $row->required ); $lists['published'] = mosHTML::yesnoSelectList( 'published', 'class="inputbox" size="1"', $row->published ); $lists['readonly'] = mosHTML::yesnoSelectList( 'readonly', 'class="inputbox" size="1"', $row->readonly ); $lists['profile'] = mosHTML::yesnoSelectList( 'profile', 'class="inputbox" size="1"', $row->profile ); $lists['registration'] = mosHTML::yesnoSelectList( 'registration', 'class="inputbox" size="1"', $row->registration ); HTML_comprofiler::editfield( $row, $lists, $fvalues, $option, $fid ); } function saveField( $option ) { global $database, $my, $_POST; global $mosConfig_live_site; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); $row = new moscomprofilerFields( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } if ($row->type == 'textarea') $row->maxlength = $_POST['maxlength2']; if($_POST['oldtabid'] != $_POST['tabid']) { //Re-order old tab $sql="UPDATE #__comprofiler_fields SET ordering = ordering-1 WHERE ordering > ".$_POST['ordering']." AND tabid = ".$_POST['oldtabid']." "; $database->setQuery($sql); $database->loadResult(); //print $database->getquery(); //Select Last Order in New Tab $sql="Select max(ordering) from #__comprofiler_fields WHERE tabid=".$_POST['tabid']; $database->SetQuery($sql); $max = $database->LoadResult(); $row->ordering=$max+1; } mosMakeHtmlSafe($row); $row->name = str_replace(" ", "", strtolower($row->name)); if (!$row->check()) { echo "\n"; exit(); } if (!$row->store()) { echo "\n"; exit(); } $fieldValues = array(); $fieldNames = array(); $fieldNames=$_POST['vNames']; $j=1; if($row->fieldid > 0) { $database->setQuery( "DELETE FROM #__comprofiler_field_values" . " WHERE fieldid='$row->fieldid'" ); if(!$database->loadResult()) echo $database->getErrorMsg(); } else { $database->setQuery( "SELECT MAX(fieldid) FROM #__comprofiler_fields"); $maxID=$database->loadResult(); $row->fieldid=$maxID; echo $database->getErrorMsg(); } //for($i=0, $n=count( $fieldNames ); $i < $n; $i++) { foreach ($fieldNames as $fieldName) { if(trim($fieldName)!=null || trim($fieldName)!='') { $database->setQuery( "INSERT INTO #__comprofiler_field_values (fieldid,fieldtitle,ordering)" . " VALUES('$row->fieldid','".addslashes(htmlspecialchars($fieldName))."',$j)" ); if(!$database->loadResult()) echo $database->getErrorMsg(); $j++; } } $limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); mosRedirect( "index2.php?option=$option&task=showField" ); } function removeField( $cid, $option ) { global $database, $acl; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); if (!is_array( $cid ) || count( $cid ) < 1) { echo "\n"; exit; } $msg = ''; if (count( $cid )) { $obj = new moscomprofilerFields( $database ); foreach ($cid as $id) { $obj->load($id); $database->setQuery("SELECT COUNT(*) FROM #__comprofiler_lists". " WHERE col1fields like '%|*|$id' OR col1fields like '$id|*|%' OR col1fields like '%|*|$id|*|%' OR col1fields='$id'". " OR col2fields like '%|*|$id' OR col2fields like '$id|*|%' OR col2fields like '%|*|$id|*|%' OR col2fields='$id'". " OR col3fields like '%|*|$id' OR col3fields like '$id|*|%' OR col3fields like '%|*|$id|*|%' OR col3fields='$id'". " OR col4fields like '%|*|$id' OR col4fields like '$id|*|%' OR col4fields like '%|*|$id|*|%' OR col4fields='$id'"); $onList = $database->loadResult(); if($onList > 0) { $msg .= getLangDefinition($obj->title) . " cannot be deleted because it is on a List. \n"; $noDelete = 1; } if($obj->sys==1) { $msg .= getLangDefinition($obj->title) ." cannot be deleted because it is a system field. \n"; $noDelete = 1; } if($noDelete != 1) { $obj->deleteColumn('#__comprofiler',$obj->name); $obj->delete( $id ); $sql="UPDATE #__comprofiler_fields SET ordering = ordering-1 WHERE ordering > ".$obj->ordering." AND tabid = ".$obj->tabid." "; $database->setQuery($sql); $database->loadResult(); //print $database->getquery(); } $noDelete = 0; } } //if($msg!='') echo "\n"; mosRedirect( "index2.php?option=$option&task=showField", $msg ); } function orderFields( $fid, $inc, $option ) { global $database; $row = new moscomprofilerFields( $database ); $row->load( $fid ); $row->move( $inc ); mosRedirect( "index2.php?option=$option&task=showField" ); } function showTab( $option ) { global $database, $mainframe, $my, $acl,$mosConfig_list_limit; if(!isset($mosConfig_list_limit)) $limit = 10; else $limit=$mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $limit ); $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); if($_POST['task']=='showTab') { $search = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' ); $search = $database->getEscaped( trim( strtolower( $search ) ) ); } $where = array(); if (isset( $search ) && $search!= "") { $where[] = "(title LIKE '%$search%')"; } $database->setQuery( "SELECT COUNT(*)" . "\nFROM #__comprofiler_tabs AS a" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") ); $total = $database->loadResult(); echo $database->getErrorMsg(); require_once("includes/pageNavigation.php"); $pageNav = new mosPageNav( $total, $limitstart, $limit ); $database->setQuery( "SELECT * " . "\nFROM #__comprofiler_tabs AS a" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") . "\n ORDER BY ordering" . "\nLIMIT $pageNav->limitstart, $pageNav->limit" ); $rows = $database->loadObjectList(); if ($database->getErrorNum()) { echo $database->stderr(); return false; } HTML_comprofiler::showTabs( $rows, $pageNav, $search, $option ); } function editTab( $tid='0', $option='com_comprofiler' ) { global $database, $my, $acl; $row = new moscomprofilerTabs( $database ); // load the row from the db table $row->load( $tid ); $width = array(); $width[] = mosHTML::makeOption( '.5', 'Half Row' ); $width[] = mosHTML::makeOption( '1', 'Full Row' ); $lists = array(); $lists['width'] = mosHTML::selectList( $width, 'width', 'class="inputbox" size="1"', 'value', 'text', $row->width ); $lists['enabled'] = mosHTML::yesnoSelectList( 'enabled', 'class="inputbox" size="1"', $row->enabled ); HTML_comprofiler::edittab( $row, $option, $lists, $tid ); } function saveTab( $option ) { global $database, $my; global $mosConfig_live_site; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); $row = new moscomprofilerTabs( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } mosMakeHtmlSafe($row); if (!$row->check()) { echo "\n"; exit(); } if (!$row->store()) { echo "\n"; exit(); } $row->checkin(); $limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); mosRedirect( "index2.php?option=$option&task=showTab" ); } function removeTabs( $cid, $option ) { global $database, $acl; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); if (!is_array( $cid ) || count( $cid ) < 1) { echo "\n"; exit; } $msg = ''; if (count( $cid )) { $obj = new moscomprofilerTabs( $database ); foreach ($cid as $id) { $database->setQuery("SELECT COUNT(*) FROM #__comprofiler_fields WHERE tabid='$id'"); $onField = $database->loadResult(); if($onField==0) { $obj->delete( $id ); $msg .= $obj->getError(); } else { $msg .= "This tab is being referenced by an existing field and cannot be deleted!"; } } } $limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); mosRedirect( "index2.php?option=$option&task=showTab", $msg ); } function orderTabs( $tid, $inc, $option ) { global $database; $row = new moscomprofilerTabs( $database ); $row->load( $tid ); $row->move( $inc ); mosRedirect( "index2.php?option=$option&task=showTab" ); } function showUsers( $option ) { global $database, $mainframe, $my, $acl,$mosConfig_list_limit,$_POST; if(!isset($mosConfig_list_limit)) $limit = 10; else $limit=$mosConfig_list_limit; $limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $limit ); $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 ); if($_POST['task']=='showusers') { $search = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' ); $search = $database->getEscaped( trim( strtolower( $search ) ) ); } $where = array(); if (isset( $search ) && $search!= "") { $where[] = "(username LIKE '%$search%' OR email LIKE '%$search%' OR a.name LIKE '%$search%')"; } // exclude any child group id's for this user //$acl->_debug = true; $pgids = $acl->get_group_children( $my->gid, 'ARO', 'RECURSE' ); if (is_array( $pgids ) && count( $pgids ) > 0) { $where[] = "(a.gid NOT IN (" . implode( ',', $pgids ) . "))"; } $database->setQuery( "SELECT COUNT(*)" . "\nFROM #__users AS a" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") ); $total = $database->loadResult(); echo $database->getErrorMsg(); require_once("includes/pageNavigation.php"); $pageNav = new mosPageNav( $total, $limitstart, $limit ); $database->setQuery( "SELECT a.*, g.name AS groupname, s.userid AS loggedin,ue.approved,ue.confirmed" . "\nFROM #__users AS a" . "\nLEFT JOIN #__comprofiler AS ue ON a.id = ue.id" . "\nINNER JOIN #__core_acl_aro AS aro ON aro.value = a.id" // map user to aro . "\nINNER JOIN #__core_acl_groups_aro_map AS gm ON gm.aro_id = aro.aro_id" // map aro to group . "\nINNER JOIN #__core_acl_aro_groups AS g ON g.group_id = gm.group_id" . "\n LEFT JOIN #__session AS s ON s.userid = a.id" . (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "") //. "\nGROUP BY usertype,username" //. "\nORDER BY usertype" . "\nLIMIT $pageNav->limitstart, $pageNav->limit" ); $rows = $database->loadObjectList(); if ($database->getErrorNum()) { echo $database->stderr(); return false; } HTML_comprofiler::showUsers( $rows, $pageNav, $search, $option ); } function editUser( $uid='0', $option='users' ) { global $database, $my, $acl,$ueConfig; $row = new mosUser( $database ); // load the row from the db table $row->load( $uid ); $row->orig_password = $row->password; $database->setQuery( "SELECT * FROM #__comprofiler" . "\n WHERE id='$uid'"); $rowExtras = $database->loadObjectList(); $rowExtras = $rowExtras[0]; $database->setQuery( "SELECT t.title as 'tab', f.* FROM #__comprofiler_fields f, #__comprofiler_tabs t" . "\n WHERE t.tabid = f.tabid AND f.published=1 AND t.enabled=1" . "\n ORDER BY t.ordering, f.ordering" ); $rowFields = $database->loadObjectList(); $rowFieldValues=array(); $fieldJS=' '; for($i=0, $n=count( $rowFields ); $i < $n; $i++) { $k = "\$rowExtras->".$rowFields[$i]->name; eval("\$k = \"$k\";"); if($rowFields[$i]->type=='editorta') { ob_start(); getEditorContents( 'editor'.$rowFields[$i]->name, $rowFields[$i]->name ) ; $fieldJS .= ob_get_contents(); ob_end_clean(); } $database->setQuery( "SELECT fieldtitle FROM #__comprofiler_field_values" . "\n WHERE fieldid = ".$rowFields[$i]->fieldid . "\n ORDER BY ordering" ); $Values = $database->loadObjectList(); if($ueConfig['adminrequiredfields']==1) $adminReq=$rowFields[$i]->required; else $adminReq=0; if(count($Values) > 0) { if($rowFields[$i]->type=='radio') $rowFieldValues['lst_'.$rowFields[$i]->name] = moscomprofilerHTML::radioList( $Values, $rowFields[$i]->name, 'class="inputbox" size="1" mosReq="'.$adminReq.'" mosLabel="'.getLangDefinition($rowFields[$i]->title).'"', 'fieldtitle', 'fieldtitle', $k); else $rowFieldValues['lst_'.$rowFields[$i]->name] = moscomprofilerHTML::selectList( $Values, $rowFields[$i]->name, 'class="inputbox" size="1" mosReq="'.$adminReq.'" mosLabel="'.getLangDefinition($rowFields[$i]->title).'"', 'fieldtitle', 'fieldtitle', $k); } } $lists = array(); $my_group = strtolower( $acl->get_group_name( $row->gid, 'ARO' ) ); if ($my_group == 'super administrator') { $lists['gid'] = "gid\" />Super Administrator"; } else { // ensure user can't add group higher than themselves $my_groups = $acl->get_object_groups( 'users', $my->id, 'ARO' ); if (is_array( $my_groups ) && count( $my_groups ) > 0) { $ex_groups = $acl->get_group_children( $my_groups[0], 'ARO', 'RECURSE' ); } else { $ex_groups = array(); } $gtree = $acl->get_group_children_tree( null, 'USERS', false ); // remove users 'above' me $i = 0; while ($i < count( $gtree )) { if (in_array( $gtree[$i]->value, $ex_groups )) { array_splice( $gtree, $i, 1 ); } else { $i++; } } $lists['gid'] = mosHTML::selectList( $gtree, 'gid', 'size="4" mosReq=0', 'value', 'text', $row->gid ); } // make the select list for yes/no fields $yesno[] = mosHTML::makeOption( '0', 'No' ); $yesno[] = mosHTML::makeOption( '1', 'Yes' ); // build the html select list $lists['block'] = mosHTML::yesnoSelectList( 'block', 'class="inputbox" size="1"', $row->block ); $lists['approved'] = mosHTML::yesnoSelectList( 'approved', 'class="inputbox" size="1"', $rowExtras->approved ); $lists['confirmed'] = mosHTML::yesnoSelectList( 'confirmed', 'class="inputbox" size="1"', $rowExtras->confirmed ); // build the html select list $lists['sendEmail'] = mosHTML::yesnoSelectList( 'sendEmail', 'class="inputbox" size="1"', $row->sendEmail ); HTML_comprofiler::edituser( $row,$rowExtras, $rowFields, $rowFieldValues, $lists, $option, $uid,$fieldJS ); } function saveUser( $option ) { global $database, $my; global $mosConfig_live_site,$_POST,$ueConfig; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); $row = new mosUser( $database ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } $isNew = !$row->id; $pwd = ''; if ($isNew) { // new user stuff if ($row->password == '') { $pwd = mosMakePassword(); $row->password = md5( $pwd ); } else { $pwd = $row->password; $row->password = md5( $row->password ); } $row->registerDate = date("Y-m-d H:i:s"); } else { // existing user stuff if ($row->password == '') { // password set to null if empty $row->password = null; } else { $row->password = md5( $row->password ); } } SWITCH ($ueConfig['name_style']) { case 2: $row->name = $_POST['firstname'] . ' ' . $_POST['lastname']; break; case 3: if(isset($_POST['middlename'])) $row->name = $_POST['firstname'] . ' ' . $_POST['middlename']. ' ' . $_POST['lastname']; else $row->name = $_POST['firstname']. ' ' . $_POST['lastname']; break; } mosMakeHtmlSafe($row); if (!$row->check()) { echo "\n"; exit(); } if (!$row->store()) { echo "\n"; exit(); } $sqlFormat = "Y-m-d"; $selFields = ''; $database->setQuery( "SELECT f.* FROM #__comprofiler_fields f, #__comprofiler_tabs t" . "\n WHERE f.published=1 and f.tabid = t.tabid AND t.enabled=1" ); $rowFields = $database->loadObjectList(); if(!$_POST['id'] > 0) { $database->setQuery("SELECT id FROM #__users WHERE username = '".$_POST['username']."'"); $uid = $database->loadResult(); $sqlType = 'I'; } else { $uid = $row->id; $sqlType = 'U'; } $colList = "`id`, `user_id`, `approved`, `confirmed`, `firstname`, `middlename`, `lastname`"; $valueList = "'$uid','$uid','".$_POST['approved']."','".$_POST['confirmed']."','".$_POST['firstname']."','".$_POST['middlename']."','".$_POST['lastname']."'"; if(count($rowFields) > 0) { for($i=0, $n=count( $rowFields ); $i < $n; $i++) { if($i > 0) $selFields .=", "; switch($rowFields[$i]->type) { CASE 'date': $selFields .= "`".$rowFields[$i]->name."`='".dateConverter($_POST[$rowFields[$i]->name],$ueConfig[date_format],$sqlFormat)."' "; $colList .= ", `".$rowFields[$i]->name."`"; $valueList .= ", '".dateConverter($_POST[$rowFields[$i]->name],$ueConfig[date_format],$sqlFormat)."'"; break; CASE 'webaddress': CASE 'emailaddress': $selFields .= "`".$rowFields[$i]->name."`='".htmlspecialchars(addslashes(str_replace(array('mailto:','http://','https://'),'',strtolower($_POST[$rowFields[$i]->name]))))."' "; $colList .= ", `".$rowFields[$i]->name."`"; $valueList .= ", '".htmlspecialchars(addslashes(str_replace(array('mailto:','http://','https://'),'',strtolower($_POST[$rowFields[$i]->name]))))."'"; break; CASE 'editorta': $selFields .= "`".$rowFields[$i]->name."`='".addslashes($_POST[$rowFields[$i]->name])."' "; $colList .= ", `".$rowFields[$i]->name."`"; $valueList .= ", '".addslashes($_POST[$rowFields[$i]->name])."'"; break; DEFAULT: $selFields .= "`".$rowFields[$i]->name."`='".addslashes($_POST[$rowFields[$i]->name])."' "; $colList .= ", `".$rowFields[$i]->name."`"; $valueList .= ", '".htmlspecialchars(addslashes($_POST[$rowFields[$i]->name]))."'"; break; } } $selFields .= ", `lastupdatedate`='".date('Y-m-d\TH:i:s')."', `confirmed`='".$_POST['confirmed']."', `approved`='".$_POST['approved']."', `firstname`='".$_POST['firstname']."', `middlename`='".$_POST['middlename']."', `lastname`='".$_POST['lastname']."'"; if($sqlType == 'U') $sql = "UPDATE #__comprofiler SET ".stripslashes($selFields)." WHERE `id`='".$row->id."'"; else $sql = "INSERT INTO #__comprofiler (".stripslashes($colList).") VALUES (".stripslashes($valueList).")"; $database->setQuery( $sql ); //print $database->getquery(); if (!$database->query()) { die("SQL error" . $database->stderr(true)); } } // update the ACL if ($isNew) { } else { $database->setQuery( "SELECT aro_id FROM #__core_acl_aro WHERE value='$row->id'" ); $aro_id = $database->loadResult(); $database->setQuery( "UPDATE #__core_acl_groups_aro_map" . "\nSET group_id = '$row->gid'" . "\nWHERE aro_id = '$aro_id'" ); $database->query() or die( $database->stderr() ); } $row->checkin(); if ($isNew) { //TODO: Add emails configuration code. $database->setQuery( "SELECT email FROM #__users WHERE id=$my->id" ); $adminEmail = $database->loadResult(); $subject = "New User Details"; $message = "Hello $row->name,\r \n \r \n"; $message .= "You have been added as a user to $mosConfig_live_site by an Administrator.\r \n"; $message .= "This email contains your username and password to log into the $mosConfig_live_site site:\r \n \r \n"; $message .= "Username - $row->username\r \n"; $message .= "Password - $pwd\r \n \r \n \r \n"; $message .= "Please do not respond to this message as it is automatically generated and is for information purposes only\r \n"; $headers .= "From: $adminEmail\r\n"; $headers .= "Reply-To: $adminEmail\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-MSMail-Priority: Low\r\n"; $headers .= "X-Mailer: Mambo Open Source 4.5\r\n"; mail( $row->email, $subject, $message, $headers ); } $limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); mosRedirect( "index2.php?option=$option&task=showusers" ); } function removeUsers( $cid, $option ) { global $database, $acl; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); if (!is_array( $cid ) || count( $cid ) < 1) { echo "\n"; exit; } $msg = ''; if (count( $cid )) { $obj = new mosUser( $database ); $obj2 = new moscomprofiler( $database ); foreach ($cid as $id) { // check for a super admin ... can't delete them $groups = $acl->get_object_groups( 'users', $id, 'ARO' ); $this_group = strtolower( $acl->get_group_name( $groups[0], 'ARO' ) ); if ($this_group == 'super administrator') { $msg .= "You cannot delete a Super Administrator"; } else { $obj->delete( $id ); $obj2->delete( $id ); $msg .= $obj->getError(); $msg .= $obj2->getError(); } } } $limit = intval( mosGetParam( $_REQUEST, 'limit', 10 ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); mosRedirect( "index2.php?option=$option&task=showusers", $msg ); } /** * Blocks or Unblocks one or more user records * @param array An array of unique category id numbers * @param integer 0 if unblock, 1 if blocking * @param string The current url option */ function changeUserBlock( $cid=null, $block=1, $option ) { global $database, $my; if (count( $cid ) < 1) { $action = $block ? 'block' : 'unblock'; echo "\n"; exit; } $cids = implode( ',', $cid ); $database->setQuery( "UPDATE #__users SET block='$block'" . "\nWHERE id IN ($cids)" ); if (!$database->query()) { echo "\n"; exit(); } mosRedirect( "index2.php?option=$option&task=showusers" ); } function is_email($email){ $rBool=false; if(preg_match("/[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}/", $email)){ $rBool=true; } return $rBool; } function showConfig( $option ) { global $database,$ueConfig,$acl,$my; global $mosConfig_lang; $configfile = "components/com_comprofiler/ue_config.php"; @chmod ($configfile, 0766); $permission = is_writable($configfile); if (!$permission) { echo "

Warning...


"; echo "Your config file is /administrator/$configfile
"; echo "You need to chmod this to 766 in order for the config to be updated


"; } //include_once( $configfile ); $lists = array(); // make a standard yes/no list $yesno = array(); $yesno[] = mosHTML::makeOption( '0', _UE_NO ); $yesno[] = mosHTML::makeOption( '1', _UE_YES ); $mypms[] = mosHTML::makeOption( '0', _UE_NO ); $mypms[] = mosHTML::makeOption( '1', 'Open Source' ); $mypms[] = mosHTML::makeOption( '2', 'PRO' ); $dateformats = array(); $dateformats[] = mosHTML::makeOption('Y/m/d','yyyy/mm/dd'); $dateformats[] = mosHTML::makeOption('d/m/y','dd/mm/yy'); $dateformats[] = mosHTML::makeOption('y/m/d','yy/mm/dd'); $dateformats[] = mosHTML::makeOption('d/m/Y','dd/mm/yyyy'); $dateformats[] = mosHTML::makeOption('m/d/y','mm/dd/yy'); $dateformats[] = mosHTML::makeOption('m/d/Y','mm/dd/yyyy'); $dateformats[] = mosHTML::makeOption('Y-m-d','yyyy-mm-dd'); $dateformats[] = mosHTML::makeOption('d-m-y','dd-mm-yy'); $dateformats[] = mosHTML::makeOption('y-m-d','yy-mm-dd'); $dateformats[] = mosHTML::makeOption('d-m-Y','dd-mm-yyyy'); $dateformats[] = mosHTML::makeOption('m-d-y','mm-dd-yy'); $dateformats[] = mosHTML::makeOption('m-d-Y','mm-dd-yyyy'); $dateformats[] = mosHTML::makeOption('Y.m.d','yyyy.mm.dd'); $dateformats[] = mosHTML::makeOption('d.m.y','dd.mm.yy'); $dateformats[] = mosHTML::makeOption('y.m.d','yy.mm.dd'); $dateformats[] = mosHTML::makeOption('d.m.Y','dd.mm.yyyy'); $dateformats[] = mosHTML::makeOption('m.d.y','mm.dd.yy'); $dateformats[] = mosHTML::makeOption('m.d.Y','mm.dd.yyyy'); $nameformats = array(); $nameformats[] = mosHTML::makeOption('1','Name Only'); $nameformats[] = mosHTML::makeOption('2','Name (username)'); $nameformats[] = mosHTML::makeOption('3','Username Only'); $nameformats[] = mosHTML::makeOption('4','Username (Name)'); $namestyles = array(); $namestyles[] = mosHTML::makeOption('1','Single Name Field'); $namestyles[] = mosHTML::makeOption('2','First and Last Name Field'); $namestyles[] = mosHTML::makeOption('3','First, Middle, and Last Name Field'); $emailhandling = array(); $emailhandling[] = mosHTML::makeOption('1','Display Email Only'); $emailhandling[] = mosHTML::makeOption('2','Display Email w/ MailTo link'); $emailhandling[] = mosHTML::makeOption('3','Display Link to Email Form'); $emailhandling[] = mosHTML::makeOption('4','Do Not Display Email'); // ensure user can't add group higher than themselves $my_groups = $acl->get_object_groups( 'users', $my->id, 'ARO' ); //print_r($my_groups); if (is_array( $my_groups ) && count( $my_groups ) > 0) { $ex_groups = $acl->get_group_children( $my_groups[0], 'ARO', 'RECURSE' ); } else { $ex_groups = array(); } //print_r($ex_groups); $gtree = $acl->get_group_children_tree( null, 'USERS', false ); // remove users 'above' me $i = 0; while ($i < count( $gtree )) { if (in_array( $gtree[$i]->value, $ex_groups )) { array_splice( $gtree, $i, 1 ); } else { $i++; } } $gtree2=array(); $gtree2[] = mosHTML::makeOption( -2 , '- Everybody -' ); $gtree2[] = mosHTML::makeOption( -1, '- All Registered Users -' ); $gtree2 = array_merge( $gtree2, $acl->get_group_children_tree( null, 'USERS', false )); //print_r($gtree); if($my_groups[0] >= $ueConfig['imageApproverGid']) { $lists['imageApproverGid'] = mosHTML::selectList( $gtree, 'cfg_imageApproverGid', 'size="4"', 'value', 'text', $ueConfig['imageApproverGid'] ); } else { $lists['imageApproverGid']="".$acl->get_group_name($ueConfig['imageApproverGid'])."\n"; } $lists['allow_profileviewbyGID']=mosHTML::selectList( $gtree2, 'cfg_allow_profileviewbyGID', 'size="4"', 'value', 'text', $ueConfig['allow_profileviewbyGID'] ); $lists['allow_listviewbyGID']=mosHTML::selectList( $gtree2, 'cfg_allow_listviewbyGID', 'size="4"', 'value', 'text', $ueConfig['allow_listviewbyGID'] ); // registered users only $lists['allow_email_display'] = mosHTML::selectList( $emailhandling, 'cfg_allow_email_display', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_email_display'] ); $lists['name_format'] = mosHTML::selectList($nameformats, 'cfg_name_format','class="inputbox" size="1"', 'value', 'text', $ueConfig['name_format'] ); $lists['name_style'] = mosHTML::selectList($namestyles, 'cfg_name_style','class="inputbox" size="1"', 'value', 'text', $ueConfig['name_style'] ); $lists['date_format'] = mosHTML::selectList($dateformats, 'cfg_date_format','class="inputbox" size="1"', 'value', 'text', $ueConfig['date_format'] ); $lists['usernameedit'] = mosHTML::selectList( $yesno, 'cfg_usernameedit', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['usernameedit'] ); $lists['allow_profilelink'] = mosHTML::selectList( $yesno, 'cfg_allow_profilelink', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_profilelink'] ); $lists['allow_email'] = mosHTML::selectList( $yesno, 'cfg_allow_email', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_email'] ); $lists['allow_im'] = mosHTML::selectList( $yesno, 'cfg_allow_im', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_im'] ); $lists['allow_onlinestatus'] = mosHTML::selectList( $yesno, 'cfg_allow_onlinestatus', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_onlinestatus'] ); $lists['allow_website'] = mosHTML::selectList( $yesno, 'cfg_allow_website', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_website'] ); $lists['allow_email_usercontr'] = mosHTML::selectList( $yesno, 'cfg_allow_email_usercontr', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allow_email_usercontr'] ); $lists['reg_enable_toc'] = mosHTML::selectList( $yesno, 'cfg_reg_enable_toc', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['reg_enable_toc'] ); $lists['admin_approval'] = mosHTML::selectList( $yesno, 'cfg_reg_admin_approval', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['reg_admin_approval'] ); $lists['confirmation'] = mosHTML::selectList( $yesno, 'cfg_reg_confirmation', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['reg_confirmation'] ); $lists['allowsubscriptions'] = mosHTML::selectList( $yesno, 'cfg_allowsubscriptions', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowsubscriptions'] ); $lists['allowAvatar'] = mosHTML::selectList( $yesno, 'cfg_allowAvatar', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowAvatar'] ); $lists['allowAvatarUpload'] = mosHTML::selectList( $yesno, 'cfg_allowAvatarUpload', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowAvatarUpload'] ); $lists['allowAvatarGallery'] = mosHTML::selectList( $yesno, 'cfg_allowAvatarGallery', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowAvatarGallery'] ); $lists['avatarUploadApproval'] = mosHTML::selectList( $yesno, 'cfg_avatarUploadApproval', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['avatarUploadApproval'] ); $lists['rte'] = mosHTML::selectList( $yesno, 'cfg_rte', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['rte'] ); $lists['pms'] = mosHTML::selectList( $mypms, 'cfg_pms', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['pms'] ); $lists['allowUserReports'] = mosHTML::selectList( $yesno, 'cfg_allowUserReports', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowUserReports'] ); $lists['allowUserBanning'] = mosHTML::selectList( $yesno, 'cfg_allowUserBanning', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowUserBanning'] ); $lists['autoImageResize'] = mosHTML::selectList( $yesno, 'cfg_autoImageResize', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['autoImageResize'] ); $lists['adminrequiredfields'] = mosHTML::selectList( $yesno, 'cfg_adminrequiredfields', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['adminrequiredfields'] ); $lists['moderatorEmail'] = mosHTML::selectList( $yesno, 'cfg_moderatorEmail', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['moderatorEmail'] ); $lists['allowModUserApproval'] = mosHTML::selectList( $yesno, 'cfg_allowModUserApproval', 'class="inputbox" size="1"', 'value', 'text', $ueConfig['allowModUserApproval'] ); HTML_comprofiler::showConfig( $ueConfig, $lists, $option ); } function saveConfig ( $option ) { //Add code to check if config file is writeable. $configfile = "components/com_comprofiler/ue_config.php"; @chmod ($configfile, 0766); if (!is_writable($configfile)) { mosRedirect("index2.php?option=$option", "FATAL ERROR: Config File Not writeable" ); } $txt = "$v) { if (strpos( $k, 'cfg_' ) === 0) { if (!get_magic_quotes_gpc()) { $v = addslashes( $v ); } $txt .= "\$ueConfig['".substr( $k, 4 )."']='$v';\n"; } } $txt .= "?>"; if ($fp = fopen( $configfile, "w")) { fputs($fp, $txt, strlen($txt)); fclose ($fp); mosRedirect( "index2.php?option=$option&task=showconfig", "Configuration file saved" ); } else { mosRedirect( "index2.php?option=$option", "FATAL ERROR: File could not be opened." ); } } function approveUser( $cid=null, $approved=1, $option ) { global $database, $my, $ueConfig,$mosConfig_emailpass; include_once( "components/com_comprofiler/ue_config.php" ); include_once ("components/com_comprofiler/comprofiler.class.php"); if (count( $cid ) < 1) { $action = $approved ? 'Approve' : 'Reject'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler SET approved='$approved' WHERE id = '$cids'"); if ($database->query()) { if($approved==1) { $row = new mosUser( $database ); $row->load( $cids ); if($mosConfig_emailpass == "1") { $pwd = makePass(); $row->password = $pwd; $pwd=md5($pwd); $database->setQuery( "UPDATE #__users SET password='$pwd' WHERE id = '$cids'"); $database->query(); createEmail($row, 'welcome', $ueConfig,null,1); } else { createEmail($row, 'welcome', $ueConfig,null,0); } } } } mosRedirect( "index2.php?option=$option&task=showusers" ); } function requiredField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Make Required' : 'Make Non-required'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_fields SET required='$flag' WHERE fieldid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showField" ); } function publishField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Publish' : 'UnPublish'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_fields SET published='$flag' WHERE fieldid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showField" ); } function registrationField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Add to Registration' : 'Remove from Registration'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_fields SET registration='$flag' WHERE fieldid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showField" ); } function listPublishedField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Publish' : 'UnPublish'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_lists SET published='$flag' WHERE listid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showLists" ); } function listDefaultField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Make Default' : 'Reset Default'; echo "\n"; exit; } $cids = implode( ',', $cid ); if($flag==1) $published = ", published='1'"; foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_lists SET `default`='0'"); $database->query(); $database->setQuery( "UPDATE #__comprofiler_lists SET `default`='$flag' $published WHERE listid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showLists" ); } function profileField( $cid=null, $flag=1, $option ) { global $database, $my, $ueConfig; if (count( $cid ) < 1) { $action = $flag ? 'Add to Profile' : 'Remove from Profile'; echo "\n"; exit; } $cids = implode( ',', $cid ); foreach ($cid AS $cids) { $database->setQuery( "UPDATE #__comprofiler_fields SET profile='$flag' WHERE fieldid = '$cids'"); $database->query(); //print $database->getquery(); } mosRedirect( "index2.php?option=$option&task=showField" ); } function makePass(){ $makepass=""; $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $makepass = $makepass . $tmp; $i++; } return ($makepass); } function loadSampleData() { global $database, $my, $ueConfig; $sql="SELECT COUNT(*) FROM #__comprofiler_fields" ."\n WHERE name IN ('website','location','occupation','interests','company','address','city','state','zipcode','country','phone','fax')"; $database->setQuery($sql); $fieldCount=$database->loadresult(); IF($fieldCount < 1) { $sqlStatements = array(); $sqlStatements[0]['query'] = "INSERT IGNORE INTO `#__comprofiler_tabs` (`tabid`, `title`, `ordering`, `sys`) " ."\n VALUES (2, 'Additional Info', 1, 0)"; $sqlStatements[0]['message'] = "Tab Added Successfully!
"; $sqlStatements[1]['query'] = "ALTER TABLE `#__comprofiler` ADD `website` varchar(255) default NULL," ."\n ADD `location` varchar(255) default NULL," ."\n ADD `occupation` varchar(255) default NULL," ."\n ADD `interests` varchar(255) default NULL," ."\n ADD `company` varchar(255) default NULL," ."\n ADD `address` varchar(255) default NULL," ."\n ADD `city` varchar(255) default NULL," ."\n ADD `state` varchar(255) default NULL," ."\n ADD `zipcode` varchar(255) default NULL," ."\n ADD `country` varchar(255) default NULL," ."\n ADD `phone` varchar(255) default NULL," ."\n ADD `fax` varchar(255) default NULL"; $sqlStatements[1]['message'] = "Schema Changes Added Successfully!
"; $sqlStatements[2]['query'] = "INSERT IGNORE INTO `#__comprofiler_fields` (`fieldid`, `name`, `table`, `title`, `type`, `maxlength`, `size`, `required`, `tabid`, `ordering`, `cols`, `rows`, `value`, `default`, `published`, `registration`, `profile`, `calculated`, `sys`) " ."\n VALUES (30, 'website', '#__comprofiler', '_UE_Website', 'webaddress', 0, 0, 0, 2, 1, 0, 0, NULL, NULL, 1, 0, 1, 0, 0)," ."\n (31, 'location', '#__comprofiler', '_UE_Location', 'text', 50, 25, 0, 2, 2, 0, 0, NULL, NULL, 1, 0, 1, 0, 0)," ."\n (32, 'occupation', '#__comprofiler', '_UE_Occupation', 'text', 0, 0, 0, 2, 3, 0, 0, NULL, NULL, 1, 0, 1, 0, 0)," ."\n (33, 'interests', '#__comprofiler', '_UE_Interests', 'text', 0, 0, 0, 2, 4, 0, 0, NULL, NULL, 1, 0, 1, 0, 0)," ."\n (34, 'company', '#__comprofiler', '_UE_Company', 'text', 0, 0, 0, 2, 5, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (35, 'city', '#__comprofiler', '_UE_City', 'text', 0, 0, 0, 2, 6, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (36, 'state', '#__comprofiler', '_UE_State', 'text', 2, 4, 0, 2, 7, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (37, 'zipcode', '#__comprofiler', '_UE_ZipCode', 'text', 0, 0, 0, 2, 8, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (38, 'country', '#__comprofiler', '_UE_Country', 'text', 0, 0, 0, 2, 9, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (40, 'address', '#__comprofiler', '_UE_Address', 'text', 0, 0, 0, 2, 10, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (43, 'phone', '#__comprofiler', '_UE_PHONE', 'text', 0, 0, 0, 2, 11, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)," ."\n (44, 'fax', '#__comprofiler', '_UE_FAX', 'text', 0, 0, 0, 2, 12, 0, 0, NULL, NULL, 1, 1, 1, 0, 0)"; $sqlStatements[2]['message'] = "Fields Added Successfully!
"; $sqlStatements[3]['query'] = "INSERT INTO `#__comprofiler_lists` (`listid`, `title`, `description`, `published`, `default`, `usergroupids`, `sortfields`, `col1title`, `col1enabled`, `col1fields`, `col2title`, `col2enabled`, `col1captions`, `col2fields`, `col2captions`, `col3title`, `col3enabled`, `col3fields`, `col3captions`, `col4title`, `col4enabled`, `col4fields`, `col4captions`) " ."\n VALUES (2, 'Members List', 'my Description', 1, 1, '29, 18, 19, 20, 21, 30, 23, 24, 25', '`username` ASC', 'Image', 1, '29', 'Name', 1, 0, '41', 0, 'Other', 1, '26|*|28|*|27', 1, '', 0, '', 0)"; $sqlStatements[3]['message'] = "List Added Successfully!
"; foreach ($sqlStatements AS $sql) { $database->setQuery($sql['query']); if (!$database->query()) { print("SQL error" . $database->stderr(true)."
"); return; } else { print $sql['message']; } //print $database->getquery(); } } else { print "Sample Data is already loaded!"; } } function syncUsers() { global $database, $my, $ueConfig; $sql="INSERT IGNORE INTO #__comprofiler(id,user_id) SELECT id,id FROM #__users"; $database->setQuery($sql); if (!$database->query()) { print("SQL error" . $database->stderr(true)."
"); } else { print "Mambo User Table and Mambo Community Builder User Table now in sync!"; } } function loadTools() { HTML_comprofiler::showTools(); } ?>