This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
MatritumCantat_Web/www/administrator/components/com_comprofiler/comprofiler.class.php
2012-09-18 20:02:43 +00:00

986 lines
30 KiB
PHP

<?php
/*************************************************************
* Mambo Community Builder
* Author MamboJoe
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
*************************************************************/
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
class moscomprofilerHTML extends mosHTML {
function radioList( &$arr, $tag_name, $tag_attribs, $key, $text, $selected ) {
reset( $arr );
$html = "";
for ($i=0, $n=count( $arr ); $i < $n; $i++ ) {
$k = stripslashes($arr[$i]->$key);
$t = stripslashes($arr[$i]->$text);
$id = @$arr[$i]->id;
$extra = '';
$extra .= $id ? " id=\"" . $arr[$i]->id . "\"" : '';
if (is_array( $selected )) {
foreach ($selected as $obj) {
$k2 = stripslashes($obj->$key);
if ($k == $k2) {
$extra .= " CHECKED";
break;
}
}
} else {
$extra .= ($k == stripslashes($selected) ? " CHECKED" : '');
}
$html .= "\n\t <input type=radio name=\"$tag_name\" $tag_attribs value=\"".$k."\"$extra> " . getLangDefinition($t);
}
$html .= "\n</select>\n";
return $html;
}
function selectList( &$arr, $tag_name, $tag_attribs, $key, $text, $selected, $required=0 ) {
reset( $arr );
$html = "\n<select name=\"$tag_name\" $tag_attribs>";
if(!$required) $html .= "\n\t<option value=\"\"> </option>";
for ($i=0, $n=count( $arr ); $i < $n; $i++ ) {
$k = stripslashes($arr[$i]->$key);
$t = stripslashes($arr[$i]->$text);
$id = @$arr[$i]->id;
$extra = '';
$extra .= $id ? " id=\"" . $arr[$i]->id . "\"" : '';
if (is_array( $selected )) {
foreach ($selected as $obj) {
$k2 = stripslashes($obj->$key);
if ($k == $k2) {
$extra .= " selected=\"selected\"";
break;
}
}
} else {
$extra .= ($k == stripslashes($selected) ? " selected=\"selected\"" : '');
}
$html .= "\n\t<option value=\"".$k."\"$extra>";
$html .= getLangDefinition($t);
$html .= "</option>";
}
$html .= "\n</select>\n";
return $html;
}
function selectlistcuerdas($tag_name, $Valor) {
$html = "\n<select name=\"". $tag_name. "\"". 'class="inputbox" size="1" onchange="document.ueform.submit();"'.">";
$html .= "\n<option value=\"\" ";
if ($Valor == '') $html .= "selected>Todos los miembros del coro</option>";
else $html .= ">Todos los miembros del coro</option>";
$html .= "\n<option value=\"soprano\" ";
if ($Valor == 'soprano') $html .= "selected>Cuerda de sopranos</option>";
else $html .= ">Cuerda de sopranos</option>";
$html .= "\n<option value=\"contralto\" ";
if ($Valor == 'contralto') $html .= "selected>Cuerda de contraltos</option>";
else $html .= ">Cuerda de contraltos</option>";
$html .= "\n<option value=\"tenor\" ";
if ($Valor == 'tenor') $html .= "selected>Cuerda de tenores</option>";
else $html .= ">Cuerda de tenores</option>";
$html .= "\n<option value=\"bajo\" ";
if ($Valor == 'bajo') $html .= "selected>Cuerda de bajos</option>";
else $html .= ">Cuerda de bajos</option>";
$html .= "\n</select>\n";
return $html;
}
}
class moscomprofilerLists extends mosDBTable {
var $listid=null;
var $title=null;
var $description=null;
var $published=null;
var $default=null;
var $usergroupids=null;
var $sortfields=null;
var $ordering=null;
var $col1title=null;
var $col1enabled=null;
var $col1fields=null;
var $col1captions=null;
var $col2title=null;
var $col2enabled=null;
var $col2fields=null;
var $col2captions=null;
var $col3title=null;
var $col3enabled=null;
var $col3fields=null;
var $col3captions=null;
var $col4title=null;
var $col4enabled=null;
var $col4fields=null;
var $col4captions=null;
/**
* @param database A database connector object
*/
function moscomprofilerLists( &$db ) {
$this->mosDBTable( '#__comprofiler_lists', 'listid', $db );
} //end func
function store( $listid=0, $updateNulls=false) {
global $acl, $migrate, $database, $_POST;
if($_POST['listid']==null || $_POST['listid']=='' || !isset($_POST['listid'])) $this->listid =0;
else $this->listid=$_POST['listid'];
$sql="Select count(*) from #__comprofiler_lists where listid = '". $this->listid."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if($this->default==1) {
$sql="UPDATE #__comprofiler_lists SET `default` = 0";
$database->SetQuery($sql);
$database->LoadResult();
}
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
// new record
$sql="Select max(ordering) from #__comprofiler_lists";
$database->SetQuery($sql);
$max = $database->LoadResult();
$this->ordering=$max+1;
$this->listid = null;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}
if( !$ret ) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
class moscomprofilerFields extends mosDBTable {
var $fieldid=null;
var $name=null;
var $title=null;
var $type=null;
var $maxlength=null;
var $size=null;
var $required=null;
var $tabid=null;
var $ordering=null;
var $cols=null;
var $rows=null;
var $value=null;
var $default=null;
var $sys=null;
var $profile=null;
var $published=null;
var $readonly=null;
var $registration=null;
var $table=null;
/**
* @param database A database connector object
*/
function moscomprofilerFields( &$db ) {
$this->mosDBTable( '#__comprofiler_fields', 'fieldid', $db );
} //end func
function store( $fieldid=0, $updateNulls=false) {
global $acl, $migrate, $database, $_POST;
if($_POST['fieldid']==null || $_POST['fieldid']=='' || !isset($_POST['fieldid'])) $this->fieldid =0;
else $this->fieldid=$_POST['fieldid'];
$sql="Select count(*) from #__comprofiler_fields where fieldid = '". $this->fieldid."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
// new record
$sql="SELECT COUNT(*) FROM #__comprofiler_fields WHERE name='".$this->name."'";
$database->SetQuery($sql);
if($database->LoadResult() > 0) {
$this->_error = "The field name ".$this->name." is already in use!";
return false;
}
$sql="Select max(ordering) from #__comprofiler_fields WHERE tabid=".$this->tabid;
$database->SetQuery($sql);
$max = $database->LoadResult();
$this->ordering=$max+1;
$this->fieldid = null;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
SWITCH($this->type) {
CASE 'date':
$cType='DATE';
break;
CASE 'textarea':
$cType='MEDIUMTEXT';
break;
CASE 'checkbox':
$cType='TINYINT';
break;
default:
$cType='VARCHAR(255)';
break;
}
$ret2 = $this->createColumn('#__comprofiler',$this->name,$cType);
}
if( !$ret ) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
function createColumn( $table, $column, $type) {
global $acl, $migrate, $database;
$sql="ALTER TABLE `$table` ADD `$column` $type";
$database->SetQuery($sql);
$ret = $database->LoadResult();
if( !$ret ) {
$this->_error .= get_class( $this )."::createColumn failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
function deleteColumn( $table, $column) {
global $acl, $migrate, $database;
$sql="ALTER TABLE `$table` DROP `$column`";
$database->SetQuery($sql);
$ret = $database->LoadResult();
if( !$ret ) {
$this->_error .= get_class( $this )."::deleteColumn failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
class moscomprofilerTabs extends mosDBTable {
var $tabid=null;
var $title=null;
var $description=null;
var $ordering=null;
var $plugin=null;
var $width=null;
var $enabled=null;
var $sys=null;
/**
* @param database A database connector object
*/
function moscomprofilerTabs( &$db ) {
$this->mosDBTable( '#__comprofiler_tabs', 'tabid', $db );
} //end func
function store( $tabid, $updateNulls=false) {
global $acl, $migrate, $database, $_POST;
if($_POST['tabid']==null || $_POST['tabid']=='' || !isset($_POST['tabid'])) $this->tabid =0;
else $this->tabid=$_POST['tabid'];
$sql="Select count(*) from #__comprofiler_tabs where tabid = '". $this->tabid."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
$sql="Select max(ordering) from #__comprofiler_tabs";
$database->SetQuery($sql);
$max = $database->LoadResult();
$this->ordering=$max+1;
// new record
$this->tabid = null;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}
if( !$ret ) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
class moscomprofilerFieldValues extends mosDBTable {
var $fieldvalueid=null;
var $fieldid=null;
var $fieldtitle=null;
var $sys=null;
/**
* @param database A database connector object
*/
function moscomprofilerFieldValues( &$db ) {
$this->mosDBTable( '#__comprofiler_field_values', 'fieldvalueid', $db );
} //end func
function store( $fieldvalueid, $updateNulls=false) {
global $acl, $migrate, $database, $_POST;
if($_POST['fieldvalueid']==null || $_POST['fieldvalueid']=='' || !isset($_POST['fieldvalueid'])) $this->fieldvalueid =0;
else $this->tabid=$_POST['fieldvalueid'];
$sql="Select count(*) from #__comprofiler_field_values where fieldvalueid = '". $this->fieldvalueid."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
// new record
$this->fieldvalueid = null;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}
if( !$ret) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
class moscomprofiler extends mosDBTable {
var $id=null;
var $user_id=null;
var $avatar=null;
var $avatarapproved=null;
var $approved=null;
var $confirmed=null;
var $hits=null;
/**
* @param database A database connector object
*/
function moscomprofiler( &$db ) {
$this->mosDBTable( '#__comprofiler', 'id', $db );
} //end func
function storeExtras( $id, $updateNulls=false) {
global $acl, $migrate, $database, $_POST;
if($_POST['id']==null || $_POST['id']=='' || !isset($_POST['id'])) $this->id =0;
else $this->id=$_POST['id'];
$sql="Select count(*) from #__comprofiler where id = '". $this->id."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
// new record
$sql="Select max(id) from #__users";
$database->SetQuery($sql);
$last_id = $database->LoadResult();
$this->id = $last_id;
$this->user_id = $last_id;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}
if( !$ret ) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
class moscomprofilerUserReport extends mosDBTable {
var $reportid=null;
var $reporteduser=null;
var $reportedbyuser=null;
var $reportedondate=null;
var $reportexplaination=null;
/**
* @param database A database connector object
*/
function moscomprofilerUserReport( &$db ) {
$this->mosDBTable( '#__comprofiler_userreports', 'reportid', $db );
} //end func
} //end class
class mosInstantMessenger {
var $id=null; //Users ID
var $IMType=null; //Instant Messenger Type (MSNM,AIM,YIM,etc)
var $IMHandle=null; //User Name, Number or Handle used by IM System
/**
* @param database A database connector object
*/
function moscomprofiler( &$db ) {
$this->mosDBTable( '#__comprofiler', 'id', $db );
} //end func
function storeExtras( $id, $updateNulls=false) {
global $acl, $migrate, $database;
$sql="Select count(*) from #__comprofiler where id = '". $_POST['id']."'";
$database->SetQuery($sql);
$total = $database->LoadResult();
if( $total > 0 ) {
// existing record
$ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
} else {
// new record
$sql="Select max(id) from #__users";
$database->SetQuery($sql);
$last_id = $database->LoadResult();
$this->id = $last_id;
$this->user_id = $last_id;
$ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}
if( !$ret ) {
$this->_error = get_class( $this )."::store failed <br />" . $this->_db->getErrorMsg();
return false;
} else {
return true;
}
}
} //end class
//FUNCTIONS
/**
* Page navigation support functions
*
* Input:
* $limitstart (int The record number to start dislpaying from)
* $limit (int Number of rows to display per page)
* $total (int Total number of rows)
*/
/**
* Writes the html links for pages, eg, previous 1 2 3 ... x next
*/
function writePagesLinks($limitstart, $limit, $total,$ue_base_url,$search=null) {
GLOBAL $search_query;
GLOBAL $pages_in_list;
$pages_in_list = 10; // set how many pages you want displayed in the menu
$displayed_pages = $pages_in_list;
$total_pages = ceil( $total / $limit );
$this_page = ceil( ($limitstart+1) / $limit );
$start_loop = (floor(($this_page-1)/$displayed_pages))*$displayed_pages+1;
if ($start_loop + $displayed_pages - 1 < $total_pages) {
$stop_loop = $start_loop + $displayed_pages - 1;
} else {
$stop_loop = $total_pages;
}
if ($this_page > 1) {
$page = ($this_page - 2) * $limit;
echo "\n<a href=\"$ue_base_url&limitstart=0$search_query&search=$search\" title=\"" . _USRL_FIRST_PAGE . "\"><<</a>";
echo "\n<a href=\"$ue_base_url&limitstart=$page$search_query&search=$search\" title=\"" . _UE_PREV_PAGE . "\"><</a>";
}
for ($i=$start_loop; $i <= $stop_loop; $i++) {
$page = ($i - 1) * $limit;
if ($i == $this_page) {
echo "\n <b>$i</b> ";
} else {
echo "\n<a href=\"$ue_base_url&limitstart=$page$search_query&search=$search\">$i</a>";
}
}
if ($this_page < $total_pages) {
$page = $this_page * $limit;
$end_page = ($total_pages-1) * $limit;
echo "\n<a href=\"$ue_base_url&limitstart=$page$search_query&search=$search\" title=\"" . _UE_NEXT_PAGE . "\">></a>";
echo "\n<a href=\"$ue_base_url&limitstart=$end_page$search_query&search=$search\" title=\"" . _UE_END_PAGE . "\">>></a>";
}
}
/**
* Writes the html for the pages counter, eg, Results 1-10 of x
*/
function writePagesCounter($limitstart, $limit, $total) {
GLOBAL $usrl_base_url;
$from_result = $limitstart+1;
if ($limitstart + $limit < $total) {
$to_result = $limitstart + $limit;
} else {
$to_result = $total;
}
if ($total > 0) {
echo _UE_RESULTS . " <b>" . $from_result . " - " . $to_result . "</b> " . _UE_OF_TOTAL . " <b>" . $total . "</b>";
} else {
echo _UE_NO_RESULTS . ".";
}
}
function isOdd($x){
if($x & 1) return TRUE;
else return FALSE;
}
function check_filesize($file,$maxSize) {
$size = filesize($file);
if($size <= $maxSize) {
return true;
}
return false;
}
function check_image_type(&$type)
{
switch( $type )
{
case 'jpeg':
case 'pjpeg':
case 'jpg':
return '.jpg';
break;
case 'png':
return '.png';
break;
}
return false;
}
function display_avatar_gallery($avatar_gallery_path)
{
$dir = @opendir($avatar_gallery_path);
$avatar_images = array();
$avatar_col_count = 0;
while( $file = @readdir($dir) )
{
if( $file != '.' && $file != '..' && is_file($avatar_gallery_path . '/' . $file) && !is_link($avatar_gallery_path. '/' . $file) )
{
if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $file) )
{
$avatar_images[$avatar_col_count] = $file;
$avatar_name[$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $file)));
$avatar_col_count++;
}
}
}
@closedir($dir);
@ksort($avatar_images);
@reset($avatar_images);
return $avatar_images;
}
function fmodReplace($x,$y)
{ //function provided for older PHP versions which do not have an fmod function yet
$i = floor($x/$y);
return $x - $i*$y;}
function replaceVariables($emailMSG, $row, $includePWD, $ueConfig){
global $mosConfig_live_site, $mosConfig_absolute_path,$uDetails;
if($ueConfig['reg_confirmation']==1) $confirmLink = $mosConfig_live_site."/index.php?option=com_comprofiler&task=confirm&confirmCode=".md5($row->id);
else $confirmLink = ' ';
$emailMSG = str_replace("[USERNAME]", $row->username, $emailMSG);
$emailMSG = str_replace("[NAME]", $row->name, $emailMSG);
$emailMSG = str_replace("[EMAILADDRESS]", $row->email, $emailMSG);
$emailMSG = str_replace("[SITEURL]", $mosConfig_live_site, $emailMSG);
$emailMSG = str_replace("[DETAILS]", getUserDetails($row,$includePWD), $emailMSG);
$emailMSG = str_replace("[CONFIRM]", $confirmLink, $emailMSG );
return $emailMSG;
}
function createEmail($row,$type,$ueConfig,$rowAdmin=null,$includePWD=0) {
global $mosConfig_sitename,$mosConfig_live_site;
SWITCH($type) {
CASE 'reject':
$subject = $mosConfig_sitename.'-'.$ueConfig['reg_reject_sub'];
$msg = $ueConfig['reg_reject_msg'];
$to = $row->email;
break;
CASE 'pending':
$subject = $mosConfig_sitename.'-'.$ueConfig['reg_pend_appr_sub'];
$msg = $ueConfig['reg_pend_appr_msg'];
$to = $row->email;
break;
CASE 'welcome':
$subject = $mosConfig_sitename.'-'.$ueConfig['reg_welcome_sub'];
$msg = $ueConfig['reg_welcome_msg'];
$to = $row->email;
break;
CASE 'rejectUser':
$subject = $mosConfig_sitename.'-'._UE_REG_REJECT_SUB;
$msg = sprintf(_UE_USERREJECT_MSG,$mosConfig_sitename,$rowAdmin);
$to = $row->email;
break;
CASE 'imageApproved':
$subject = $mosConfig_sitename.'-'._UE_IMAGEAPPROVED_SUB;
$msg = _UE_IMAGEAPPROVED_MSG;
$to = $row->email;
break;
CASE 'imageRejected':
$subject = $mosConfig_sitename.'-'._UE_IMAGEREJECTED_SUB;
$msg = _UE_IMAGEREJECTED_MSG;
$to = $row->email;
break;
CASE 'unbanUser':
$subject = $mosConfig_sitename.'-'._UE_UNBANUSER_SUB;
$msg = _UE_UNBANUSER_MSG;
$to = $row->email;
break;
CASE 'banUser':
$subject = $mosConfig_sitename.'-'._UE_BANUSER_SUB;
$msg = _UE_BANUSER_MSG;
$to = $row->email;
break;
CASE 'pendingAdmin':
$subject = $mosConfig_sitename.'-'._UE_REG_ADMIN_PA_SUB;
$msg = _UE_REG_ADMIN_PA_MSG;
$to = $rowAdmin->email;
break;
CASE 'welcomeAdmin':
$subject = $mosConfig_sitename.'-'._UE_REG_ADMIN_SUB;
$msg = _UE_REG_ADMIN_MSG;
$to = $rowAdmin->email;
break;
CASE 'imageAdmin':
$subject = $mosConfig_sitename.'-'._UE_IMAGE_ADMIN_SUB;
$msg = _UE_IMAGE_ADMIN_MSG;
$to = $rowAdmin->email;
break;
CASE 'unbanAdmin':
$subject = $mosConfig_sitename.'-'._UE_UNBANUSERREQUEST_SUB;
$msg = _UE_UNBANUSERREQUEST_MSG;
$to = $rowAdmin->email;
break;
CASE 'reportAdmin':
$subject = $mosConfig_sitename.'-'._UE_USERREPORT_SUB;
$msg = _UE_USERREPORT_MSG;
$to = $rowAdmin->email;
break;
}
$msg=replaceVariables($msg,$row,$includePWD,$ueConfig);
$msg.="\n\n".sprintf(_UE_EMAILFOOTER,$mosConfig_sitename,$mosConfig_live_site);
eval ("\$msg = \"$msg\";");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "Organization: ".$mosConfig_sitename."\r\n";
$headers .= "Content-Transfer-encoding: 8bit\r\n";
$headers = "From: ".$ueConfig['reg_email_name']." <".$ueConfig['reg_email_from'].">\r\n";
$headers .= "Reply-To: ".$ueConfig['reg_email_name']." <".$ueConfig['reg_email_from'].">\r\n";
$headers .= "Message-ID: <".md5(uniqid(time()))."@{$_SERVER['SERVER_NAME']}>\r\n";
$headers .= "Return-Path: ".$ueConfig['reg_email_name']." <".$ueConfig['reg_email_from'].">\r\n";
$headers .= "X-Priority: 3\r\n";
$headers .= "X-MSmail-Priority: Low\r\n";
$headers .= "X-Mailer: PHP\r\n"; //hotmail and others dont like PHP mailer. --Microsoft Office Outlook, Build 11.0.5510
$headers .= "X-Sender: ".$ueConfig['reg_email_name']." <".$ueConfig['reg_email_from'].">\r\n";
mail($to, $subject, $msg, $headers);
}
function getUserDetails($row,$includePWD) {
$uDetails = _UE_EMAIL.' : '.$row->email;
$uDetails .= '\n'._UE_UNAME.' : '.$row->username.'\n';
if($includePWD==1) $uDetails .= _UE_PASS.' : '.$row->password;
return $uDetails;
}
function dateConverter($oDate,$oFromFormat,$oToFormat) {
if($oDate=='' || $oDate == null || !isset($oDate)) {
return;
} else {
$specChar = array(".","/");
$oDate = str_replace($specChar,"-",$oDate);
$oFromFormat = str_replace($specChar,"-",$oFromFormat);
$oDate=explode(" ",$oDate);
$dateParts=explode("-",$oDate[0]);
$fromParts=explode("-",$oFromFormat);
$dateArray = array();
$dateArray[$fromParts[0]] = $dateParts[0];
$dateArray[$fromParts[1]] = $dateParts[1];
$dateArray[$fromParts[2]] = $dateParts[2];
if(strpos($oToFormat,"/")!=false) $char = "/";
elseif(strpos($oToFormat,".")!=false) $char = ".";
else $char = "-";
$toParts=explode($char,$oToFormat);
$returnDate=$oToFormat;
foreach ($toParts as $toPart) {
if($toPart=='Y' || $toPart=='y') {
if(array_key_exists($toPart,$dateArray)) $returnDate=str_replace($toPart,$dateArray[$toPart],$returnDate);
elseif($toPart=='y')$returnDate=str_replace($toPart,substr($dateArray['Y'],2,2),$returnDate);
else $returnDate=str_replace($toPart,$dateArray['y'],$returnDate);
}else {
$returnDate=str_replace($toPart,substr($dateArray[$toPart],0,2),$returnDate);
}
}
return $returnDate." ".$oDate[1];
}
}
function getNameFormat($name,$uname,$format) {
SWITCH ($format) {
CASE 1 :
$returnName = $name;
break;
CASE 2 :
$returnName = $name." (".$uname.")";
break;
CASE 3 :
$returnName = $uname;
break;
CASE 4 :
$returnName = $uname." (".$name.")";
break;
}
return $returnName;
}
function getLangDefinition($text) {
if(defined($text)) $returnText = constant($text);
else $returnText = $text;
return $returnText;
}
function getFieldValue($oType,$oValue=null,$user=null,$prefix=null) {
global $ueConfig,$database,$mosConfig_lang,$mosConfig_absolute_path;
SWITCH ($oType){
CASE 'checkbox':
if($oValue!='' && $oValue!=null) {
if($oValue==1) { $oReturn=_UE_YES;
} elseif($oValue==0) { $oReturn=_UE_NO;
} else { $oReturn=null; }
}
break;
CASE 'select':
CASE 'radio':
$oReturn = getLangDefinition($oValue);
break;
CASE 'date':
if($oValue!='' || $oValue!=null) {
if ($oValue!='0000-00-00 00:00:00') {
$oReturn = dateConverter($oValue,'Y-m-d',$ueConfig['date_format']);
} else {
$oReturn = _UE_NA;
}
}
break;
CASE 'primaryemailaddress':
IF($oValue==null) return;
IF($ueConfig['allow_email_display']==1) $oReturn=$oValue;
ELSEIF($ueConfig['allow_email_display']==2) $oReturn="<a href=\"mailto:".$oValue."\">".$oValue."</a>";
ELSEIF($ueConfig['allow_email_display']==3) $oReturn="<a href=\"index.php?option=com_comprofiler&task=emailUser&uid=".$user->id."\">"._UE_SENDEMAIL."</a>";
ELSE $oReturn="";
break;
CASE 'emailaddress':
IF($oValue==null) return;
IF($ueConfig['allow_email']==1) $oReturn="<a href=\"mailto:".$oValue."\">".$oValue."</a>";
ELSE $oReturn=$oValue;
break;
CASE 'webaddress':
IF($oValue==null) return;
IF($ueConfig['allow_website']==1) $oReturn="<a href=\"http://".$oValue."\" target=\"_blank\">".$oValue."</a>";
ELSE $oReturn=$oValue;
break;
CASE 'image':
if(is_dir($mosConfig_absolute_path."/components/com_comprofiler/images/".$mosConfig_lang)) $fileLang=$mosConfig_lang;
else $fileLang="english";
if($user->avatarapproved==0) $oValue="components/com_comprofiler/images/".$fileLang."/tnpendphoto.jpg";
elseif(($user->avatar=='' || $user->avatar==null) && $user->avatarapproved==1) $oValue="components/com_comprofiler/images/".$fileLang."/tnnophoto.jpg";
elseif(strpos($user->avatar,"gallery/")===false) $oValue="images/comprofiler/tn".$oValue;
else $oValue="images/comprofiler/".$oValue;
if(!is_file($mosConfig_absolute_path."/".$oValue)) $oValue="components/com_comprofiler/images/".$fileLang."/tnnophoto.jpg";
if(is_file($mosConfig_absolute_path."/".$oValue)) {
if($ueConfig['allow_profilelink']==1) $onclick = "onclick=\"javascript:window.location='".sefRelToAbs("index.php?option=com_comprofiler&task=userProfile&user=".$user->id)."'\"";
$oReturn="<img src=\"".$oValue. "\" ".$onclick." />";
}
break;
CASE 'status':
$database->setQuery("SELECT COUNT(*) FROM #__session WHERE userid ='".$user->id."'");
$isonline = $database->loadResult();
if($isonline > 0) { $oReturn = _UE_ISONLINE; } else { $oReturn = _UE_ISOFFLINE; }
break;
CASE 'formatname':
$oReturn = getNameFormat($user->name,$user->username,$ueConfig['name_format']);
break;
DEFAULT:
//echo "I got here ".$oValue."<br>";
$oReturn = $oValue;
break;
}
if($prefix != null && ($oReturn != null || $oReturn != '')) $oReturn = $prefix.$oReturn;
return $oReturn;
}
function getFieldEntry($oType,$oName,$oValue,$oReq,$oLabel,$oID,$oSize, $oMaxLen, $oCols, $oRows,$oProfile, $rowFieldValues=null,$oReadOnly=0) {
global $ueConfig,$database,$mosConfig_live_site;
if($oSize > 0) $pSize=" size='".$oSize."' ";
else $pSize="";
if($oMaxLen > 0) $pMax=" MAXLENGTH='".$oMaxLen."' ";
else $pMax="";
if($oCols > 0) $pCols=" cols='".$oCols."' ";
else $pCols="";
if($oRows > 0) $pRows=" rows='".$oRows."' ";
else $pRows="";
if(($oReadOnly > 0) && ($oType != 'hidden')) {
$pReadOnly=" DISABLED ";
$oReq=0;
} else {
$pReadOnly="";
}
SWITCH ($oType){
CASE 'text':
$oReturn = "<input class=\"inputbox\" $pReadOnly mosReq=".$oReq." mosLabel=\"".getLangDefinition($oLabel)."\" $pSize $pMax type=\"text\" name=\"".$oName."\" value=\"".$oValue."\" />";
break;
CASE 'textarea':
$oReturn = "<textarea class=\"inputbox\" $pReadOnly mosReq=".$oReq." $pMax mosLabel=\"".getLangDefinition($oLabel)."\" $pCols $pRows name=\"".$oName."\">".$oValue."</textarea>";
break;
CASE 'editorta':
ob_start();
editorArea( 'editor'.$oName , $oValue , $oName , 500, 350, $pCols, $pRows ) ;
$oReturn=ob_get_contents();
ob_end_clean();
//echo $fieldJS;
$oReturn .= " <script> EditUser.".$oName.".setAttribute('mosReq',".$oReq."); EditUser.".$oName.".setAttribute('mosLabel','".getLangDefinition($oLabel)."'); </script>";
break;
CASE 'select':
$oReturn = $rowFieldValues;
break;
CASE 'radio':
$oReturn = $rowFieldValues;
break;
CASE 'checkbox':
$checked='';
if($oValue!='' && $oValue != null && $oValue==1) $checked="CHECKED";
$oReturn = "<input class=\"inputbox\" $pReadOnly mosLabel=\"".getLangDefinition($oLabel)."\" type=\"checkbox\" $checked name=\"".$oName."\" value=\"1\" />";
break;
CASE 'hidden':
$oReturn = "<input class=\"inputbox\" $pReadOnly mosLabel=\"".getLangDefinition($oLabel)."\" type=\"hidden\" name=\"".$oName."\" value=\"".$oValue."\" />";
break;
CASE 'password':
$oReturn = "<input class=\"inputbox\" $pReadOnly mosReq=".$oReq." mosLabel=\"".getLangDefinition($oLabel)."\" type=\"password\" name=\"".$oName."\" value=\"".$oValue."\" />";
break;
CASE 'date':
$dFind=array("d","m","y","Y");
$dReplace=array("dd","mm","yy","y");
$oValue;
$sqlFormat = "Y-m-d";
$oReturn = "<input class=\"inputbox\" readonly mosReq=".$oReq." mosLabel=\"".getLangDefinition($oLabel)."\" type=\"text\" id=\"".$oName."\" name=\"".$oName."\" value=\"".dateConverter($oValue,'Y-m-d',$ueConfig['date_format'])."\" />";
if($oReadOnly!=1) $oReturn .= "<input type=\"reset\" class=\"button\" value=\"...\" onClick=\"return showCalendar2('".$oName."', '".str_replace($dFind, $dReplace, $ueConfig['date_format'])."');\" />";
break;
CASE 'emailaddress':
$oReturn = "<input class=\"inputbox\" $pReadOnly $pMax mosReq=".$oReq." $pSize mosLabel=\"".getLangDefinition($oLabel)."\" type=\"text\" name=\"".$oName."\" id=\"".$oName."\" value=\"".$oValue."\" />";
break;
CASE 'webaddress':
$oReturn = "<input class=\"inputbox\" $pReadOnly $pMax $pSize mosReq=".$oReq." mosLabel=\"".getLangDefinition($oLabel)."\" type=\"text\" name=\"".$oName."\" id=\"".$oName."\" value=\"".$oValue."\" />";
break;
}
//Rodax Software
if ($oType != 'hidden') {
if($oReq==1) $oReturn .= " <img src='".$mosConfig_live_site."/components/com_comprofiler/images/required.gif' title='"._UE_FIELDREQUIRED."' />";
if($oProfile==1) $oReturn .= " <img src='".$mosConfig_live_site."/components/com_comprofiler/images/profiles.gif' title='"._UE_FIELDONPROFILE."' />";
else $oReturn .= " <img src='".$mosConfig_live_site."/components/com_comprofiler/images/noprofiles.gif' title='"._UE_FIELDNOPROFILE."' />";
}
return $oReturn;
}
function allowAccess( $accessgroupid,$recurse, $usersgroupid, &$acl)
{
// "agroup:".$accessgroupid." ugroupid:".$usersgroupid." recurse ".$recurse;
if ($accessgroupid == -2 || ($accessgroupid == -1 && $usersgroupid > 0)) {
//grant public access or access to all registered users
return 1;
}
else {
//need to do more checking based on more restrictions
if( $usersgroupid == $accessgroupid ) {
//direct match
return 1;
}
else {
if ($recurse=='RECURSE') {
//check if there are children groups
$groupchildern=array();
$groupchildren=$acl->get_group_children( $accessgroupid, 'ARO', $recurse );
if ( is_array( $groupchildren ) && count( $groupchildren ) > 0) {
if ( in_array($usersgroupid, $groupchildren) ) {
//match
return 1;
}
}
}
}
//deny access
return 0;
}
}
?>