Pomocné funkcie
V podstate všetky slúžia na validáciu parametra $value podľa zadaného reg. výrazu okrem funkcie debugArray(), ktoré vypisuje obsah poľa.
function email( $value ) {
return( ereg( "^[^@ ]+@([a-zA-Z0-9-]+\.)+([a-zA-Z0-9-]{2,4})$", $value ) )
}
function zip( $value ) {
return( ereg( "^[0-9]{5}$", str_replace( ' ', '', $value ) ) )
}
function ico( $value ) {
return( ereg( "^[0-9]{8}$", str_replace( ' ', '', $value ) ) )
}
function icdph( $value ) {
return( ereg( "^[A-Z]{2}[0-9]{10}$", str_replace( ' ', '', $value ) ) )
}
function password( $value ) {
return( ereg( "^[a-z0-9]{5,20}$", $value ) )
}
function debugArray( $name = '', &$array ) {
return ( '<pre><strong>'.$name.'</strong><br />'.print_r( $array, true ).'</pre>' );
}
Kontrola správnosti dátumu 1
/**
* Eval date, input format: dd.mm.yyyy
*
* @param string $value: dd.mm.yyyy
* @return bool return: evaluation result
*/
function evaldate( $value ) {
$value = trim( $value );
if( $value == '' ) return false;
$date = explode( '.', $value );
if( isset( $date[0] ) && isset( $date[1] ) && isset( $date[2] ) && $date[0] > 0 && $date[1] > 0 && $date[2] > 0 ) {
if( checkdate( $date[1], $date[0], $date[2] ) )
return true;
}
return false;
}
Kontrola správnosti dátumu 2
/**
* Check Czech/Slovak format of date DD. MM. RRRR don't required zeros and spacesbetween DD and MM
*
* @author Vebloud
* @url www.manualy.net/article.php
*
* @param string $to_validate: date string
* @return bool return: result true/false
*/
function isDate( $to_validate ) {
$RegExp = "/^(\d{1,2})\. ?(\d{1,2})\. ?(\d{4})$/";
return preg_match( $RegExp, $to_validate, $match ) && checkdate( $match[2], $match[1], $match[3] );
}
Výsledky kontroly dátumu
Input date: 30.9.2008
Result validation: OK
Input date: 28. 2. 2007
Result validation: OK
Input date: 30-9-2008
Result validation: Error
Input date: 30.2.2007
Result validation: Error
Konverzia dátumu
Zdroj: Jiří Kosek, PHP - Tvorba interaktivních internetových aplikací
$date = '2008-08-22'; // output format: 22.08.2008
if( ereg( "^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$", $date, $arr ) )
echo 'Prevod datumu z '.$date.' na '.$arr[3].'.'.$arr[2].'.'.$arr[1];
else
echo 'Nesprávny formát dátumu: '.$date;
Generátor odkazov
Nahradzuje vo vstupnom texte URL adresy živými odkazmi (tagmi anchor).
/**
* Convert text with email and URL addres to text with anchors.
*
* 1. convert support@pogoda.in into <a href="mailto:support@pogoda.in">support@pogoda.in</a>
* 2. convert www.pogoda.in/new_york/eng/ into <a href="http://pogoda.in/new_york/eng/">pogoda.in/new_york/eng/</a>
* 3. convert www.pogoda.in/new_york/eng/ into <a href="http://www.pogoda.in/new_york/eng/">www.pogoda.in/new_york/eng/</a>
*
* @author Vladimir Luchaninov, Robert Gonda
* @url www.php.net/function.eregi-replace
*
* @param string $text: source string
* @return string return: parsed string
*/
function replaceLinks( $text ) {
$text = ereg_replace('[-a-z0-9.!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*', '<a href="mailto:\\0">\\0</a>',$text);
$text = ereg_replace('[a-zA-Z]+://(([.]?[a-zA-Z0-9_/-?&])*)', '<a href="\\0">\\1</a>',$text);
$text = ereg_replace('(^| )(www([-]*[.]?[a-zA-Z0-9_/-?&%])*)', ' <a href="http://\\2">\\2</a>',$text);
return $text;
}
Odoslanie mailu
Text mailu sa generuje zo šablóny.
class functions {
// Site emails
var $adminEmail = 'email@email.sk';
var $fromEmail = 'email@email.sk';
var $fromName = 'Sender name';
var $toEmail = '';
var $path = 'typo3conf/ext/rtgproject/cron/';
var $mailTemplateNames;
var $mailTemplates;
// FE users page
var $pidUsers = 96;
var $pidUsersNonConfirmed = 231;
var $confirmLink = 'http://www.sitename.sk/.../###UID###/index.html';
function sendMail( $temp = '', $email = '', &$user = false, $type = 'user' ) {
// Mail headers
$subject = 'Upozornenie';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "Content-Transfer-Encoding: quoted-printable";
$headers[] = "FROM: ".$this->fromName." <".$this->fromEmail.">";
// Create mail form template
if( $temp != '' ) {
$template = $this->mailTemplates[$temp];
$patterns = array(
0 => '/###FE_USERS_UID###/',
'/###FE_USERS_TITLE###/',
'/###FE_USERS_NAME###/',
'/###FE_USERS_TX_RTGPROJECT_SURNAME###/',
'/###FE_USERS_TX_RTGPROJECT_TITLE_POST###/',
'/###FE_USERS_USERNAME###/',
'/###FE_USERS_EMAIL###/',
'/###FE_USERS_CRDATE###/',
'/###CONFIRM_LINK###/',
);
$replacements = array(
0 => $user['uid'],
$user['title'],
$user['name'],
$user['tx_rtgproject_surname'],
$user['tx_rtgproject_title_post'],
$user['username'],
$user['email'],
$user['crdate'],
str_replace ( '###UID###', $user['uid'], $this->confirmLink ),
);
$text = preg_replace( $patterns, $replacements, $template );
return mail( $email, $subject, $text, implode( $headers, chr( 10 ) ) );
}
return false;
}
}
Generátor typoscriptu
Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.