• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

cms/common.lib.php

Go to the documentation of this file.
00001 <?php
00002 if(!defined('__PRAGYAN_CMS'))
00003 { 
00004         header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
00005         echo "<h1>403 Forbidden<h1><h4>You are not authorized to access the page.</h4>";
00006         echo '<hr/>'.$_SERVER['SERVER_SIGNATURE'];
00007         exit(1);
00008 }
00009 
00021 global $sourceFolder,$moduleFolder;
00022 
00023 require_once("smarttable.class.php");
00024 
00026 function connect() {
00027         $dbase = mysql_connect(MYSQL_SERVER, MYSQL_USERNAME, MYSQL_PASSWORD) or die("Could not connect to server");
00028         mysql_select_db(MYSQL_DATABASE) or die("Could not connect to database");
00029         return $dbase;
00030 }
00031 
00033 function disconnect() {
00034         mysql_close();
00035 }
00036 function prettyurl($str) {
00037         global $urlRequestRoot;
00038         if(strpos("a".$str,"http")==1)  if(!strpos("a".$str,hostURL())) return $str;
00039         if(strpos("a".$str,$urlRequestRoot."/cms")) return $str;
00040         
00041         $page = (isset($_GET['page']))?$_GET['page']:"/";
00042         $file="";
00043         $ch = (strpos("a".$str,hostURL())==1)?strlen(hostURL()):2;
00044         if(strripos("a".$str,".")>$ch&&($ch==2||strpos("a".$str,hostURL()."/home/")==1)) {
00045                 $file= substr($str,strripos($str,"/")+1);
00046                 $str = substr($str,0,strripos($str,"/")+1);
00047         }
00048         if(substr($str,0,3)=="../"){
00049                 $page = substr($page,0,strripos($page,"/")-1);
00050                 $page = substr($page,0,strripos($page,"/")+1);
00051         }
00052         if(strpos($str,"../")) {
00053                 $pos = strpos($str,"../");
00054                 $page = substr($page,0,strripos($page,"/")-1);
00055                 $page = substr($page,0,strripos($page,"/")+1);
00056                 $str = substr($str,0,$pos) . substr($str,$pos+3);
00057                 
00058         }
00059         $str = preg_replace("/^.\//",$urlRequestRoot."/?page=".$page,$str);
00060         $str = preg_replace("/^..\//",$urlRequestRoot."/?page=".$page,$str);
00061         $str = preg_replace("/\+/","&action=",$str);
00062         $str = preg_replace("/^".str_replace("/","\/",hostURL())."\/home/",hostURL()."/?page=",$str);
00063         $str = preg_replace("/^".str_replace("/","\/",$urlRequestRoot)."\/home/","./?page=",$str);
00064         if($file!="")
00065                 $str .= "&fileget=".$file;
00066         return $str;
00067 }
00068 
00069 function convertUrif($x,$attr) {
00070         $y="";
00071         $z = $x;
00072         $len=strlen($attr);
00073         if($len!=0)
00074         while(1) {
00075                 $z=$x;
00076                 $count=0;
00077                 if(strpos($x,$attr))
00078                         $y .= substr($x,$count,strpos($x,$attr)+$len+2);
00079                 else
00080                         $y .= substr($x,$count);
00081                 $count=strpos($x,$attr)+$len+2;
00082                 if($count==$len+2) break;
00083                 $x = substr($x,$count-1);
00084                 if($x[0]!='"'&&$x[0]!="'") {
00085                         $x = substr($x,1);
00086                         continue;
00087                 }
00088                 $x = substr($x,1);
00089                 //echo "<br>" . substr($x,0,strpos($x,"\"")) . " => " . prettyurl(substr($x,0,strpos($x,"\"")));
00090                 $count1=(strpos($x,"\"")==-1||!strpos($x,"\""))?10000:strpos($x,"\"");
00091                 $count2=(strpos($x,"'")==-1||!strpos($x,"'"))?10000:strpos($x,"'");
00092                 $count=($count1<$count2)?$count1:$count2;
00093 //              echo substr($x,0,$count) ." => ". prettyurl(substr($x,0,$count)). "<br>";
00094                 $y .= prettyurl(substr($x,0,$count));
00095                 $x = substr($x,$count);
00096         }
00097         return $y;
00098 }
00099 function convertUri($x) {
00100         $y="";
00101         $z = $x;
00102         $hsref=array(" href"," action"," src");
00103         foreach($hsref as $href) {
00104         $len=strlen($href);
00105         if($len!=0)
00106         $z=convertUrif($z,$href);
00107         }
00108         return $z;
00109 }
00110 
00115 function escape($query)
00116 {
00117         if (!get_magic_quotes_gpc()) {
00118             $query = addslashes($query);
00119         }
00120         return $query;
00121 }
00122 
00125 function URLSecurityCheck($getvars)
00126 {
00127         foreach($getvars as $var=>$val)
00128         {
00129                 if(preg_match("/[<>]/",$var) || preg_match("/[<>]/",$val)) 
00130                         return true;
00131         }
00132         return false;
00133 }
00134 
00137 function safe_html($html)
00138 {
00139         return htmlspecialchars(strip_tags($html));
00140 }
00145 function reloadTemplates()
00146 {
00147         global $sourceFolder;
00148         global $templateFolder;
00149         $templates=scandir($sourceFolder.'/'.$templateFolder);
00150         $res="<table>";
00151         $temparrr=array();
00152         foreach($templates as $tdir)
00153         {
00154                 $tdir=escape($tdir);
00155                 if(is_dir($sourceFolder.'/'.$templateFolder.'/'.$tdir) && $tdir[0]!='.' && $tdir!="common")
00156                 {
00157                         $query="INSERT IGNORE INTO `".MYSQL_DATABASE_PREFIX."templates` (`template_name`) VALUES ('$tdir')";
00158                         mysql_query($query);
00159                         if(mysql_affected_rows())
00160                                 $res.="<tr><td>$tdir</td><td><b>Found new template! Installed.</b></td></tr>";
00161                         else $res.="<tr><td>$tdir</td><td>OK</td></tr>";
00162                         $temparr[]=$tdir;
00163                 }
00164                 
00165         }
00166         $templist=join("','",$temparr); 
00167         $query="DELETE FROM `".MYSQL_DATABASE_PREFIX."templates` WHERE `template_name` NOT IN ('$templist')";
00168         mysql_query($query);
00169         if($delc=mysql_affected_rows()>0)
00170                 $res.="<tr><td colspan=2>$delc template(s) removed from database</td></tr>";
00171         return $res."</table>";
00172 }
00173 
00174 function reloadModules()
00175 {
00176         global $sourceFolder;
00177         global $moduleFolder;
00178         $modules=scandir($sourceFolder.'/'.$moduleFolder);
00179         $res="<table>";
00180         $modarr=array();
00181         foreach($modules as $module)
00182         {
00183                 $module=escape($module);
00184                 $ext=substr($module,-8);
00185                 $module=substr($module,0,-8);
00186                 if($ext==".lib.php")
00187                 {
00188                         $query="INSERT IGNORE INTO `".MYSQL_DATABASE_PREFIX."modules` (`module_name`) VALUES ('$module')";
00189                         mysql_query($query);
00190                         if(mysql_affected_rows())
00191                                 $res.="<tr><td>$module</td><td><b>Found new module! Installed.</b></td></tr>";
00192                         else $res.="<tr><td>$module</td><td>OK</td></tr>";
00193                         $modarr[]=$module;
00194                 }
00195                 
00196         }
00197         $modlist=join("','",$modarr);   
00198         $query="DELETE FROM `".MYSQL_DATABASE_PREFIX."modules` WHERE `module_name` NOT IN ('$modlist')";
00199         mysql_query($query);
00200         if($delc=mysql_affected_rows()>0)
00201                 $res.="<tr><td colspan=2>$delc module(s) removed from database</td></tr>";
00202         return $res."</table>";
00203 }
00204 
00205 
00208 function getGlobalSettings()
00209 {
00210         $query="SELECT * FROM `".MYSQL_DATABASE_PREFIX."global`";
00211         $result=mysql_query($query);
00212         $globals=array();
00213         while($row=mysql_fetch_array($result))
00214                 $globals[$row['attribute']]=$row['value'];
00215         return $globals;
00216 }
00217 
00220 function setGlobalSettings($globals)
00221 {
00222         
00223         foreach($globals as $var => $val)
00224         {
00225                 setGlobalSettingByAttribute($var,$val);
00226         }
00227 }
00228 
00230 function check_email($mail)
00231 {
00232         $domain = substr(strstr($mail,'@'),1);
00233         $ip = gethostbyname($domain);
00234         $query = "SELECT * FROM `".MYSQL_DATABASE_PREFIX."blacklist` WHERE `domain` = '$domain' OR `ip`= '$ip'";
00235         $result = mysql_query($query);
00236         $num_rows = mysql_num_rows($result);
00237         if($num_rows)
00238                 return 0;
00239         return 1;
00240 }
00243 function setGlobalSettingByAttribute($attribute,$value)
00244 {
00245         if(mysql_num_rows(mysql_query("SELECT `value` FROM `" . MYSQL_DATABASE_PREFIX . "global` WHERE `attribute` = '$attribute'")) != 0)
00246                 $query="UPDATE `".MYSQL_DATABASE_PREFIX."global` SET `value`='$value' WHERE `attribute`='$attribute'";
00247         else
00248                 $query="INSERT INTO `" . MYSQL_DATABASE_PREFIX . "global`(`attribute`,`value`) VALUES('{$attribute}','{$value}')";
00249         mysql_query($query);    
00250 }
00251 
00253 function displayerror($error_desc) {
00254         global $ERRORSTRING;
00255         $ERRORSTRING .= "<div class=\"cms-error\">$error_desc</div>";
00256 }
00257 
00259 function displayinfo($error_desc) {
00260         global $INFOSTRING;
00261         $INFOSTRING .= "<div class=\"cms-info\">$error_desc</div>";
00262         
00263 }
00264 
00266 function displaywarning($error_desc) {
00267         global $WARNINGSTRING;
00268         $WARNINGSTRING .= "<div class=\"cms-warning\">$error_desc</div>";
00269 }
00270 
00276  function arraytostring($array) {
00277         $text = "array(";
00278         $count=count($array);
00279         $x=0;
00280         foreach ($array as $key=>$value) {
00281                 $x++;
00282                 if (is_array($value)) {
00283                         if(substr($text,-1,1)==')')
00284                                 $text .= ',';
00285                         $text.='"'.$key.'"'."=>".arraytostring($value);
00286                         continue;
00287                 }
00288 
00289                 $text.="\"$key\"=>\"$value\"";
00290                 if ($count!=$x)
00291                         $text.=",";
00292         }
00293 
00294         $text.=")";
00295 
00296         if(substr($text, -4, 4)=='),),')$text.='))';
00297                 return $text;
00298 }
00299 
00305 function getUserName($userId) {
00306         if($userId <= 0) return "Anonymous";
00307         $query = "SELECT `user_name` FROM `".MYSQL_DATABASE_PREFIX."users` WHERE `user_id` = ".$userId;
00308         $result = mysql_query($query);
00309         $row = mysql_fetch_row($result);
00310         return $row[0];
00311 }
00312 
00318 function getUserFullName($userId) {
00319         if($userId <= 0) return "Anonymous";
00320         $query = "SELECT `user_fullname` FROM `".MYSQL_DATABASE_PREFIX."users` WHERE `user_id` = ".$userId;
00321         $result = mysql_query($query);
00322         $row = mysql_fetch_row($result);
00323         return $row[0];
00324 }
00325 
00331 function getUserFullNameFromEmail($email) {
00332         $query = "SELECT `user_fullname` FROM `".MYSQL_DATABASE_PREFIX."users` WHERE `user_email` = '".$email."'";
00333         $result = mysql_query($query);
00334         
00335         $row = mysql_fetch_row($result);
00336         return $row[0];
00337 }
00338 
00344 function getUserEmail($userId) {
00345         if($userId <= 0) return 'Anonymous';
00346         $query="SELECT `user_email` FROM `".MYSQL_DATABASE_PREFIX."users` WHERE `user_id` = ".$userId;
00347         $result = mysql_query($query);
00348         $row= mysql_fetch_row($result);
00349         return $row[0];
00350 }
00351 
00357 function getUserIdFromEmail($email) {
00358         if(strtolower($email) == 'anonymous') return 0;
00359         $query = 'SELECT `user_id` FROM `'.MYSQL_DATABASE_PREFIX."users` WHERE `user_email` = '".$email."'";
00360         $result = mysql_query($query);
00361         $row = mysql_fetch_row($result);
00362         return $row[0];
00363 }
00364 
00365 
00371 function getEffectivePageModule($pageId) {
00372         $pagemodule_query = "SELECT `page_module`, `page_modulecomponentid` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageId;
00373         $pagemodule_result = mysql_query($pagemodule_query);
00374         $pagemodule_row = mysql_fetch_assoc($pagemodule_result);
00375         if($pagemodule_row['page_module']=="link")      return (getEffectivePageModule($pagemodule_row['page_modulecomponentid']));
00376         return $pagemodule_row['page_module'];
00377 }
00378 
00384 function getNextModuleComponentId($modulename) {
00385                 $moduleComponentIdQuery = "SELECT MAX(page_modulecomponentid) FROM `".MYSQL_DATABASE_PREFIX."_pages` WHERE `page_module`='$modulename'";
00386                 $moduleComponentIdResult = mysql_query($moduleComponentIdQuery);
00387                 if(!$moduleComponentIdResult)
00388                         return 0;
00389                 $moduleComponentIdRow = mysql_fetch_row($moduleComponentIdResult);
00390                 if(!is_null($moduleComponentIdRow[0]))
00391                         return $moduleComponentIdRow[0] + 1;
00392                 return 1;
00393 }
00394 
00395 
00401 function getDereferencedPageId($pageId) {
00402         $pagemodule_query = "SELECT `page_module`, `page_modulecomponentid` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageId;
00403         $pagemodule_result = mysql_query($pagemodule_query);
00404         $pagemodule_row = mysql_fetch_assoc($pagemodule_result);
00405         if($pagemodule_row['page_module']=="link") {
00406                 return getDereferencedPageId($pagemodule_row['page_modulecomponentid']);
00407         }
00408         return $pageId;
00409 }
00410 
00411 
00412 
00413 function getPagePath($pageid) {
00414         $pagepath = '';
00415 
00416         while($pageid != 0) {
00417                 $pathQuery = "SELECT `page_parentid`, `page_name` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id` = ".$pageid;
00418                 $pathResult = mysql_query($pathQuery);
00419                 $pathResultRow = mysql_fetch_row($pathResult);
00420 
00421                 $pageid = $pathResultRow[0];
00422                 $pagepath = $pathResultRow[1]."/$pagepath";
00423         }
00424 
00425         return "/$pagepath";
00426 }
00427 
00428 function getPageModule($pageId) {
00429         $pagemodule_query = "SELECT `page_module` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageId;
00430         $pagemodule_result = mysql_query($pagemodule_query);
00431         $pagemodule_row = mysql_fetch_assoc($pagemodule_result);
00432         return $pagemodule_row['page_module'];
00433 }
00434 function getPageTitle($pageId) {
00435         $pagemodule_query = "SELECT `page_title` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageId;
00436         $pagemodule_result = mysql_query($pagemodule_query);
00437         $pagemodule_row = mysql_fetch_assoc($pagemodule_result);
00438         return $pagemodule_row['page_title'];
00439 }
00440 
00441 
00442 
00448 function getParentPage($pageid) {
00449         $pageparent_query = "SELECT `page_parentid` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageid;
00450         $pageparent_result = mysql_query($pageparent_query);
00451         $pageparent_row = mysql_fetch_assoc($pageparent_result);
00452         return $pageparent_row['page_parentid'];
00453 }
00454 function getPageInfo($pageid) {
00455         $pageparent_query = "SELECT `page_id`, `page_name`, `page_parentid`, `page_title`, `page_module`, `page_modulecomponentid`, `page_menurank`, `page_inheritedinfoid`, `page_displayinmenu`, `page_displaymenu`, `page_displaysiblingmenu`, `page_menutype`, `page_menudepth`, `page_image`, `page_displayicon` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageid;
00456         $pageparent_result = mysql_query($pageparent_query);
00457         $pageparent_row = mysql_fetch_assoc($pageparent_result);
00458         return $pageparent_row;
00459 }
00460 function getPageModuleComponentId($pageid) {
00461         $pageparent_query = "SELECT `page_modulecomponentid` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_id`=".$pageid;
00462         $pageparent_result = mysql_query($pageparent_query);
00463         $pageparent_row = mysql_fetch_assoc($pageparent_result);
00464         return $pageparent_row['page_modulecomponentid'];
00465 }
00466 function getPageIdFromModuleComponentId($moduleName,$moduleComponentId) {
00467         $moduleid_query = "SELECT `page_id` FROM `".MYSQL_DATABASE_PREFIX."pages` WHERE `page_module` = '".$moduleName."' AND `page_modulecomponentid` = ".$moduleComponentId;
00468         $moduleid_result = mysql_query($moduleid_query);
00469         $moduleid_row = mysql_fetch_assoc($moduleid_result);
00470         return $moduleid_row['page_id'];
00471 }
00472 
00473 function getModuleComponentIdFromPageId($pageId, $moduleName) {
00474         $moduleIdQuery = 'SELECT `page_modulecomponentid` FROM `' . MYSQL_DATABASE_PREFIX . "pages` WHERE `page_module` = '".$moduleName."' AND `page_id` = ".$pageId;
00475         $moduleIdResult = mysql_query($moduleIdQuery);
00476         $moduleIdRow = mysql_fetch_row($moduleIdResult);
00477         return $moduleIdRow[0];
00478 }
00485 function getPageDepth($pageId) {
00486         $depth = 1;
00487         if(getParentPage($pageId) == 0)
00488                 return 0;
00489         else
00490                 return $depth + getPageDepth(getParentPage($pageId));
00491 }
00492 
00493 function logInfo ($userEmail, $userId, $pageId, $pagePath, $permModule, $permAction, $accessIpAddress) {
00494         if(isRequiredMaintenance()) {
00495                 require_once("maintenance.lib.php");
00496                 runMaintenance();
00497         }
00498         if($pageId === false) $pageId = -1;
00499         if(isset($_GET['fileget']))     return false;
00500 
00501         $updateQuery = "SELECT `log_no` FROM `".MYSQL_DATABASE_PREFIX."log` WHERE `log_no` = 1";
00502         $result = mysql_query($updateQuery);
00503         
00504         if(!$result || mysql_num_rows($result) == 0)
00505                 $updateQuery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."log` (`log_no`, `user_email`, `user_id`, `page_id`, `page_path`, `perm_module`, `perm_action`, `user_accessipaddress`)
00506         VALUES ( 1  , '".$userEmail."', ".$userId.", ".$pageId.", '".$pagePath."', '".$permModule."', '".$permAction."', '".$accessIpAddress."' );";
00507     else
00508         $updateQuery = "INSERT INTO `".MYSQL_DATABASE_PREFIX."log` (`log_no`, `user_email`, `user_id`, `page_id`, `page_path`, `perm_module`, `perm_action`, `user_accessipaddress`)
00509         ( SELECT (MAX(log_no)+1)  , '".$userEmail."', ".$userId.", ".$pageId.", '".$pagePath."', '".$permModule."', '".$permAction."', '".$accessIpAddress."' FROM  `".MYSQL_DATABASE_PREFIX."log`);";
00510     
00511     if(!mysql_query($updateQuery))
00512         displayerror ("Error in logging info.");
00513     return true;
00514 }
00515 
00516 #returns true for first access of every 10 day slab
00517 #select date > sub(now, diff(now,first)%10)
00518 function isRequiredMaintenance() {
00519         $requiredQuery = "SELECT log_datetime FROM `".MYSQL_DATABASE_PREFIX."log` WHERE
00520 log_datetime >
00521 SUBDATE( SUBTIME(NOW(),CURTIME()),(
00522                 DATEDIFF( 
00523                         NOW(), ( 
00524                                 SELECT MIN(log_datetime) FROM `".MYSQL_DATABASE_PREFIX."log`
00525                                 ) 
00526                         )
00527                 )%10 
00528                 )
00529 LIMIT 0,1";
00530         $requiredResult = mysql_query($requiredQuery);
00531         if($requiredResult!=NULL && mysql_num_rows($requiredResult) == 0) { 
00532                 return true;
00533         }
00534         return false;
00535 }
00536 
00542 function convertToHttps($url){
00543         if(!strncasecmp("https://",$url,8))
00544                 return $url;
00545         else
00546                 return str_replace("http://","https://",$url);
00547 }
00548 
00554 function convertToHttp($url){
00555         if(!strncasecmp("http://",$url,7))
00556                 return $url;
00557         else {
00558                 $pos = strpos($url, '://');
00559                 if($pos >= 0) {
00560                         return 'http://' . substr($url, $pos + 3);
00561                 }
00562                 else return $url;
00563         }
00564 }
00565 
00566 function verifyHttps($url){
00567         if(!strncasecmp("https://",$url,7))
00568                 return true;
00569         else 
00570                 return false;
00571 }
00572 
00573 function selfURI() {
00574     $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
00575     $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
00576     $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
00577         return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
00578 }
00579 
00580 function hostURL() {
00581     $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
00582     $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s;
00583     $location = substr($_SERVER['SCRIPT_NAME'],0,strpos($_SERVER['SCRIPT_NAME'],"/index.php"));
00584     $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
00585         return $protocol."://".$_SERVER['SERVER_NAME'].$port.$location;
00586 }
00587 
00599 function replaceAction($url,$old,$new) {
00600    $offset = strpos($url,"action=$old");
00601    $url = substr_replace($url,$new,$offset+7,strlen($old));
00602    return $url;
00603 }
00604 
00605 function strleft($s1, $s2) {
00606     return substr($s1, 0, strpos($s1, $s2));
00607 }
00608 
00609 function updateUserPassword($user_email,$user_passwd) {
00610         $query = "UPDATE `" . MYSQL_DATABASE_PREFIX . "users` SET `user_password`= '".md5($user_passwd)."' WHERE `" . MYSQL_DATABASE_PREFIX . "users`.`user_email` = '" . $user_email . "'";
00611                                                         mysql_query($query) or die(mysql_error() . " in function updateUserPassword");
00612 }
00613 
00614 function getUserInfo($user_email) {
00615         $query = "SELECT `user_id`,`user_password`,`user_name`,`user_activated`,`user_lastlogin`,`user_loginmethod` FROM `" . MYSQL_DATABASE_PREFIX . "users` WHERE `user_email` = '" . $user_email . "'";
00616         $result = mysql_query($query) or die(mysql_error() . " in function getUserInfo : common.lib.php");
00617         return mysql_fetch_assoc($result);
00618 }
00619 
00620 /*
00621 @todo should be moved to email.lib.php ,or is it really used ?
00622 */
00623 class messenger {
00624                 var $vars;
00625                 
00626                         
00627                 function assign_vars($vars) {
00628                                 $this->vars = (empty($this->vars)) ? $vars : $this->vars + $vars;
00629                                 }
00630                                 
00631                 function mailer($to,$mailtype,$key,$from) {
00632                                 
00633                                 if(empty($from)) $from="from: ".CMS_TITLE." <".CMS_EMAIL.">";
00634                                 
00635                                 //init mail template file path
00636                                 $mail_filepath= MAILPATH."/".LANGUAGE."/email/$mailtype.txt"; 
00637                                 $drop_header = '';
00638                                 
00639                                 if(!file_exists($mail_filepath)) {displayerror(safe_html("NO FILE called $mail_filepath FOUND !"));} //check file
00640                                 if(($data = @file_get_contents($mail_filepath)) === false) {displayerror("$mail_filepath FILE READ ERROR !");} //read contents
00641                                 
00642                                 //escape quotes
00643                                 $body = str_replace ("'", "\'", $data); 
00644                                 //replace the vars in file content with those defined
00645                                 $body = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . ((isset(\$this->vars['\\1'])) ? \$this->vars['\\1'] : '') . '", $body);
00646                                 //Make the content parseable
00647                                 eval("\$body = '$body';");
00648                                 
00649                                 //Extract the SUBJECT from mail content
00650                                 $match=array();
00651                                 if (preg_match('#^(Subject:(.*?))$#m', $body, $match)) {
00652                                         //Find SUBJECT
00653                                         $subject = (trim($match[2]) != '') ? trim($match[2]) :  $subject ;
00654                                         $drop_header .= '[\r\n]*?' . preg_quote($match[1], '#');
00655                                 }
00656                                 if ($drop_header) {
00657                                         //Remove SUBJECT from BODY of mail
00658                                         $body = trim(preg_replace('#' . $drop_header . '#s', '', $body));
00659                                 }
00660                                 
00661                                 //Debug info
00662                                 //echo displayinfo($from.' <br> '.$to.' <br> '.$subject.' <br> '.$body);
00663                                 
00664                                 //Send mail 
00665                                 global $debugSet;
00666                                 if($debugSet=="on")
00667                                 {
00668                                         displayinfo("Vars :".arraytostring($this->vars));
00669                                         displayinfo("Mail sent to $to from $from with subject $subject and body $body");
00670                                         
00671                                 }
00672                                 return mail($to, $subject, $body, $from);
00673                         }
00674                                 
00675         }
00676 
00677 function getAvailableTemplates()
00678 {
00679         $query="SELECT template_name FROM `".MYSQL_DATABASE_PREFIX."templates`";
00680         $result=mysql_query($query);
00681         $templates=array();
00682         $i=0;
00683         while($row=mysql_fetch_row($result))
00684         {
00685                 $templates[$i]=$row[0];
00686                 $i++;
00687         }
00688         
00689         return $templates;
00690 }
00691 
00692 function getAvailableModules()
00693 {
00694         $query="SELECT `module_name` FROM `".MYSQL_DATABASE_PREFIX."modules`";
00695         $result=mysql_query($query);
00696         $templates=array();
00697         $i=0;
00698         while($row=mysql_fetch_row($result))
00699         {
00700                 $templates[$i]=$row[0];
00701                 $i++;
00702         }
00703         
00704         return $templates;
00705 }
00706 
00707 function getTableFieldsName($tablename,$exclude="user_profilepic")
00708 {
00709         $query="SELECT * FROM ".MYSQL_DATABASE_PREFIX.$tablename;
00710         $result=mysql_query($query);
00711         $numfields=mysql_num_fields($result);
00712         $fields=array();
00713         $i=0;
00714         $exclist=explode(",",$exclude);
00715         while($i<$numfields)
00716         {
00717                 $meta=mysql_fetch_field($result,$i);
00718                 if($meta && array_search($meta->name,$exclist)===FALSE)
00719                 {
00720                         $fields[$i]=$meta->name;
00721                 }
00722                 $i++;
00723         }
00724         return $fields;
00725 }
00726 
00727 function getNextUserId()
00728 {
00729         $query="SELECT max(user_id) FROM ".MYSQL_DATABASE_PREFIX."users";
00730         $result=mysql_query($query);
00731         $row=mysql_fetch_row($result);
00732         return $row[0]+1;
00733 }
00734 
00735 function showBreadcrumbSubmenu()
00736 {
00737         $query="SELECT `value` FROM `".MYSQL_DATABASE_PREFIX."global` WHERE `attribute`='breadcrumb_submenu'";
00738         $result = mysql_fetch_row(mysql_query($query));
00739         return $result[0];
00740 }
00741 
00742 function getFileActualPath($moduleType,$moduleComponentId,$fileName)
00743 {
00744         $query = "SELECT * FROM `" . MYSQL_DATABASE_PREFIX . "uploads` WHERE  `upload_filename`= '". escape($fileName). "' AND `page_module` = '".escape($moduleType)."' AND `page_modulecomponentid` = '".escape($moduleComponentId)."'";
00745         $result = mysql_query($query) or die(mysql_error() . "upload L:85");
00746         $row = mysql_fetch_assoc($result);
00752         global $sourceFolder,$uploadFolder;
00753         $upload_fileid = $row['upload_fileid'];
00754         
00755         $filename = str_repeat("0", (10 - strlen((string) $upload_fileid))) . $upload_fileid . "_" . $fileName;
00756         
00757         $file = $sourceFolder . "/" . $uploadFolder . "/" . $moduleType . "/" . $filename;
00758         return $file;
00759 }
00763 function iscurlinstalled() {
00764   if  (in_array  ('curl', get_loaded_extensions())) {
00765     return true;
00766   }
00767   else{
00768     return false;
00769   }
00770 }
00771 $curl_message="cURL extention is not enabled/installed on your system. OpenID requires this extention to be loaded. Please enable cURL extention. (This can be done by uncommenting the line \"extension=curl.so\" in your php.ini file). OpenID can't be enabled until you enable cURL.";
00772 function censor_words($text)
00773 {
00774         $query = "SELECT `value` FROM `".MYSQL_DATABASE_PREFIX."global` WHERE `attribute` = 'censor_words'";
00775         $words = mysql_query($query);
00776         $words = mysql_fetch_row($words);
00777         $replace = "<b>CENSORED</b>";
00778         if($words[0]=='')
00779                 return $text;
00780         else
00781                 $res = preg_replace("/$words[0]/i",$replace,$text);
00782         return $res;
00783 }
00784 

Generated on Mon Mar 14 2011 05:35:29 for Pragyan CMS by  doxygen 1.7.1