Вход Регистрация
Файл: Application/system/helpers/func_main.php
Строк: 613
<?php
/** 
 * 
 * NOTE: Designed for use with PHP version 4, 5 and up
 * @author Santos Montano B. <ssmontano@hotmail.com, litosantosm@gmail.com>
 * @country Perú
 * @copyright 2014
 * @version: 1.2 
 * 
 */

/** 
 * Main functions that are used in the application.
 */

    
function __autoload($class_name)
    {
        global 
$C;
        require_once( 
$C->INCPATH.'classes/class_'.$class_name.'.php' );
    }
        
    function 
validateUrl($url)
    {
        if (!
preg_match('/^(http|https)://((([a-z0-9.-]+.)+[a-z]{2,4})|([0-9.]{1,4}){4})(/([a-zA-Z?-?0-9-_?:%.?!=+&/#~;,@]+)?)?$/'$url))
            return 
FALSE;
        else return 
TRUE;
    }
    
    
//function that checks if a URL is or is not "http"
    
function fitsUrl($url
    {
        
        if( ! 
preg_match('/^(ftp|http|https):///'$url) ) {
            
$url 'http://'.$url;
        }
    
        if( !
validateUrl($url) ) return FALSE;
        
        return 
$url;
    }
    
    
// function that returns the code of a YouTube video
    
function getCodeYoutube($url$lencodyt)
    {
        if( 
preg_match('/^http(s)?://(www.|de.)?youtu.be/([a-z0-9-_]{3,})/i'$url$resultado) ) {
            
$codeyt $resultado[3];
            if (
strlen($codeyt)!=$lencodyt) return FALSE;
            else return 
$codeyt;
        }
        if( 
preg_match('/^http(s)?://(www.|de.)?youtube.com/watch?(feature=player_embedded&)?v=([a-z0-9-_]{3,})/i'$url$resultado) ) {
            
$codeyt $resultado[4];
            if (
strlen($codeyt)!=$lencodyt) return FALSE;
            else return 
$codeyt;
        }
        return 
FALSE;
    }
    
    function 
emailValid($e)
    {
        return 
preg_match('/^[a-zA-Z0-9._%-]+@([a-zA-Z0-9.-]+.)+[a-zA-Z]{2,4}$/u'$e);
    }
    
    
    
// Function that checks if a code is already registered in a table
    
function verifyCode($code$table$field)
    {            
        
$mibdx2 $GLOBALS["db2"];
        
        
// check whether the code is being used
        
$rx2 $mibdx2->query("SELECT ".$field." FROM ".$table." WHERE ".$field."='".$code."' LIMIT 1");
        
$numusers $mibdx2->num_rows($rx2);

        if (
$numusers==0) return FALSE;
        else return 
TRUE;            
    }
    
    
//*************************************************************************
    // Function that returns a random string.
    // $numcharacters: number of letters returned string will.
    // $withrepeated: if 0 returns a string with no letters repeated. 
    // $withrepeated: if 1 returns a string with repeated letters.
    
function getCode($numcharacters,$withrepeated)
    {
        
$code '';
        
$characters "0123456789abcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ";
        
$i 0;
        while (
$i $numcharacters) {
            
$char substr($charactersmt_rand(0strlen($characters)-1), 1);    
            if (
$withrepeated == 1) {
                
$code .= $char;
                
$i += 1;            
            } else {
                if(!
strstr($code,$char)) {
                    
$code .= $char;
                    
$i += 1;
                }
            }
        }
        return 
$code;
    }
    
//*************************************************************************

    // Function that seeks a 11 digit code that is not registered in a table.
    
function uniqueCode($numcharacters$withrepeated$table$field)
    {
        
$code getCode($numcharacters$withrepeated);
        while (
verifyCode($code$table$field)) {    
            
$code getCode(111);
        }
        return 
$code;
    }
    
//*************************************************************************
    
    
function dateago($thetime)
    {
        global 
$page;
        
//if (empty($thetime)) return $page->lang('global_time_end',array('#TXTEND#'=>'1 '.$page->lang('global_time_sec'))); 
        
$today time();    
        
$datediff abs($today $thetime);
        if (
$datediff <= 0$datediff 1;
        
$txtago '';
        
$years floor($datediff / (365*60*60*24));  
        
$months floor(($datediff $years 365*60*60*24) / (30*60*60*24));  
        
$days floor(($datediff $years 365*60*60*24 $months*30*60*60*24)/ (60*60*24));  
        
$hoursfloor($datediff/3600);  
        
$minutesfloor($datediff/60);  
        
$secondsfloor($datediff);  
        
//year checker  
        
if( $txtago == '' ) {  
            if( 
$years $txtago $years.' '.$page->lang('global_time_yeas');  
            elseif( 
$years == $txtago $years.' '.$page->lang('global_time_yea');  
        }  
        
//month checker  
        
if( $txtago == '') {  
            if( 
$months $txtago $months.' '.$page->lang('global_time_mons');  
            elseif( 
$months == $txtago $months.' '.$page->lang('global_time_mon');  
        }  
        
//month checker  
        
if( $txtago == '') {  
            if( 
$days $txtago $days.' '.$page->lang('global_time_days');
            elseif( 
$days == $txtago $days.' '.$page->lang('global_time_day');  
        }  
        
//hour checker  
        
if( $txtago == '' ) {  
            if( 
$hours $txtago $hours.' '.$page->lang('global_time_hous');  
            elseif( 
$hours == $txtago $hours.' '.$page->lang('global_time_hou');  
        }  
        
//minutes checker  
        
if( $txtago == '') {  
            if( 
$minutes $txtago $minutes.' '.$page->lang('global_time_mins');
            elseif( 
$minutes == $txtago $minutes.' '.$page->lang('global_time_min');
        }  
        
//seconds checker  
        
if( $txtago == '') {  
            if( 
$seconds $txtago $seconds.' '.$page->lang('global_time_secs');
            elseif( 
$seconds == $txtago $seconds.' '.$page->lang('global_time_sec');
        }  
        return 
$page->lang('global_time_end',array('#TXTEND#'=>$txtago));
    }
    
    
//*************************************************************************
    
    
function analyzeMessage($txtmsg) {
        global 
$C;
        
// Parse any @mentions or links
        
        
$analyzedText preg_replace(array('/(?i)b((?:https?://|wwwd{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}/)(?:[^s()<>]+|(([^s()<>]+|(([^s()<>]+)))*))+(?:(([^s()<>]+|(([^s()<>]+)))*)|[^s`!()[]{};:'".,<>?«»“”‘’]))/', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#(w+)/u'), array('<a href="$1" target="_blank" rel="nofollow" class="linkblue">$1</a>', '$1<span class="linkblue3"><a href="'.$C->SITE_URL.'$2">@$2</a></span>', '$1<span class="linkblue3"><a href="'.$C->SITE_URL.'search/t%%%$2">#$2</a></span>'), ($txtmsg));
        
        
        // Define smiles
        
$emoticons = array(
            ':-)'    => 'regular.png',
            ':)'    => 'regular.png',
            ':-D'    => 'teeth.png',
            ':d'    => 'teeth.png',
            ':D'    => 'teeth.png',
            ':-O'    => 'omg.png',
            ':o'    => 'omg.png',
            ':O'    => 'omg.png',
            ':-P'    => 'tongue.png',
            ':p'    => 'tongue.png',
            ':P'    => 'tongue.png',
            ';-)'    => 'wink.png',
            ';)'    => 'wink.png',
            ':(('    => 'cry.png',
            ':-('    => 'sad.png',
            ':('    => 'sad.png',
            ':-S'    => 'confused.png',
            ':s'    => 'confused.png',
            ':S'    => 'confused.png',
            ':-|'    => 'what.png',
            ':|'    => 'what.png',
            ':-$'    => 'red.png',
            ':$'    => 'red.png',
            '(H)'    => 'shades.png',
            '(h)'    => 'shades.png',
            ':-@'    => 'angry.png',
            ':@'    => 'angry.png',
            '(A)'    => 'angel.png',
            '(a)'    => 'angel.png',
            '(6)'    => 'devil.png',
            ':-#'    => 'dumb.png',
            '8o|'    => 'growl.png',
            '8-|'    => 'nerd.png',
            '^o)'    => 'sarcastic.png',
            ':-*'    => 'secret.png',
            '+o('    => 'sick.png',
            ':^)'    => 'noknow.png',
            '*-)'    => 'pensive.png',
            '8-)'    => 'eyesrolled.png',
            '|-)'    => 'sleepy.png',
            '(C)'    => 'coffee.png',
            '(c)'    => 'coffee.png',
            '(Y)'    => 'thumbs_up.png',
            '(y)'    => 'thumbs_up.png',
            '(n)'    => 'thumbs_down.png',
            '(N)'    => 'thumbs_down.png',
            '(B)'    => 'beer_mug.png',
            '(b)'    => 'beer_mug.png',
            '(D)'    => 'martini.png',
            '(d)'    => 'martini.png',
            '(X)'    => 'girl.png',
            '(x)'    => 'girl.png',
            '(Z)'    => 'guy.png',
            '(z)'    => 'guy.png',
            '({)'    => 'guy_hug.png',
            '(})'    => 'girl_hug.png',
            ':-['    => 'bat.png',
            ':['    => 'bat.png',
            '(^)'    => 'cake.png',
            '(L)'    => 'heart.png',
            '(l)'    => 'heart.png',
            '(U)'    => 'broken_heart.png',
            '(u)'    => 'broken_heart.png',
            '(K)'    => 'kiss.png',
            '(k)'    => 'kiss.png',
            '(G)'    => 'present.png',
            '(g)'    => 'present.png',
            '(F)'    => 'rose.png',
            '(f)'    => 'rose.png',
            '(W)'    => 'wilted_rose.png',
            '(w)'    => 'wilted_rose.png',
            '(p)'    => 'camera.png',
            '(P)'    => 'camera.png',
            '(~)'    => 'film.png',
            '(@)'    => 'cat.png',
            '(dg)'    => 'dog.png',
            '(T)'    => 'phone.png',
            '(t)'    => 'phone.png',
            '(I)'    => 'lightbulb.png',
            '(i)'    => 'lightbulb.png',
            '(8)'    => 'note.png',
            '(S)'    => 'moon.png',
            '(*)'    => 'star.png',
            '(e)'    => 'envelope.png',
            '(E)'    => 'envelope.png',
            '(o)'    => 'clock.png',
            '(O)'    => 'clock.png',
            '(sn)'    => 'scargot.png',
            '(pl)'    => 'dish.png',
            '(||)'    => 'bowl.png',
            '(pi)'    => 'pizza.png',
            '(so)'    => 'ball.png',
            '(au)'    => 'car.png',
            '(um)'    => 'umb.png',
            '(ip)'    => 'isla.png',
            '(co)'    => 'pc.png',
            '(mp)'    => 'cel.png',
            '(mo)'    => 'money.png',
        );
        
        foreach(
$emoticons as $emoticons => $img) {
            
$analyzedText = str_replace($emoticons, '<img src="'.$C->SITE_URL.'themes/default/imgs/emotics/'.$img.'" height="16" width="16" />', $analyzedText);
        }
        
        
$analyzedText = str_replace('%%%', ':', $analyzedText);

        return str_replace(PHP_EOL, '<br/>',stripslashes(
$analyzedText));
    }
    
    //*************************************************************************
    
    function str_cut(
$str$mx)
    {
        return mb_strlen(
$str)>$mx ? mb_substr($str, 0, $mx-1).'...' : $str;
    }
    
    //*************************************************************************
    
    function getCaptcha()
    {
        global 
$C;
        
$Valor1 = rand(1,9);
        
$Valor2 = rand(1,9);
        
$_SESSION['captchasum'] = $Valor1 + $Valor2 ;
        
$C->ctcha1 = $Valor1;
        
$C->ctcha2 = $Valor2;
    }
    
    //*************************************************************************
    
    function clearnl(
$msg)
    {
        return preg_replace("
/(r?n){2,}/", "nn", $msg);
    }
    
    //*************************************************************************
    
     function send_mail( 
$from$to$subject$body ) {
        
$headers = '';
        
$headers .= "From$fromn";
        
$headers .= "Return-Path$fromn";
        
$headers .= "MIME-Version1.0n";
        
$headers .= 'Content-type: text/html; charset=utf-8' . "rn";
        
$headers .= "Date" . date('r', time()) . "n";
        
    
        mail( 
$to$subject , $body$headers );
    }
    
    
    function send_mail_phpmailer(
$target$subject$message)
    {
        require("
class.phpmailer.php");
        global 
$C;
        
$mymail = new PHPMailer();
        
$mybody = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        
<html xmlns="http://www.w3.org/1999/xhtml">
        <
head>
        <
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <
title>Email from '.$C->FromName.'</title>
        </
head><body>';
        $mybody .= $message;
        $mybody .= '
</body></html>';
        
        $mymail->From = $C->From;
        $mymail->FromName = $C->FromName;
        $mymail->Host = $C->Host;
        $mymail->Port = $C->Port;
        $mymail->Mailer = '
smtp';
        $mymail->AddAddress($target);
        $mymail->Subject = $subject;
        $mymail->Body = $mybody;
        $mymail->SMTPAuth = "true";
        $mymail->Username = $C->UsernameMail;
        $mymail->Password = $C->PasswordMail;
        
        $mymail->IsHTML(true);    
        
        if(!$mymail->Send()) return FALSE;
        else return TRUE;
    }

    function genSpaceEmoticons($divspace) {
        global $C;
        
        // Define smiles
        $emoticons = array(
            '
:-)'    => 'regular.png',
            '
:-D'    => 'teeth.png',
            '
:-O'    => 'omg.png',
            '
:-P'    => 'tongue.png',
            '
;-)'    => 'wink.png',
            '
:(('    => 'cry.png',
            '
:-('    => 'sad.png',
            '
:-S'    => 'confused.png',
            '
:-|'    => 'what.png',
            '
:-$'    => 'red.png',
            '
(H)'    => 'shades.png',
            '
:-@'    => 'angry.png',
            '
(A)'    => 'angel.png',
            '
(6)'    => 'devil.png',
            '
:-#'    => 'dumb.png',
            
'8o|'    => 'growl.png',
            
'8-|'    => 'nerd.png',
            
'^o)'    => 'sarcastic.png',
            
':-*'    => 'secret.png',
            
'+o('    => 'sick.png',
            
':^)'    => 'noknow.png',
            
'*-)'    => 'pensive.png',
            
'8-)'    => 'eyesrolled.png',
            
'|-)'    => 'sleepy.png',
            
'(C)'    => 'coffee.png',
            
'(Y)'    => 'thumbs_up.png',
            
'(N)'    => 'thumbs_down.png',
            
'(B)'    => 'beer_mug.png',
            
'(D)'    => 'martini.png',
            
'(X)'    => 'girl.png',
            
'(Z)'    => 'guy.png',
            
'({)'    => 'guy_hug.png',
            
'(})'    => 'girl_hug.png',
            
':-['    => 'bat.png',
            
'(^)'    => 'cake.png',
            
'(L)'    => 'heart.png',
            
'(U)'    => 'broken_heart.png',
            
'(K)'    => 'kiss.png',
            
'(G)'    => 'present.png',
            
'(F)'    => 'rose.png',
            
'(W)'    => 'wilted_rose.png',
            
'(P)'    => 'camera.png',
            
'(~)'    => 'film.png',
            
'(@)'    => 'cat.png',
            
'(dg)'    => 'dog.png',
            
'(T)'    => 'phone.png',
            
'(I)'    => 'lightbulb.png',
            
'(8)'    => 'note.png',
            
'(S)'    => 'moon.png',
            
'(*)'    => 'star.png',
            
'(E)'    => 'envelope.png',
            
'(O)'    => 'clock.png',
            
'(sn)'    => 'scargot.png',
            
'(pl)'    => 'dish.png',
            
'(||)'    => 'bowl.png',
            
'(pi)'    => 'pizza.png',
            
'(so)'    => 'ball.png',
            
'(au)'    => 'car.png',
            
'(um)'    => 'umb.png',
            
'(ip)'    => 'isla.png',
            
'(co)'    => 'pc.png',
            
'(mp)'    => 'cel.png',
            
'(mo)'    => 'money.png',
        );

        
$txtEmoticons '';
        foreach(
$emoticons as $emoticons => $img) {
            
$txtEmoticons .= '<span class="onesmile"><img onclick="insertEmoticon(''.$divspace.'', ''.$emoticons.'');" class="hand" title="'.$emoticons.'" src="'.$C->SITE_URL.'themes/default/imgs/emotics/'.$img.'" height="16" width="16" /></span>';
        }
        return 
$txtEmoticons;
    }
    
    function 
analyzeMessageChat($txtmsg) {
        global 
$C;
        
// Parse any @mentions or links
        
        
$analyzedText preg_replace(array('/(?i)b((?:https?://|wwwd{0,3}[.]|[a-z0-9.-]+[.][a-z]{2,4}/)(?:[^s()<>]+|(([^s()<>]+|(([^s()<>]+)))*))+(?:(([^s()<>]+|(([^s()<>]+)))*)|[^s`!()[]{};:'".,<>?«»“”‘’]))/', '/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '/(^|[^a-z0-9_])#(w+)/u'), array('<a href="$1" target="_blank" rel="nofollow" class="linkblue">$1</a>', '$1<span class="linkblue3"><a href="'.$C->SITE_URL.'$2">@$2</a></span>', '$1<span class="linkblue3"><a href="'.$C->SITE_URL.'search/t%%%$2">#$2</a></span>'), ($txtmsg));
        
        
        // Define smiles
        
$emoticons = array(
            ':-)'    => 'regular.png',
            ':)'    => 'regular.png',
            ':-D'    => 'teeth.png',
            ':d'    => 'teeth.png',
            ':D'    => 'teeth.png',
            ':-O'    => 'omg.png',
            ':o'    => 'omg.png',
            ':O'    => 'omg.png',
            ':-P'    => 'tongue.png',
            ':p'    => 'tongue.png',
            ':P'    => 'tongue.png',
            ';-)'    => 'wink.png',
            ';)'    => 'wink.png',
            ':(('    => 'cry.png',
            ':-('    => 'sad.png',
            ':('    => 'sad.png',
            ':-S'    => 'confused.png',
            ':s'    => 'confused.png',
            ':S'    => 'confused.png',
            ':-|'    => 'what.png',
            ':|'    => 'what.png',
            ':-$'    => 'red.png',
            ':$'    => 'red.png',
            '(H)'    => 'shades.png',
            '(h)'    => 'shades.png',
            ':-@'    => 'angry.png',
            ':@'    => 'angry.png',
            '(A)'    => 'angel.png',
            '(a)'    => 'angel.png',
            '(6)'    => 'devil.png',
            ':-#'    => 'dumb.png',
            '8o|'    => 'growl.png',
            '8-|'    => 'nerd.png',
            '^o)'    => 'sarcastic.png',
            ':-*'    => 'secret.png',
            '+o('    => 'sick.png',
            ':^)'    => 'noknow.png',
            '*-)'    => 'pensive.png',
            '8-)'    => 'eyesrolled.png',
            '|-)'    => 'sleepy.png',
            '(C)'    => 'coffee.png',
            '(c)'    => 'coffee.png',
            '(Y)'    => 'thumbs_up.png',
            '(y)'    => 'thumbs_up.png',
            '(n)'    => 'thumbs_down.png',
            '(N)'    => 'thumbs_down.png',
            '(B)'    => 'beer_mug.png',
            '(b)'    => 'beer_mug.png',
            '(D)'    => 'martini.png',
            '(d)'    => 'martini.png',
            '(X)'    => 'girl.png',
            '(x)'    => 'girl.png',
            '(Z)'    => 'guy.png',
            '(z)'    => 'guy.png',
            '({)'    => 'guy_hug.png',
            '(})'    => 'girl_hug.png',
            ':-['    => 'bat.png',
            ':['    => 'bat.png',
            '(^)'    => 'cake.png',
            '(L)'    => 'heart.png',
            '(l)'    => 'heart.png',
            '(U)'    => 'broken_heart.png',
            '(u)'    => 'broken_heart.png',
            '(K)'    => 'kiss.png',
            '(k)'    => 'kiss.png',
            '(G)'    => 'present.png',
            '(g)'    => 'present.png',
            '(F)'    => 'rose.png',
            '(f)'    => 'rose.png',
            '(W)'    => 'wilted_rose.png',
            '(w)'    => 'wilted_rose.png',
            '(p)'    => 'camera.png',
            '(P)'    => 'camera.png',
            '(~)'    => 'film.png',
            '(@)'    => 'cat.png',
            '(dg)'    => 'dog.png',
            '(T)'    => 'phone.png',
            '(t)'    => 'phone.png',
            '(I)'    => 'lightbulb.png',
            '(i)'    => 'lightbulb.png',
            '(8)'    => 'note.png',
            '(S)'    => 'moon.png',
            '(*)'    => 'star.png',
            '(e)'    => 'envelope.png',
            '(E)'    => 'envelope.png',
            '(o)'    => 'clock.png',
            '(O)'    => 'clock.png',
            '(sn)'    => 'scargot.png',
            '(pl)'    => 'dish.png',
            '(||)'    => 'bowl.png',
            '(pi)'    => 'pizza.png',
            '(so)'    => 'ball.png',
            '(au)'    => 'car.png',
            '(um)'    => 'umb.png',
            '(ip)'    => 'isla.png',
            '(co)'    => 'pc.png',
            '(mp)'    => 'cel.png',
            '(mo)'    => 'money.png',
        );
        
        if (
$C->CHAT_WITH_EMOTICONS) {
            foreach(
$emoticons as $emoticons => $img) {
                
$analyzedText = str_replace($emoticons, '<img src="'.$C->SITE_URL.'themes/default/imgs/emotics/'.$img.'" height="16" width="16" />', $analyzedText);
            }
        }
        
        
$analyzedText = str_replace('%%%', ':', $analyzedText);

        return stripslashes(
$analyzedText);
    }
    
    /*************************************/
    /*************************************/
    
    /*** Update v1.2 ***/
    
    function validateUsername(
$username) { 
        if (ereg("
^[A-Za-z0-9][A-Za-z0-9_]{5,14}$", $username)) return true; 
        else return false; 
    }
    
    /*** end Update v1.2 ***/



    
?>
Онлайн: 5
Реклама