465 lines
11 KiB
PHP
465 lines
11 KiB
PHP
<?php
|
|
|
|
function fnc_getNavigationArray ( $prefix , $onlyActive = true , $navPositions = array( ) , $namesFromConfig = array( ) )
|
|
{
|
|
global $db;
|
|
$return = array ( );
|
|
|
|
$str_filter = ( count ( $navPositions ) > 0 )
|
|
? '( ' . $prefix . '_navPosition = "' . implode ( '" OR ' . $prefix . '_navPosition = "' , $navPositions ) . '" )'
|
|
: '';
|
|
$str_filter .= ( $onlyActive )
|
|
? ( $str_filter === '' )
|
|
? $prefix . '_navActive = "Y"'
|
|
: ' AND ' . $prefix . '_navActive = "Y"'
|
|
: '';
|
|
$str_filter = ( $str_filter !== '' )
|
|
? ' WHERE ' . $str_filter
|
|
: '';
|
|
|
|
$navi = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . $prefix . '_' . TBL_NAVI .
|
|
$str_filter . '
|
|
ORDER BY
|
|
' . $prefix . '_navStart ASC ,
|
|
' . $prefix . '_navSort ASC;'
|
|
);
|
|
while ( $dat_navi = $navi -> fetch_assoc( ) )
|
|
{
|
|
if ( ! empty( $namesFromConfig ) )
|
|
{
|
|
$dat_navi[ $prefix . '_navName' ] = $namesFromConfig[ 'site_' . $dat_navi[ $prefix . '_navId' ] ];
|
|
}
|
|
$return[ $dat_navi[ $prefix . '_navStart' ] ][ ] = $dat_navi;
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
function fnc_getSingleNavigationArrays ( $prefix , $navArray , $params , $pathWay )
|
|
{
|
|
$i = 0;
|
|
|
|
foreach ( $params[ 'navLevel' ] as $key => $depth )
|
|
{
|
|
if ( $params[ 'navDepth' ][ $key ] )
|
|
{
|
|
if ( isset ( $pathWay[ $i ] ) && isset ( $navArray[ $pathWay[ $i ] ] ) )
|
|
{
|
|
$return[ $key ][ $pathWay[ $i ] ] = $navArray[ $pathWay[ $i ] ];
|
|
++$i;
|
|
while ( $i < $depth )
|
|
{
|
|
foreach ( $return[ $key ] as $subArray )
|
|
{
|
|
foreach ( $subArray as $navPoint )
|
|
{
|
|
if ( isset ( $navArray[ $navPoint[ $prefix . '_navId' ] ] ) )
|
|
{
|
|
$return[ $key ][ $navPoint[ $prefix . '_navId' ] ] = $navArray[ $navPoint[ $prefix . '_navId' ] ];
|
|
}
|
|
}
|
|
}
|
|
++$i;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ( ! isset ( $return[ $key ] ) )
|
|
{
|
|
$return[ $key ] = null;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
/* Nur die aktuelle Unternavigation */
|
|
while ( $i < $depth && isset ( $pathWay [ $i ] ) )
|
|
{
|
|
if ( isset ( $navArray[ $pathWay[ $i ] ] ) )
|
|
{
|
|
$return[ $key ][ $pathWay[ $i ] ] = $navArray[ $pathWay[ $i ] ];
|
|
}
|
|
else
|
|
{
|
|
if ( ! isset ( $return[ $key ] ) )
|
|
{
|
|
$return[ $key ] = null;
|
|
}
|
|
}
|
|
++$i;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
function fnc_getPortalNavigationArray ( $prefix , $navArray , $rightsArray )
|
|
{
|
|
foreach ( $navArray as $navStart => $navLevels )
|
|
{
|
|
if ( $navStart > 0 )
|
|
{
|
|
if ( ! in_array ( $prefix . '_' . $navStart , $rightsArray ) && ! in_array( $navStart , $rightsArray ))
|
|
{
|
|
unset ( $navArray[ $navStart ] );
|
|
}
|
|
}
|
|
}
|
|
foreach ( $navArray as $key => $navLevels )
|
|
{
|
|
foreach ( $navLevels as $subKey => $navPoint )
|
|
{
|
|
if ( intval( $navPoint[ $prefix . '_navId' ] ) > 1 && ( ! in_array ( $prefix . '_' . $navPoint[ $prefix . '_navId' ] , $rightsArray ) ) && ! in_array( $navPoint[ $prefix . '_navId'] , $rightsArray ) )
|
|
{
|
|
unset ( $navArray[ $key ][ $subKey ] );
|
|
}
|
|
}
|
|
|
|
}
|
|
return ( $navArray );
|
|
}
|
|
|
|
function fnc_createPathHome ( $prefix , $navActive )
|
|
{
|
|
global $db;
|
|
|
|
$navi = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . $prefix . '_' . TBL_NAVI . '
|
|
WHERE
|
|
' . $prefix . '_navId = "' . $navActive . '";'
|
|
);
|
|
$arr_navi = $navi -> fetch_assoc ( );
|
|
if ( $arr_navi[ $prefix . '_navStart' ] !== '0' && !is_null($arr_navi) )
|
|
{
|
|
$return = fnc_createPathHome ( $prefix , $arr_navi[ $prefix . '_navStart' ] );
|
|
}
|
|
else
|
|
{
|
|
$return[ ] = '0';
|
|
}
|
|
$return[ ] = $navActive;
|
|
|
|
return $return;
|
|
}
|
|
|
|
function fnc_getNavType ( $prefix , $navActive )
|
|
{
|
|
global $db;
|
|
|
|
$navi = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . $prefix . '_' . TBL_NAVI . '
|
|
WHERE
|
|
' . $prefix . '_navId = "' . $navActive . '";'
|
|
);
|
|
$navPoint = $navi -> fetch_assoc ( );
|
|
|
|
if ( $navPoint[ $prefix . '_specialSite' ] === 'Y' )
|
|
{
|
|
return $navPoint[ $prefix . '_specialType' ];
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
function fnc_getUsernameById ( $userId )
|
|
{
|
|
global $db;
|
|
$return = '';
|
|
|
|
$user = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userId = "' . $userId . '";'
|
|
);
|
|
if ( $user -> num_rows > 0 )
|
|
{
|
|
$dat_user = $user -> fetch_assoc ( );
|
|
$return = $dat_user[ 'userLastname' ] . ', ' . $dat_user[ 'userFirstname' ];
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
function fnc_getTimeByTS ( $timeStamp )
|
|
{
|
|
$time = new DateTime ( $timeStamp );
|
|
|
|
return $time -> format ( 'd.m.Y - H:i:s' );
|
|
}
|
|
|
|
function fnc_generatePW ( $length = 8 )
|
|
{
|
|
$passWord = '';
|
|
|
|
$pool = "qwertzupasdfghkyxcvbnm";
|
|
$pool .= "23456789";
|
|
$pool .= "WERTZUPLKJHGFDSAYXCVBNM";
|
|
$pool .= "!§$%&/()=";
|
|
|
|
srand ( ( double ) microtime ( ) * 1000000 );
|
|
|
|
for ( $i = 0 ; $i < $length ; $i++ )
|
|
{
|
|
$passWord .= substr ( $pool , ( rand ( ) % ( strlen ( $pool ) ) ) , 1 );
|
|
}
|
|
|
|
return $passWord;
|
|
}
|
|
|
|
function fnc_generateUniqueUsername ( $lastName , $firstName )
|
|
{
|
|
global $db;
|
|
|
|
$username = mb_strtolower ( substr ( $firstName , 0 , 1 ) , 'UTF-8' ) . mb_strtolower ( $lastName , 'UTF-8' );
|
|
$count = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userUsername = "' . $username . '" OR
|
|
userUsername LIKE "' . $username . '_%";'
|
|
);
|
|
|
|
if ( $count -> num_rows !== 0 )
|
|
{
|
|
$username .= '_' . $count -> num_rows;
|
|
}
|
|
|
|
return $username;
|
|
}
|
|
|
|
function fnc_writeLog ( $entry , $params , $userId )
|
|
{
|
|
global $db;
|
|
|
|
$log = $db -> query
|
|
(
|
|
'INSERT INTO
|
|
' . TBL_LOG . '
|
|
( logEntry , logParams , logUser )
|
|
VALUES
|
|
( "' . $entry . '" , "' . implode ( '::' , $params ) . '" , "' . $userId . '" );'
|
|
);
|
|
}
|
|
|
|
function fnc_readLog ( $entry , $params )
|
|
{
|
|
if ( $params !== '' )
|
|
{
|
|
$arr_params = explode ( '::' , $params );
|
|
foreach ( $arr_params as $key => $value )
|
|
{
|
|
$entry = str_replace ( '%' . $key . '%' , $value , $entry );
|
|
}
|
|
}
|
|
return $entry;
|
|
}
|
|
|
|
function fnc_sendEmailToUser ( $mailId , $userId , $sessionUserId )
|
|
{
|
|
global $db;
|
|
global $vC;
|
|
global $lang;
|
|
|
|
$result = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userId = "' . $userId . '"
|
|
LIMIT 1;'
|
|
);
|
|
$recipient = $result -> fetch_assoc ( );
|
|
|
|
$result = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userId = "' . $sessionUserId . '"
|
|
LIMIT 1;'
|
|
);
|
|
$sender = $result -> fetch_assoc ( );
|
|
|
|
$mailSubj = $lang[ 'mail' ][ 'subj' ][ $mailId ];
|
|
$mailBody = $lang[ 'mail' ][ 'body' ][ $mailId ];
|
|
|
|
foreach ( $recipient as $key => $value )
|
|
{
|
|
$mailBody = str_replace ( '%' . $key . '%' , $value , $mailBody );
|
|
}
|
|
foreach ( $sender as $key => $value )
|
|
{
|
|
$mailBody = str_replace ( '%sess_' . $key . '%' , $value , $mailBody );
|
|
}
|
|
|
|
require_once ( PATH_CLS . 'phpmailer/PHPMailerAutoload.php' );
|
|
$mail = new PHPMailer;
|
|
|
|
if ( $vC[ 'portal' ][ 'mail' ][ 'type' ] === 'smtp' )
|
|
{
|
|
$mail -> isSMTP( );
|
|
$mail -> Host = $vC[ 'portal' ][ 'mail' ][ 'smtpHost' ];
|
|
$mail -> SMTPAuth = $vC[ 'portal' ][ 'mail' ][ 'smtpAuth' ];
|
|
$mail -> Username = $vC[ 'portal' ][ 'mail' ][ 'smtpUser' ];
|
|
$mail -> Password = $vC[ 'portal' ][ 'mail' ][ 'smtpPass' ];
|
|
}
|
|
|
|
$mail -> From = $vC[ 'portal' ][ 'mail' ][ 'from' ];
|
|
$mail -> FromName = $vC[ 'portal' ][ 'mail' ][ 'fromName' ];
|
|
$mail -> ReturnPath = $vC[ 'portal' ][ 'mail' ][ 'returnPath' ];
|
|
$mail -> CharSet = $vC[ 'portal' ][ 'mail' ][ 'charset' ];
|
|
$mail -> addAddress ( $recipient[ 'userEmail' ] , $recipient[ 'userFirstname' ] . ' ' . $recipient[ 'userLastname' ] );
|
|
$mail -> isHTML ( $vC[ 'portal' ][ 'mail' ][ 'html' ] );
|
|
|
|
$mail -> Subject = $mailSubj;
|
|
$mail -> Body = $mailBody;
|
|
|
|
if ( ! $mail -> send( ) )
|
|
{
|
|
$return = $mail -> ErrorInfo;
|
|
}
|
|
else
|
|
{
|
|
$return = 'OK';
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
function fnc_validateEmailAddress ( $emailAddress )
|
|
{
|
|
if ( filter_var ( $emailAddress , FILTER_VALIDATE_EMAIL ) === false )
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function fnc_checkUniqueEmailAddress ( $emailAddress , $userId = '' )
|
|
{
|
|
global $db;
|
|
$return = false;
|
|
|
|
if ( $userId !== '' )
|
|
{
|
|
$count = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userId != "' . $userId . '" AND
|
|
userEmail = "' . $emailAddress . '";'
|
|
);
|
|
}
|
|
else
|
|
{
|
|
$count = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . TBL_USER . '
|
|
WHERE
|
|
userEmail = "' . $emailAddress . '";'
|
|
);
|
|
}
|
|
if ( $count -> num_rows === 0 )
|
|
{
|
|
$return = true;
|
|
}
|
|
return $return;
|
|
}
|
|
|
|
function fnc_getSiteContents ( $contentParts , $prefix )
|
|
{
|
|
global $db;
|
|
$return = array( );
|
|
|
|
$siteContents = explode ( ';' , $contentParts );
|
|
foreach ( $siteContents as $tmp_content )
|
|
{
|
|
if ( $tmp_content === '' )
|
|
{
|
|
continue;
|
|
}
|
|
$tmp_data = explode ( '_' , $tmp_content );
|
|
|
|
$id = end ( $tmp_data );
|
|
unset ( $tmp_data[ count ( $tmp_data ) - 1 ] );
|
|
$table = implode( '_' , $tmp_data );
|
|
|
|
if( $table === '' )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if ( $table === 'textimage' )
|
|
{
|
|
$tmp_content = $db -> query
|
|
(
|
|
'SELECT
|
|
* , ' . $prefix . '_' . TBL_TEXTIMAGE . '.id AS text_image_id
|
|
FROM
|
|
' . $prefix . '_' . TBL_TEXTIMAGE . ',
|
|
' . $prefix . '_' . TBL_TEXT . ',
|
|
' . $prefix . '_' . TBL_IMAGE . '
|
|
WHERE
|
|
' . $prefix . '_' . TBL_TEXTIMAGE . '.content_text_id = ' . $prefix . '_' . TBL_TEXT . '.id AND
|
|
' . $prefix . '_' . TBL_TEXTIMAGE . '.content_image_id = ' . $prefix . '_' . TBL_IMAGE . '.id and
|
|
' . $prefix . '_' . TBL_TEXTIMAGE . '.id = ' . $id . '
|
|
LIMIT 1;'
|
|
);
|
|
}
|
|
else
|
|
{
|
|
$tmp_content = $db -> query
|
|
(
|
|
'SELECT
|
|
*
|
|
FROM
|
|
' . $prefix . '_content_' . $table . '
|
|
WHERE
|
|
id = ' . $id . ';'
|
|
);
|
|
}
|
|
|
|
if ( $tmp_content -> num_rows === 0 )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
$singleContent = $tmp_content -> fetch_assoc( );
|
|
$singleContent[ 'type' ] = $table;
|
|
$return[ ] = $singleContent;
|
|
|
|
}
|
|
return $return;
|
|
}
|
|
?>
|