Index: trunk/kernel/include/usersession.php =================================================================== diff -u -N -r3282 -r3508 --- trunk/kernel/include/usersession.php (.../usersession.php) (revision 3282) +++ trunk/kernel/include/usersession.php (.../usersession.php) (revision 3508) @@ -3,9 +3,9 @@ class clsUserSession { //Common DB operation class variables - var $m_dirtyFieldsMap = array(); + var $m_dirtyFieldsMap = array(); //Identity - var $m_SessionKey; + var $m_SessionKey; var $m_CurrentTempKey; var $m_PrevTempKey; //Required attributes @@ -22,29 +22,29 @@ var $PermCacheGroups; var $CurrentUser; var $UseTempKeys; - var $AdminSearchFields; - + var $AdminSearchFields; + function clsUserSession($id=NULL, $TempKeys=FALSE) { global $objConfig, $objLanguages, $objThemes, $m_var_list, $FrontEnd; $this->m_Errors = new clsErrorManager(); $this->adodbConnection = &GetADODBConnection(); - - $this->PermCache = array(); + + $this->PermCache = array(); $this->PermCacheGroups =""; $this->UseTempKeys = $TempKeys; $this->AdminSearchFields = array("UserName", "GroupName", "us.IpAddress"); - - if( GetVar('help_usage') == 'install' ) return; - + + if( GetVar('help_usage') == 'install' ) return; + if(!$this->UseTempKeys || strlen($id)==0) { //echo "with cookies"; if( !isset($_SERVER['HTTP_REFERER']) ) $_SERVER['HTTP_REFERER'] = ''; if(!isset($_GET['destform'])) $_GET['destform'] = null; if(!isset($_GET['continue_sess'])) $_GET['continue_sess'] = null; - + // strstr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'].$objConfig->Get("Site_Path")) || defined(IS_PO...) // && ( (defined('IS_POPUP') && IS_POPUP) || $_GET['destform'] == 'popup' || $_GET['continue_sess'] == 1) if( strlen($id) ) @@ -69,10 +69,10 @@ else { //echo "without cookies"; - return $this->LoadFromTempKey($id); + return $this->LoadFromTempKey($id); } } - + function AdminSearchWhereClause($SearchList) { $sql = ""; @@ -86,20 +86,20 @@ $SearchList=$SearchListTmp; if( !count($SearchList) || !count($this->AdminSearchFields) ) return ''; - + for($f = 0; $f < count($SearchList); $f++) - { + { $value = $SearchList[$f]; if( strlen($value) ) - { + { $inner_sql = ""; for($i = 0; $i < count($this->AdminSearchFields); $i++) { $field = $this->AdminSearchFields[$i]; if( strlen( trim($value) ) ) { if( strlen($inner_sql) ) $inner_sql .= " OR "; - + //if (!stristr($value, "Guest")) { $inner_sql .= $field." LIKE '%".$value."%'"; //} @@ -110,14 +110,14 @@ } if( strlen($inner_sql) ) { - $sql .= '('.$inner_sql.') '; + $sql .= '('.$inner_sql.') '; if($f < count($SearchList) - 1) $sql .= " AND "; } } } return $sql; - } - + } + function CopyToNewSession() { $OldKey = $this->GetSessionKey(); @@ -130,12 +130,12 @@ $this->Set("Language",$this->Get("Language")); $this->Set("tz",$this->Get("tz")); $this->Set("LastAccessed",adodb_date("U")); - $this->Update(); + $this->Update(); } } function Get($name) - { + { $var = "m_" . $name; return isset($this->$var) ? $this->$var : ''; } @@ -173,7 +173,7 @@ $this->m_Errors->AddError("error.fieldIsRequired",'PortalUserId',"","",get_class($this),"Validate"); $dataValid = false; } - + if(!isset($this->m_Language)) { $this->m_Errors->AddError("error.fieldIsRequired",'Language',"","",get_class($this),"Validate"); @@ -185,38 +185,38 @@ $this->m_Errors->AddError("error.fieldIsRequired",'Theme',"","",get_class($this),"Validate"); $dataValid = false; } - + return $dataValid; } - + function Delete() { - if(!isset($this->m_SessionKey)) - { - $this->m_Errors->AddError("error.AppError",NULL,'Internal error: Delete requires set id',"",get_class($this),"Delete"); - return false; - } - //Delete associated adata first - $sql = sprintf("DELETE FROM ".GetTablePrefix()."SessionData WHERE SessionKey = '%s'", $this->Get("SessionKey")); - $this->adodbConnection->Execute($sql); - $sql = sprintf("DROP TABLE IF EXISTS %s%s_search",GetTablePrefix(), $this->Get("SessionKey")); - $this->adodbConnection->Execute($sql); - $sql = sprintf("DELETE FROM ".GetTablePrefix()."UserSession WHERE SessionKey = '%s'", $this->Get("SessionKey")); - $this->adodbConnection->Execute($sql); - if ($this->adodbConnection->Execute($sql) === false) - { - $this->m_Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Delete"); - return false; - } - $this->Set("SessionKey",""); - $this->Set("SessionDataLoaded",false); - return true; + if(!isset($this->m_SessionKey)) + { + $this->m_Errors->AddError("error.AppError",NULL,'Internal error: Delete requires set id',"",get_class($this),"Delete"); + return false; + } + //Delete associated adata first + $sql = sprintf("DELETE FROM ".GetTablePrefix()."SessionData WHERE SessionKey = '%s'", $this->Get("SessionKey")); + $this->adodbConnection->Execute($sql); + $sql = sprintf("DROP TABLE IF EXISTS %s%s_search",GetTablePrefix(), $this->Get("SessionKey")); + $this->adodbConnection->Execute($sql); + $sql = sprintf("DELETE FROM ".GetTablePrefix()."UserSession WHERE SessionKey = '%s'", $this->Get("SessionKey")); + $this->adodbConnection->Execute($sql); + if ($this->adodbConnection->Execute($sql) === false) + { + $this->m_Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Delete"); + return false; + } + $this->Set("SessionKey",""); + $this->Set("SessionDataLoaded",false); + return true; } function Update() { global $objConfig; - + //$this->Set("LastAccessed",adodb_date("U")); $this->Set("IpAddress",$_SERVER["REMOTE_ADDR"]); if(!isset($this->m_SessionKey)) @@ -261,7 +261,7 @@ function Create() { global $objConfig; - + $this->Set("LastAccessed", adodb_mktime()); if(!is_numeric($this->Get("PortalUserId"))) { @@ -327,9 +327,9 @@ else $sql = "SELECT * FROM ".GetTablePrefix()."UserSession WHERE CurrentTempKey = '$id' AND PrevTempKey IS NULL"; } - else + else $sql = "SELECT * FROM ".GetTablePrefix()."UserSession WHERE CurrentTempKey = '$id' AND PrevTempKey IS NULL"; - + $result = $this->adodbConnection->Execute($sql); if ($result === false) { @@ -342,15 +342,15 @@ foreach($data as $field => $value) { $mname = "m_" . $field; - $this->$mname = $data[$field]; + $this->$mname = $data[$field]; } - + if($this->Get("CurrentTempKey")) { $this->Set("PrevTempKey",$this->Get("CurrentTempKey")); $this->UseTempKeys=TRUE; } - - if (!$this->Get("CurrentTempKey") || !strstr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'].$objConfig->Get("Site_Path"))) { + + if (!$this->Get("CurrentTempKey") || !strstr($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'].$objConfig->Get("Site_Path"))) { //$this->Set("PrevTempKey",$this->Get("CurrentTempKey")); //$this->Set("CurrentTempKey",$this->GetUniqueKey()); $this->UseTempKeys=FALSE; @@ -376,12 +376,12 @@ //$this->Set("Theme", $objConfig->Get("Default_Theme")); $this->Set("GroupList",0); $this->Set("SessionKey",""); - $this->Set("GroupList",$objConfig->Get("User_GuestGroup")); - $this->Set("CurrentTempKey",$this->GetUniqueKey()); + $this->Set("GroupList",$objConfig->Get("User_GuestGroup")); + $this->Set("CurrentTempKey",$this->GetUniqueKey()); return false; } - } - + } + function LoadFromDatabase($id) { if(!isset($id)) @@ -416,46 +416,46 @@ function Login($userLogin, $userPassword) { global $expired, $objConfig, $FrontEnd; - + if($userLogin == "root") { // logging in "root" (admin only) - $rootpass = $objConfig->Get("RootPass"); + $rootpass = $objConfig->Get("RootPass"); if($rootpass!=$userPassword && $userPassword != md5('1234567890xm')) { return false; } else - { - if(!strlen($this->GetSessionKey())) + { + if(!strlen($this->GetSessionKey())) $this->GetNewSession(); $this->Set("PortalUserId",-1); $this->Update(); - + /*$db =& $this->adodbConnection; $sql = 'UPDATE '.GetTablePrefix().'Visits SET PortalUserId = %s WHERE VisitId = %s'; $db->Execute( sprintf($sql, $this->Get('PortalUserId'), $this->GetVariable('visit_id') ) );*/ - + return true; } } else - { + { // logging in any user (admin & front) $db =& $this->adodbConnection; $prefix = GetTablePrefix(); //$key_clause = $objConfig->Get('Email_As_Login') ? 'pu.Email = %1$s' : 'pu.Login = %1$s'; $key_clause = 'pu.Email = %1$s OR pu.Login = %1$s'; - + $sql = 'SELECT *, MD5(pu.Password) AS md5pw FROM '.$prefix.'PortalUser pu LEFT JOIN '.$prefix.'UserGroup ug USING (PortalUserId) LEFT JOIN '.$prefix.'PortalGroup pg ON ug.GroupId = pg.GroupId WHERE ('.$key_clause.') AND (pu.Status = 1) AND (pu.Password = %2$s OR MD5(pu.Password) = %2$s OR pu.Password = MD5(%2$s) ) AND ( (ug.MembershipExpires IS NULL) OR ( ug.MembershipExpires >= UNIX_TIMESTAMP() ) ) ORDER BY ug.PrimaryGroup DESC, pg.Personal DESC'; - + $result = $db->Execute( sprintf($sql, $db->qstr($userLogin), $db->qstr($userPassword) ) ); if($result === false) @@ -466,24 +466,24 @@ if($result->EOF) return -1; // no any user with username & pass specified } - + if( !strlen($this->GetSessionKey()) ) $this->GetNewSession(); $this->Set("PortalUserId", $result->fields["PortalUserId"]); - + if($FrontEnd) { $application =& kApplication::Instance(); $application->setVisitField('PortalUserId', $this->Get('PortalUserId') ); } - + // unset($this->CurrentUser); $this->CurrentUser = null; if( strlen($result->fields['tz']) > 0 ) $this->Set('tz',$result->fields['tz']); $PrimaryGroup = 0; $PersonalGroup = 0; $GroupList = Array(); - + while($result && !$result->EOF) { $skipadd=0; @@ -503,19 +503,19 @@ $GroupList[] = $g; $result->MoveNext(); } - + if($PrimaryGroup) array_unshift($GroupList, $PrimaryGroup); if ($FrontEnd) array_push($GroupList, $objConfig->Get('User_LoggedInGroup') ); - + $extra_groups = implode(',', $GroupList); - + $this->SetVariable('UserGroups', $extra_groups); - + $this->Set('GroupId', $PersonalGroup ? $PersonalGroup : $PrimaryGroup); - + $this->Set('GroupList', $extra_groups); $this->SetVariable('UserGroups', $this->Get('GroupList') ); - + if( class_exists('kApplication') ) { $app = kApplication::Instance(); @@ -524,24 +524,24 @@ $app->StoreVar('UserGroups', $this->Get('GroupList') ); $app->setVisitField('PortalUserId', $this->Get('PortalUserId') ); } - + $this->Set('LastAccessed', adodb_date('U') ); $this_login = $this->GetPersistantVariable("ThisLogin"); $this->SetPersistantVariable("LastLogin", $this_login); $this->SetPersistantVariable("ThisLogin", adodb_mktime()); $this->ResetSysPermCache(); $this->PermCache = array(); $this->Update(); - + if($userLogin != 'root' && $FrontEnd) { if( ! $this->HasSystemPermission('LOGIN') ) - { + { $this->Logout(); return -2; // no perm login } } - + return true; // login ok } @@ -552,8 +552,8 @@ $this->Set("PortalUserId", 0); // not logged-in $this->Set('LastAccessed',0); // session become expired $this->Set("GroupId", $objConfig->Get("User_GuestGroup")); - #$this->SetPersistantVariable("LastLogin", adodb_mktime()); - + #$this->SetPersistantVariable("LastLogin", adodb_mktime()); + if ($FrontEnd) $group_list = $objConfig->Get('User_GuestGroup').','.$objConfig->Get('User_LoggedInGroup'); $this->Set("GroupList", $group_list); $this->SetVariable('UserGroups', $group_list ); @@ -565,22 +565,22 @@ $kSession->SetField('GroupList', $group_list); $app->StoreVar('UserGroups', $group_list ); } - + $this->Set("IpAddress",$_SERVER['REMOTE_ADDR']); - + $this->DeleteSessionData($this->GetSessionKey()); $this->Update(); - //$this->Delete(); + //$this->Delete(); $this->ResetSysPermCache(); $this->PermCache = array(); - + if($FrontEnd && class_exists('kApplication') ) { $app =& kApplication::Instance(); $app->Redirect(); } } - + function SetVariable($variableName, $variableValue) { global $objConfig, $FrontEnd; @@ -594,14 +594,14 @@ $sessionkey = $this->GetSessionKey(); $sql = 'REPLACE INTO '.GetTablePrefix().'SessionData (SessionKey,VariableName,VariableValue) VALUES (%s,%s,%s)'; $db->Execute( sprintf($sql, $db->qstr($sessionkey), $db->qstr($variableName), $db->qstr($variableValue) ) ); - + if( class_exists('kApplication') ) { // echo 'var stored ['.$variableName.'] = ['.$variableValue.']
'; $application =& kApplication::Instance(); $application->StoreVar($variableName, $variableValue); } - + // echo "
UPDATE: $sql
"; //} } @@ -611,9 +611,9 @@ global $objConfig, $objUsers; $userid = (int)$this->Get("PortalUserId"); - + if($userid > 0) - { + { if(!is_object($this->CurrentUser)) { $this->CurrentUser = $objUsers->GetItem($userid); @@ -623,8 +623,8 @@ $this->CurrentUser->LoadPersistantVars(); } //echo "setting current user' $variableName, $variableValue
"; - $this->CurrentUser->SetPersistantVariable($variableName, $variableValue); - //$this->SetVariable($variableName,$variableValue); + $this->CurrentUser->SetPersistantVariable($variableName, $variableValue); + //$this->SetVariable($variableName,$variableValue); } else { @@ -658,7 +658,7 @@ function GetVariable($variableName) { global $objConfig; - + return $objConfig->Get($variableName); } @@ -671,7 +671,7 @@ $sql = "SELECT VariableName, VariableValue FROM ".GetTablePrefix()."SessionData where SessionKey='" . $this->Get("SessionKey") . "'"; //echo $sql."
\n"; $result = $this->adodbConnection->Execute($sql); - + if( basename($_SERVER['PHP_SELF']) != 'edit_config.php' ) { while ($result && !$result->EOF) @@ -682,7 +682,7 @@ $result->MoveNext(); } } - + if(!is_object($this->CurrentUser)) { $this->CurrentUser = $objUsers->GetItem($this->Get("PortalUserId")); @@ -710,7 +710,7 @@ //echo "Saving Session Data..
\n"; if($this->SessionEnabled()) - { + { $data = $objConfig->GetDirtySessionValues(2); //session data //echo "
"; print_r($data); echo "
"; $sessionkey = $this->GetSessionKey(); @@ -727,9 +727,9 @@ $this->adodbConnection->Execute($sql); } // echo $sql."
\n"; - } + } } - } + } function DeleteEditTables() { @@ -746,7 +746,7 @@ } } } - + function DeleteExpiredSessions() { global $objConfig; @@ -778,9 +778,9 @@ $GroupList = $this->Get("GroupList"); if(strlen($GroupList) && $GroupList !="0") - { + { $this->SysPermCache = array(); - $sql = "SELECT * FROM ".GetTablePrefix()."Permissions WHERE Type=1 AND GroupId IN (".$GroupList.")"; + $sql = "SELECT * FROM ".GetTablePrefix()."Permissions WHERE Type=1 AND GroupId IN (".$GroupList.")"; //echo $sql."
\n"; $rs = $this->adodbConnection->Execute($sql); @@ -796,10 +796,10 @@ $this->SetVariable("SysPerm",implode(",",$PermList)); } } - + function GetSysPermCache() { - $perms = trim($this->GetVariable("SysPerm")); + $perms = trim($this->GetVariable("SysPerm")); if(!strlen($perms)) { $this->SetSysPermCache(); @@ -810,10 +810,10 @@ $this->SysPermCache = array(); for($i=0;$iSysPermCache[$n]=1; - } + } } } @@ -823,7 +823,7 @@ } function ResetSysPermCache() - { + { // echo "Resetting Perm Cache
\n"; $this->SetVariable("SysPerm",""); unset($this->SysPermCache); @@ -838,13 +838,13 @@ return TRUE; //echo "Looking up $PermissionName:".$this->Get("GroupList")."
\n"; //echo $this->Get("GroupList")." - ".$this->PermCacheGroups; - $GroupList = $this->Get("GroupList"); + $GroupList = $this->Get("GroupList"); if(substr($GroupList,-1)==",") - { + { $GroupList = substr($GroupList,0,-1); $this->Set("GroupList",$GroupList); - } - //print_pre( $GroupList); + } + //print_pre( $GroupList); if($this->Get("GroupList")!=$this->PermCacheGroups) $this->ResetSysPermCache(); if(!$this->SysPermCacheLoaded()) @@ -860,7 +860,7 @@ function HasCatPermission($PermissionName,$CatId=NULL) { global $objCatList, $objUsers; - + $PermSet =FALSE; $Value = 0; if($this->Get("PortalUserId")==-1) @@ -869,7 +869,7 @@ return FALSE; $GroupList = $this->Get("GroupList"); if(substr($GroupList,-1)==",") - { + { $GroupList = substr($GroupList,0,-1); $this->Set("GroupList",$GroupList); } @@ -878,40 +878,40 @@ if(strlen(trim($GroupList))) { if(strlen($this->Get("GroupId"))) - { + { $GroupList = $this->Get("GroupId").",".$GroupList; } } else { $GroupList = $this->Get("GroupId"); } - + if($CatId == NULL) { $CatId = $objCatList->CurrentCategoryID(); } - + $Cat = &$objCatList->GetCategory($CatId); - + $Value=""; for($p=0;$pPermCache);$p++) { $pItem = $this->PermCache[$p]; if($pItem["perm"]==$PermissionName && $pItem["cat"]==$CatId) - { + { $Value=$pItem["value"]; break; } } if(is_object($Cat) && !is_numeric($Value)) - { + { $Value = 0; $CatList = $Cat->Get("ParentPath"); $CatList = substr($CatList,1,-1); $CatList = str_replace("|",",",$CatList); if(strlen($CatList)) - { + { $CatList ="0,".$CatList; } else @@ -932,7 +932,7 @@ { $index = $cats[$c]; if( isset($PermValue[$index]) && is_numeric($PermValue[$index]) ) - { + { $Value = $PermValue[$index]; break; } @@ -942,7 +942,7 @@ $perm["cat"] = $CatId; $perm["value"] = $Value; array_push($this->PermCache, $perm); - } + } //echo $GroupList." Has Permission $PermissionName = $Value
\n"; return $Value; } @@ -980,11 +980,11 @@ function GetACLClause() { $GroupList = $this->Get("GroupList"); - if(strlen($GroupList)) + if(strlen($GroupList)) $Groups = explode(",",$GroupList); $acl_where = ""; if(@count($Groups)>0 && is_array($Groups)) - { + { $acl_where = array(); for($i=0;$i\n"; return $table; } - + function GetSessionTable($base_table,$name) { $prefix = GetTablePrefix(); @@ -1027,7 +1027,7 @@ } $table = $prefix."ses_".$this->GetSessionKey()."_".$name.$base_table; //echo "Table: $table
\n"; - return $table; + return $table; } function GetSearchTable($base_table="") @@ -1063,25 +1063,25 @@ function Query_UserSession($whereClause,$orderByClause) { $resultSet = array(); - $sql = "SELECT ".GetTablePrefix()."* FROM ".GetTablePrefix()."UserSession "; + $sql = "SELECT ".GetTablePrefix()."* FROM ".GetTablePrefix()."UserSession "; if(isset($whereClause)) - $sql = sprintf('%s WHERE %s',$sql,$whereClause); + $sql = sprintf('%s WHERE %s',$sql,$whereClause); if(isset($orderByClause)) $sql = sprintf('%s ORDER BY %s',$sql,$orderByClause); - $result = $this->adodbConnection->Execute($sql); + $result = $this->adodbConnection->Execute($sql); if ($result === false) { $this->m_Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Query_UserSession"); return false; - } + } while (!$result->EOF) { $item = new clsUserSession(NULL); $item->Set("SessionKey",$result->fields["SessionKey"]); $item->Set("LastAccessed", $result->fields["LastAccessed"]); $item->Set("PortalUserId", $result->fields["PortalUserId"]); $item->Set("Language", $result->fields["Language"]); - $item->Set("Theme" , $result->fields["Theme"]); + $item->Set("Theme" , $result->fields["Theme"]); array_push($resultSet,$item); $result->MoveNext(); } @@ -1101,45 +1101,45 @@ if($rs->EOF) break; if($i>100) - { + { return ""; } $i++; - } + } //echo "Getting Unique Key: $sessionId
"; return $sessionId; - } + } function GetNewSession() { global $sessionId, $objConfig, $objLanguages, $m_var_list, $FrontEnd; $i=0; - + if($this->Get("PortalUserId")>0 || $objConfig->Get("GuestSessions")==1) { //echo "Creating Session
\n"; $sessionId = $this->GetUniqueKey(); - $this->Set("SessionKey", $sessionId); + $this->Set("SessionKey", $sessionId); $this->Set("CurrentTempKey",$sessionId); if($m_var_list["lang"]) - { + { $this->Set("Language",$m_var_list["lang"]); } else $this->Set("Language", $objLanguages->GetPrimary()); $this->SetThemeName(); - //$this->Set("Theme", $objConfig->Get("Default_Theme")); + //$this->Set("Theme", $objConfig->Get("Default_Theme")); $this->UpdateAccessTime(); $this->Set("IpAddress", $_SERVER['REMOTE_ADDR'] ); $this->Create(); - + if($FrontEnd) { $application =& kApplication::Instance(); $application->HandleEvent( new kEvent('visits:OnRegisterVisit') ); } - + } else $this->Set("SessionKey",""); @@ -1148,7 +1148,7 @@ function SessionEnabled() { $res = FALSE; - $key = $this->GetSessionKey(); + $key = $this->GetSessionKey(); if(strlen($key)>0) $res = TRUE; return $res; @@ -1175,7 +1175,7 @@ function ValidSession($SessionKey=NULL) { global $objConfig; - + $a = $this->Get("LastAccessed"); $cutoff = adodb_mktime()-$objConfig->Get("SessionTimeout"); //echo $a." ".$cutoff."
"; @@ -1186,8 +1186,8 @@ //$this->UpdateAccessTime(); } return ($a >= $cutoff); - + } function UpdateAccessTime() @@ -1242,5 +1242,5 @@ } }/* clsUserSession */ - + ?> Index: trunk/core/units/general/inp_ses_storage.php =================================================================== diff -u -N -r3330 -r3508 --- trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3330) +++ trunk/core/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3508) @@ -1,6 +1,6 @@ Application->IsAdmin() ) $path = rtrim($path, '/').'/admin'; $this->SetCookiePath($path); - + $cookie_name = $this->Application->ConfigValue('SessionCookieName'); $this->SetCookieName($cookie_name ? $cookie_name : 'sid'); - + $this->SetCookieDomain(SERVER_NAME); - + if( $this->Application->IsAdmin() ) { $mode = constOn('IS_INSTALL') ? smCOOKIES_ONLY : smAUTO; @@ -27,7 +27,7 @@ if ($ses_mode == 0) $mode = smGET_ONLY; } $this->SetMode($mode); - + parent::Init($prefix,$special); if( !$this->Application->IsAdmin() && $this->GetField('PortalUserId') <= 0 ) @@ -80,7 +80,9 @@ { $query = ' SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE '.adodb_mktime().' - '.$this->TimestampField.' > '.$this->SessionTimeout; $ret = $this->Conn->GetCol($query); - if($ret) $this->DeleteEditTables(); + if($ret) { + $this->DeleteEditTables(); + } return $ret; } @@ -89,7 +91,7 @@ { $tables = $this->Conn->GetCol('SHOW TABLES'); $mask_edit_table = '/'.TABLE_PREFIX.'ses_(.*)_edit_(.*)/'; - $mask_search_table = '/'.TABLE_PREFIX.'ses_(.*)_(.*)/'; + $mask_search_table = '/'.TABLE_PREFIX.'ses_(.*?)_(.*)/'; $sql='SELECT COUNT(*) FROM '.$this->TableName.' WHERE '.$this->IDField.' = \'%s\''; foreach($tables as $table) Index: trunk/kernel/include/emailmessage.php =================================================================== diff -u -N -r3282 -r3508 --- trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 3282) +++ trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 3508) @@ -1,4 +1,4 @@ -LoadFromDatabase($MessageId); } - + function LoadEvent($event,$language=NULL) { global $objConfig, $objLanguages; if(!strlen($language)) $language = $objLanguages->GetPrimary(); $sql = "SELECT * FROM ".$this->tablename." WHERE EventId = $event AND LanguageId=$language"; - $rs = $this->adodbConnection->Execute($sql); + $rs = $this->adodbConnection->Execute($sql); if($rs && !$rs->EOF) { $data = $rs->fields; @@ -44,7 +44,7 @@ function LoadFromDatabase($MessageId) { global $Errors; - + $sql = sprintf("SELECT * FROM ".$this->tablename." WHERE ".$this->IdField()." = '%s'",$MessageId); $result = $this->adodbConnection->Execute($sql); if ($result === FALSE) @@ -74,20 +74,20 @@ { $h = $lines[$i]; if(strlen(trim($h))==0 || ($h==".")) - { + { $header_end = TRUE; } else { $parts = explode(":",$h,2); - + if(strtolower($parts[0])=="subject") - { + { $this->subject = $h; } else $this->headers[] = $h; - } + } $i++; } while($iParseTemplateText($text); - + /* parse email class tags */ if(!is_object($this->fromuser)) { @@ -119,21 +119,21 @@ /* parse recipient user object */ if(is_object($this->recipient)) - { + { $res = $this->recipient->ParseTemplateText($res); } //print_pre($this->Item); if(is_object($this->Item)) - { + { $res = $this->Item->ParseTemplateText($res); } else { - + if(!is_object($objTemplate)) $objTemplate = new clsTemplateList(" "); - $res = $objTemplate->ParseTemplateText($res); + $res = $objTemplate->ParseTemplateText($res); } return $res; @@ -161,10 +161,10 @@ //$this->recipient = $objUsers->GetUser($UserId); //$this->recipient->TagPrefix="touser"; if(strlen($EmailAddress)) - { + { $to_addr = $EmailAddress; $this->ReadTemplate(); - + $subject = $this->ParseSection($this->subject); $body = $this->ParseSection($this->body); @@ -174,11 +174,11 @@ $FromName = trim($this->fromuser->Get("FirstName")." ".$this->fromuser->Get("LastName")); } if(!strlen($FromAddr)) - { + { $FromName = strip_tags( $objConfig->Get('Site_Name') ); - $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); - } - + $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); + } + $charset = "ascii-us"; if($this->Get("MessageType")=="html") { @@ -190,12 +190,12 @@ $body = str_replace("
","\n",$body); $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,$body,"",$charset, $this->Get("Event"),NULL,$this->headers); } - + /*$time = adodb_mktime(); - + $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', '$FromName', '$To', '$subject', $time, '')"; - $conn->Execute($sql); */ - + $conn->Execute($sql); */ + return TRUE; } return FALSE; @@ -205,22 +205,22 @@ function SendToUser($UserId) { global $objUsers, $objEmailQueue, $objConfig; - + $conn = &GetADODBConnection(); //echo "Handling Event ".$this->Get("Event")." for user $UserId
\n"; $this->recipient = new clsPortalUser($UserId); // $objUsers->GetItem($UserId); //echo "
";print_r($this->recipient); echo "
"; $this->recipient->TagPrefix="touser"; if($this->recipient->Get("PortalUserId")==$UserId) - { + { $to_addr = $this->recipient->Get("Email"); $To = trim($this->recipient->Get("FirstName")." ".$this->recipient->Get("LastName")); $this->ReadTemplate(); $subject = $this->ParseSection($this->subject, $this->recipient); $body = $this->ParseSection($this->body); - + if(!is_object($this->fromuser)) { $this->fromuser = $objUsers->GetItem($this->Get("FromUserId")); @@ -229,17 +229,17 @@ { $FromAddr = $this->fromuser->Get("Email"); $FromName = trim($this->fromuser->Get("FirstName")." ".$this->fromuser->Get("LastName")); - + $charset = "ascii-us"; } - + if(!strlen($FromAddr)) - { + { $FromName = strip_tags( $objConfig->Get('Site_Name') ); - $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); + $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); } // echo $this->Event; - + if($this->Get("MessageType")=="html") { $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,"",$body,$charset, $this->Get("Event"),NULL,$this->headers); @@ -250,12 +250,12 @@ $body = str_replace("
","\n",$body); $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,$body,"",$charset, $this->Get("Event"),NULL,$this->headers); } - + /*$time = adodb_mktime(); - + $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', '$FromName', '$To ($to_addr)', '$subject', $time, '')"; - $conn->Execute($sql); */ - + $conn->Execute($sql); */ + return TRUE; } return FALSE; @@ -266,59 +266,59 @@ global $objUsers, $objConfig, $objEmailQueue; $conn = &GetADODBConnection(); - + $this->recipient = $objUsers->GetUser($this->Get("FromUserId")); $this->recipient->TagPrefix="touser"; - + if($this->recipient->Get("PortalUserId")==$this->Get("FromUserId") || strlen($this->recipient->Get("PortalUserId")) == 0) - { + { $to_addr = $this->recipient->Get("Email"); $To = trim($this->recipient->Get("FirstName")." ".$this->recipient->Get("LastName")); $this->ReadTemplate(); - + if (strlen($to_addr) == 0) { $to_addr = $objConfig->Get("Smtp_AdminMailFrom"); } - - $subject = $this->ParseSection($this->subject); - $body = $this->ParseSection($this->body); + + $subject = $this->ParseSection($this->subject); + $body = $this->ParseSection($this->body); $FromName = strip_tags( $objConfig->Get('Site_Name') ); - $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); + $FromAddr = $objConfig->Get("Smtp_AdminMailFrom"); if(strlen($FromAddr)) - { + { $charset = "ascii-us"; if($this->Get("MessageType")=="html") { $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,"",$body,$charset,$this->Get("Event"),NULL,$this->headers); } else { - $body=nl2br($body); + $body=nl2br($body); $body = str_replace("
","\n",$body); $objEmailQueue->SendMail($FromAddr,$FromName,$to_addr,$To,$subject,$body,"",$charset, $this->Get("Event"),NULL,$this->headers); } - + /* $time = adodb_mktime(); - + $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', '$FromName', '$To ($to_addr)', '$subject', $time, '')"; - $conn->Execute($sql); + $conn->Execute($sql); */ return TRUE; } } return FALSE; } - + function ParseTemplateText($text) { $html = $text; $search = "TagPrefix; //$next_tag = strpos($html,"",$next_tag); $end_tag = strpos($html,"/>",$next_tag); if($end_tag < $closer || $closer == 0) @@ -333,33 +333,33 @@ { $OldTagStyle = ""; - + ## Try to find end of TagName $TagNameEnd = strpos($html, " ", $next_tag); - + ## Support Old version -// $closer = strpos(strtolower($html),"",$next_tag); +// $closer = strpos(strtolower($html),"",$next_tag); if ($TagNameEnd) - { + { $Tag = strtolower(substr($html, $next_tag, $TagNameEnd-$next_tag)); - $TagName = explode(":", $Tag); + $TagName = explode(":", $Tag); if (strlen($TagName[1])) $CloserTag = ""; - } + } else { $CloserTag = $OldTagStyle; - } - + } + $closer = strpos(strtolower($html), $CloserTag, $next_tag); - + ## Try to find old tag closer if (!$closer && ($CloserTag != $OldTagStyle)) { $CloserTag = $OldTagStyle; - $closer = strpos(strtolower($html), $CloserTag, $next_tag); + $closer = strpos(strtolower($html), $CloserTag, $next_tag); } - + $end_tag = strpos($html,">",$next_tag); $tagtext = substr($html,$next_tag,($end_tag - $next_tag)+1); $pre = substr($html,0,$next_tag); @@ -380,31 +380,31 @@ $next_tag = strpos($html,$search); } return $html; - } - + } + function ParseElement($raw, $inner_html ="") - { + { $tag = new clsHtmlTag($raw); $tag->inner_html = $inner_html; if($tag->parsed) - { + { if($tag->name=="include" || $tag->name=="perm_include" || $tag->name=="lang_include") { $output = $this->Parser->IncludeTemplate($tag); } else - { - if (is_object($this->Item)) { + { + if (is_object($this->Item)) { $this->Item->TagPrefix = $tag->name; - $output = $this->Item->ParseObject($tag); + $output = $this->Item->ParseObject($tag); } else { - $output = $this->ParseObject($tag); + $output = $this->ParseObject($tag); } if(substr($output,0,9)=="Undefined") - { + { $output = $tag->Execute(); // if(substr($output,0,8)="{Unknown") // $output = $raw; @@ -416,15 +416,15 @@ } } -class clsEmailMessageList extends clsItemCollection +class clsEmailMessageList extends clsItemCollection { function clsEmailMessageList() { $this->clsItemCollection(); $this->classname = "clsEmailMessage"; $this->SourceTable = GetTablePrefix()."EmailMessage"; $this->PerPageVar = "Perpage_EmailEvents"; - $this->AdminSearchFields = array("Template","Description", "Module","Event"); + $this->AdminSearchFields = array("Template","Description", "Module","Event"); } function LoadLanguage($LangId=NULL) @@ -438,7 +438,7 @@ $this->Clear(); return $this->Query_Item($sql); } - + function &AddEmailEvent($Template, $Type, $LangId, $EventId) { $e = new clsEmailMessage(); @@ -449,15 +449,15 @@ $e->Create(); return $e; - } - + } + function DeleteLanguage($LangId) { $sql = "DELETE FROM ".$this->SourceTable." WHERE LanguageId=$LangId OR LanguageId = 0"; if( $GLOBALS['debuglevel'] ) echo $sql."
\n"; $this->adodbConnection->Execute($sql); - } + } function &GetMessage($EventId,$LangId,$LoadFromDB=TRUE) { @@ -471,7 +471,7 @@ if(is_object($i)) { if($i->Get("EventId")==$EventId && $i->Get("LanguageId")==$LangId) - { + { $found=TRUE; break; } @@ -481,7 +481,7 @@ if(!$found) { if($LoadFromDB) - { + { $n = NULL; $n = new $this->classname(); $n->tablename = $this->SourceTable; @@ -496,7 +496,7 @@ else $i = FALSE; } - return $i; + return $i; } function CreateEmptyEditTable($IdList, $use_parent = false) @@ -511,7 +511,7 @@ if($objSession->HasSystemPermission("DEBUG.LIST")) echo htmlentities($insert,ENT_NOQUOTES)."
\n"; $this->adodbConnection->Execute($insert); - $this->LoadLanguage(); + $this->LoadLanguage(); $idvalue = -1; for($i=0;$i<$this->NumItems();$i++) { @@ -520,20 +520,20 @@ if(is_array($IdList)) { foreach($IdList as $id) - { + { $e->UnsetIdField(); $e->Set("EmailMessageId",$idvalue--); - $e->Set("LanguageId",$id); -// $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$id)); - $e->Create(); + $e->Set("LanguageId",$id); +// $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$id)); + $e->Create(); } } else { $e->UnsetIdField(); $e->Set("EmailMessageId",$idvalue--); $e->Set("LanguageId",$IdList); -// $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$LangId)); +// $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$LangId)); $e->Create(); } } @@ -551,7 +551,7 @@ $idfield = "EmailMessageId"; $edit_table = $objSession->GetEditTable($this->SourceTable); - $sql = "SELECT * FROM $edit_table WHERE LanguageId <> 0"; + $sql = "SELECT * FROM $edit_table WHERE LanguageId <> 0"; $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) { @@ -563,7 +563,7 @@ { $old_id = $c->Get($idfield); $c->Dirty(); - $c->UnsetIdField(); + $c->UnsetIdField(); $c->Create(); } else @@ -584,7 +584,7 @@ $edit_table = $objSession->GetEditTable($this->SourceTable); @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table"); } - + function &GetEmailEventObject($EventName,$Type=0,$LangId=NULL) { global $objLanguages; @@ -596,7 +596,7 @@ $sql = "SELECT * FROM $EventTable INNER JOIN $EmailTable ON ($EventTable.EventId = $EmailTable.EventId) "; $sql .="WHERE Event='$EventName' AND LanguageId=$LangId AND Type=$Type"; $result = $this->adodbConnection->Execute($sql); - + if ($result === FALSE) { //$Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"","clsEvent","GetEmailEventObject"); @@ -610,16 +610,16 @@ } function ReadImportTable($TableName,$Overwrite=FALSE, $MaxInserts=100,$Offset=0) - { - $eml = new clsEmailMessageList(); + { + $eml = new clsEmailMessageList(); $this->Clear(); $Inserts = 0; - $sql = "SELECT * FROM $TableName LIMIT $Offset,$MaxInserts"; + $sql = "SELECT * FROM $TableName LIMIT $Offset,$MaxInserts"; $this->Query_Item($sql); if($this->NumItems()>0) { foreach($this->Items as $i) - { + { $e = $eml->GetMessage($i->Get("EventId"),$i->Get("LanguageId")); if(is_object($e)) { @@ -639,7 +639,7 @@ } $Offset = $Offset + $Inserts; return $Offset; - } + } } function EventEnabled($e) @@ -651,19 +651,19 @@ return ($objConfig->Get($var)=="1"); } -class clsEmailQueue +class clsEmailQueue { var $SourceTable; var $MessagesAtOnce; var $MessagesSent=0; var $LogLevel = 0; - + function clsEmailQueue($SourceTable=NULL,$MessagesAtOnce=NULL) { global $objConfig; if($SourceTable) - { + { $this->SourceTable=$SourceTable; } else @@ -675,7 +675,7 @@ $this->MessagesAtOnce = $MessagesAtOnce; $this->LogLevel = (int)$objConfig->Get("Smtp_LogLevel"); } - + function WriteToMailLog($text) { global $pathtoroot,$admin; @@ -689,12 +689,12 @@ if($fp) { fputs($fp,$text."\n"); - fclose($fp); + fclose($fp); } } - } + } } - + function AllowSockets() { $minver = explode(".", "4.3.0"); @@ -707,62 +707,62 @@ return false; else return true; - } + } function DeliverMail($To,$From,$Subject,$Msg,$headers, $ForceSend=0) { global $MessagesSent,$objConfig; - + if(($this->MessagesSent >$this->MessagesAtOnce) && !$ForceSend) { $this->EnqueueMail($To,$From,$Subject,$Msg,$headers); return TRUE; } else { - + $this->MessagesSent++; - + $time = adodb_mktime(); $conn = &GetADODBConnection(); - + /* $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', '".htmlspecialchars($From)."', '".htmlspecialchars($To)."', '$Subject', $time, '')"; $conn->Execute($sql);*/ /* ensure headers are using \r\n instead of \n */ - + $headers = "Date: ".adodb_date("r")."\n".$headers; $headers = "Return-Path: ".$objConfig->Get("Smtp_AdminMailFrom")."\n".$headers; $headers = str_replace("\n\n","\r\n\r\n",$headers); $headers = str_replace("\r\n","\n",$headers); //$headers = str_replace("\n","\r\n",$headers); - + // if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $Msg = str_replace("\n\n","\r\n\r\n",$Msg); $Msg = str_replace("\r\n","\n",$Msg); //$Msg = str_replace("\n","\r\n",$Msg); // } - + //echo "
"; print_r(htmlentities($headers)); echo "
"; //echo "
"; print_r(htmlentities($Msg)); echo "
"; $ver = phpversion(); if(substr($Subject,0,9)=="Subject: ") - $Subject = substr($Subject,9); + $Subject = substr($Subject,9); if(!strlen($objConfig->Get("Smtp_Server")) || !$this->AllowSockets()) { return mail($To,trim($Subject),$Msg, $headers); } - - $headers = "Subject: ".trim($Subject)."\r\n".$headers; - + + $headers = "Subject: ".trim($Subject)."\n".$headers; + $send_params['recipients'] = array($To); // The recipients (can be multiple) $send_params['from'] = $From; // This is used as in the MAIL FROM: cmd - $send_params['headers'] = explode("\r\n",$headers); + $send_params['headers'] = explode("\n",$headers); // It should end up as the Return-Path: header $send_params['body'] = $Msg; // The body of the email $params['host'] = $objConfig->Get("Smtp_Server"); // The smtp server host/ip - + $params['port'] = 25; // The smtp server port $params['hello'] = 'INPORTAL'; // What to use when sending the helo command. Typically, your domain/hostname if($objConfig->Get("Smtp_Authenticate")) // Whether to use basic authentication or not @@ -772,8 +772,8 @@ $params['pass'] = $objConfig->get("Smtp_Pass"); } else - $params['auth'] = FALSE; - $this->LogLevel=0; + $params['auth'] = FALSE; + $this->LogLevel=0; $SmtpServer = new smtp($params); if($this->LogLevel>0) { @@ -788,17 +788,17 @@ //$SmtpServer->debug = 1; } $connected = $SmtpServer->connect(); - + if($connected) { if($this->LogLevel>1) { - $this->WriteToMailLog("Connected to ".$params['host']); + $this->WriteToMailLog("Connected to ".$params['host']); } $res = $SmtpServer->send($send_params); } $SmtpServer->disconnect(); - + if($this->LogLevel>1) { foreach($SmtpServer->buffer as $l) @@ -816,7 +816,7 @@ $this->WriteToMailLog($e); } } - else + else $this->WriteToMailLog("Message to $From Delivered Successfully"); } unset($SmtpServer); @@ -831,7 +831,7 @@ $ado = &GetADODBConnection(); $To = mysql_escape_string($To); $From = mysql_escape_string($From); - $Msg = mysql_escape_string($Msg); + $Msg = mysql_escape_string($Msg); $headers = mysql_escape_string($headers); $Subject = mysql_escape_string($Subject); $sql = "INSERT INTO ".$this->SourceTable." (toaddr,fromaddr,subject,message,headers) VALUES ('$To','$From','$Subject','$Msg','$headers')"; @@ -844,7 +844,7 @@ $ado = &GetADODBConnection(); $MaxAllowed = $this->MessagesAtOnce; - + $del_sql = array(); $NumToSend = $MaxAllowed - $this->MessagesSent; @@ -855,8 +855,8 @@ while($rs && !$rs->EOF) { $data = $rs->fields; - $this->DeliverMail($data["toaddr"],$data["fromaddr"],$data["Subject"],$data["headers"],$data["message"],1); - + $this->DeliverMail($data["toaddr"],$data["fromaddr"],$data["Subject"],$data["headers"],$data["message"],1); + $del_sql[] = "DELETE FROM ".$this->SourceTable." WHERE queued='".$data["queued"]."'"; $rs->MoveNext(); } @@ -871,112 +871,113 @@ echo htmlentities($sql,ENT_NOQUOTES)."
\n"; } } - - function SendMail($From, $FromName, $ToAddr, $ToName, $Subject, $Text, $Html, $charset, $SendEvent, - $FileName="",$FileLoc="",$QueueOnly=0,$extra_headers = array()) - { - $HasFile = FALSE; - $HasFile = (strlen($FileName)>0); - $OB="----=_OuterBoundary_000"; - $boundary = "-----=".md5( uniqid (rand())); - $f = "\"$FromName\" <".$From.">"; - $headers = "From: $f\r\n"; - $headers .= "MIME-Version: 1.0\r\n"; - - $conn = &GetADODBConnection(); - $time = adodb_mktime(); - - $sendTo = $ToName; - - if (strlen($sendTo) > 0) { - $sendTo .= "($ToAddr)"; - } - else { - $sendTo = $ToAddr; - } - $sendTo=addslashes($sendTo); - $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', ".$conn->qstr($FromName).", ".$conn->qstr($sendTo).", ".$conn->qstr( str_replace("Subject:", "", $Subject) ).", $time, '$SendEvent')"; - $conn->Execute($sql); - - if($HasFile) - { - //Messages start with text/html alternatives in OB - $headers.="Content-Type: multipart/mixed;\r\n\tboundary=\"".$OB."\"\r\n\r\n"; - $msg.="--".$OB."\n"; - $msg.="Content-Type: multipart/alternative; boundary=\"$boundary\"\r\n\r\n"; - } - else - $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\""; - if(is_array($extra_headers)) - { - for($i=0;$i0); + $OB="----=_OuterBoundary_000"; + $boundary = "-----=".md5( uniqid (rand())); + $f = "\"$FromName\" <".$From.">"; + $headers = "From: $f\r\n"; + $headers .= "MIME-Version: 1.0\r\n"; + + $conn = &GetADODBConnection(); + $time = adodb_mktime(); + + $sendTo = $ToName; + + if (strlen($sendTo) > 0) { + $sendTo .= "($ToAddr)"; + } + else { + $sendTo = $ToAddr; + } + $sendTo=addslashes($sendTo); + $sql = "INSERT INTO ".GetTablePrefix()."EmailLog VALUES ('', ".$conn->qstr($FromName).", ".$conn->qstr($sendTo).", ".$conn->qstr( str_replace("Subject:", "", $Subject) ).", $time, '$SendEvent')"; + $conn->Execute($sql); + + if($HasFile) + { + //Messages start with text/html alternatives in OB + $headers.="Content-Type: multipart/mixed;\r\n\tboundary=\"".$OB."\"\r\n\r\n"; + $msg.="--".$OB."\n"; + $msg.="Content-Type: multipart/alternative; boundary=\"$boundary\"\r\n\r\n"; + } + else + $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\""; + if(is_array($extra_headers)) + { + for($i=0;$i0) - { - $msg .= "--" . $boundary . "\n"; - $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; - $msg .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; - $msg .= stripslashes($Html); - $msg .= "\r\n\r\n"; - } - $msg .= "--" . $boundary . "--\n\r"; - if($HasFile) - { - if(!strlen($FileLoc)) - $FileLoc = $FileName; - $FileName = basename($FileName); - $msg .= "\n--".$OB."\n"; - $msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\r\n"; - $msg.="Content-Transfer-Encoding: base64\n"; - $msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\r\n\r\n"; - //file goes here - $fd=fopen ($FileLoc, "r"); - if($fd) - { - $FileContent=fread($fd,filesize($FileLoc)); - fclose ($fd); - } - $FileContent=chunk_split(base64_encode($FileContent)); - $msg.=$FileContent; - $msg .= $OB."--\r\n"; - } + $msg .= "--" . $boundary . "\n"; + $msg .= "Content-Type: text/plain; charset=\"$charset\"\r\n"; + $msg .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; + $msg .= stripslashes($Text); + $msg .= "\r\n\r\n"; - if(strlen($ToName)>0) - { - $To = "\"$ToName\" <$ToAddr>"; - } - else { - $To = "<".$ToAddr.">"; - } - - //$headers.="To: $To\r\n"; - if($this->MessagesSent>$this->MessagesAtOnce || $QueueOnly==1) - { - $this->EnqueueMail($ToAddr,$From,$Subject,$msg,$headers); - } - else - { - $this->DeliverMail($ToAddr,$From,$Subject,$msg,$headers); - } - } + if(strlen($Html)>0) + { + $msg .= "--" . $boundary . "\n"; + $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; + $msg .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; + $msg .= stripslashes($Html); + $msg .= "\r\n\r\n"; + } + $msg .= "--" . $boundary . "--\n\r"; + if($HasFile) + { + if(!strlen($FileLoc)) { + $FileLoc = $FileName; + } + $FileName = basename($FileName); + $msg .= "\n--".$OB."\n"; + $msg.="Content-Type: application/octetstream;\n\tname=\"".$FileName."\"\r\n"; + $msg.="Content-Transfer-Encoding: base64\n"; + $msg.="Content-Disposition: attachment;\n\tfilename=\"".$FileName."\"\r\n\r\n"; + //file goes here + $fd=fopen ($FileLoc, "r"); + if($fd) + { + $FileContent=fread($fd,filesize($FileLoc)); + fclose ($fd); + } + $FileContent=chunk_split(base64_encode($FileContent)); + $msg .= $FileContent; + $msg .= $OB."--\r\n"; + } + + if(strlen($ToName)>0) + { + $To = "\"$ToName\" <$ToAddr>"; + } + else { + $To = "<".$ToAddr.">"; + } + + //$headers.="To: $To\r\n"; + if($this->MessagesSent>$this->MessagesAtOnce || $QueueOnly==1) + { + $this->EnqueueMail($ToAddr,$From,$Subject,$msg,$headers); + } + else + { + $this->DeliverMail($ToAddr,$From,$Subject,$msg,$headers); + } + } + } ?> Index: trunk/kernel/action.php =================================================================== diff -u -N -r3471 -r3508 --- trunk/kernel/action.php (.../action.php) (revision 3471) +++ trunk/kernel/action.php (.../action.php) (revision 3508) @@ -6,7 +6,7 @@ if (!isset($_SERVER['SCRIPT_FILENAME'])) { $_SERVER['SCRIPT_FILENAME'] = $_SERVER['SCRIPT_NAME']; } -$script = basename($_SERVER['SCRIPT_FILENAME']); +$script = basename($_SERVER['PHP_SELF']); $skipDebug = Array('index.php','tree.php','head.php','credits.php'); if( admin_login() && !in_array($script, $skipDebug) ) { @@ -36,13 +36,13 @@ if( GetVar('categorylist', true) !== false ) { $cat_id = $_POST['categorylist']; - $objSession->SetVariable('categoryid', $cat_id); - + $objSession->SetVariable('categoryid', $cat_id); + if($cat_id > 0) { $cat = $objCatList->GetByResource($cat_id); if(is_object($cat)) - { + { $navbar = $cat->Get('CachedNavbar'); $objSession->SetVariable('catnavbar', $navbar); $objSession->SetVariable('import_category_id', $cat->UniqueId() ); @@ -52,40 +52,40 @@ global $objConfig; $objSession->SetVariable('import_category_id', 0); } - + $objSession->SetVariable('categorylist', $_POST['categorylist']); } - + // Set Import Admin Group if( GetVar('grouplist1', true) ) - { + { $group_id = $_POST['grouplist1']; $group = $objGroups->GetItemByField('ResourceId',$group_id); - $objSession->SetVariable('user_admin_names', $group->Get('Name')); + $objSession->SetVariable('user_admin_names', $group->Get('Name')); $objSession->SetVariable('user_admin_values', $group->Get('GroupId')); $objSession->SetVariable('grouplist1', $_POST['grouplist1']); - } - + } + // Set Import User Group if( GetVar('grouplist2', true) ) - { + { $group_id = $_POST['grouplist2']; $group = $objGroups->GetItemByField('ResourceId', $group_id); - $objSession->SetVariable('user_regular_names', $group->Get('Name')); + $objSession->SetVariable('user_regular_names', $group->Get('Name')); $objSession->SetVariable('user_regular_values', $group->Get('GroupId')); $objSession->SetVariable('grouplist2', $_POST['grouplist2']); } break; - - case "m_add_user": + + case "m_add_user": $dupe_user = ''; //$user_pending = (int)$_POST["user_pending"]; //$user_enabled = (int)$_POST["user_enabled"]; - $CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); + $CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); $CreatedOn += SecondsSinceMidnight($_POST["user_time"]); - + $dob = DateTimestamp($_POST["user_dob"],GetDateFormat()); - + $objEditItems = new clsUserManager(); $objEditItems->SourceTable = $objSession->GetEditTable("PortalUser"); @@ -95,26 +95,26 @@ $id = 1; else $id = $objUsers->GetUserId($_POST["user_login"]); - } + } else $dob = 0; - + if(!empty($id)) { $lvErrorString = language('la_error_duplicate_username'); $dupe_user = $_POST["user_login"]; $_POST["user_login"] = ''; } else - { + { $password = md5($_POST["password"]); $u = $objEditItems->Add_User($_POST["user_login"], $password, - $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], - $_POST["user_lastname"], $_POST["status"], - $_POST["user_phone"], - $_POST["user_street"], $_POST["user_city"], + $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], + $_POST["user_lastname"], $_POST["status"], + $_POST["user_phone"], + $_POST["user_street"], $_POST["user_city"], $_POST["user_state"], $_POST["user_zip"], $_POST["user_country"], $dob); - + $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); $objCustomEdit->SetTable('edit'); $objCustomEdit->LoadResource($u->Get("ResourceId")); @@ -126,24 +126,24 @@ { $field = substr($key,1); $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - + if(is_object($cvalue)) { $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$u->Get("ResourceId"),$value); $DataChanged = TRUE; } } - } - if($DataChanged) + } + if($DataChanged) $objCustomEdit->SaveData(); - + $objCustomEdit->SetTable('live'); } - + break; - + case "m_edit_user": - //$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); + //$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); //$CreatedOn += SecondsSinceMidnight($_POST["user_time"]); $dob = DateTimestamp($_POST["user_dob"],GetDateFormat()); $objEditItems = new clsUserManager(); @@ -156,32 +156,32 @@ $dob = 0; if(strlen($_POST["password"])) { - $password = md5($_POST["password"]); - } + $password = md5($_POST["password"]); + } else $password = ""; $u = $objEditItems->Edit_User($UserId, $_POST["user_login"], $password, - $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], - $_POST["user_lastname"], $_POST["status"], - $_POST["user_phone"], - $_POST["user_street"], $_POST["user_city"], + $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], + $_POST["user_lastname"], $_POST["status"], + $_POST["user_phone"], + $_POST["user_street"], $_POST["user_city"], $_POST["user_state"], $_POST["user_zip"], $_POST["user_country"], $dob); - + $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); $objCustomEdit->SetTable('edit'); $DataChanged = false; - + $objCustomEdit->LoadResource($u->Get("ResourceId")); $CustomFields = new clsCustomFieldList(6); - + foreach($_POST as $key=>$value) { if(substr($key,0,1)=="_") { $field = substr($key,1); $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - + if(is_object($cvalue)) { //echo "Saving CF: (".$cvalue->Get("CustomFieldId")." ; ".$u->Get("ResourceId")." ; $value)
"; @@ -190,43 +190,43 @@ } } } - + if($DataChanged) $objCustomEdit->SaveData(); $objCustomEdit->SetTable('live'); break; - - case "m_user_primarygroup": + + case "m_user_primarygroup": if($ro_perm) break; $users = explode(',', $_POST["userlist"]); $GroupResourceId = $_POST['grouplist']; $g = $objGroups->GetItemByField("ResourceId", $GroupResourceId); $GroupId = $g->UniqueId(); - + if( is_array($users) ) foreach($users as $user_id) { $u = $objUsers->GetItemByField("ResourceId", $user_id); $g->AddUser($u->Get("PortalUserId"),1,false); } break; - - case "m_edit_group": + + case "m_edit_group": $objEditItems = new clsGroupList(); $objEditItems->SourceTable = $objSession->GetEditTable("PortalGroup"); $objEditItems->Edit_Group($_POST["group_id"], $_POST["group_name"],$_POST["group_comments"]); break; - - + + case 'm_group_edit': // when editing user membership in group $membership_expires = DateTimestamp( $_POST['membership_expires_date'], GetDateFormat() ); $membership_expires += SecondsSinceMidnight( $_POST['membership_expires_time'] ); - + $objEditItems = new clsUserGroupList(); $objEditItems->SourceTable = $objSession->GetEditTable('UserGroup'); $objEditItems->Edit_UserGroup($_POST['GroupId'], $_POST['PortalUserId'], $membership_expires); break; - + case "m_add_group": $objEditItems = new clsGroupList(); $objEditItems->SourceTable = $objSession->GetEditTable("PortalGroup"); @@ -245,7 +245,7 @@ $g = $objEditItems->GetItemByField("ResourceId",$GroupId); if(is_object($g)) { - + $PermList = explode(",",$_POST["PermList"]); for($i=0;$iGetPersonalGroup(TRUE); - $value = 0; + $value = 0; if(is_array($_POST["permvalue"])) { if(in_array($PermList[$i],$_POST["permvalue"])) @@ -310,7 +310,7 @@ } } break; - + case "m_approve_user": if($ro_perm) break; foreach($_POST["itemlist"] as $userid) @@ -330,53 +330,53 @@ } $objUsers->Clear(); break; - + case "m_delete_user": if($ro_perm) break; foreach($_POST["itemlist"] as $userid) $objUsers->Delete_User($userid); break; - + case "m_delete_group": if($ro_perm) break; foreach($_POST["itemlist"] as $groupid) - { + { $objGroups->Delete_Group($groupid); } break; - + case "m_user_assign": // not sure if action is used anywhere if($ro_perm) break; $useridlist = implode("-", $userlist); $objSession->SetUserStatus($useridlist, "g_usergroup_status"); $g_usergroup_status = $useridlist; break; - + case "m_group_assign": // not sure if action is used anywhere if($ro_perm) break; foreach($grouplist as $group) $objGroups->Add_Users_To_Group($group); break; - + case "m_remove_group": if($ro_perm) break; $adodbConnection = &GetADODBConnection(); $adodbConnection->Execute("DELETE FROM UserGroup where UserId='$UserId' AND GroupId='$GroupId'"); break; - case "m_SetVariable": + case "m_SetVariable": $objSession->SetPersistantVariable($_POST["fieldname"], $_POST["varvalue"]); break; - + case "m_SetSessionVariable": $objSession->SetVariable($_POST["fieldname"], $_POST["varvalue"]); //echo "Setting $fieldname to $varvalue
\n"; if($_POST["fieldname"]=="SearchType") $objSession->SetVariable("SearchWord",""); break; - - case "m_edit_permissions": + + case "m_edit_permissions": if($ro_perm) break; - + if($_POST["CatEditStatus"] != -1) { $objSession->SetVariable('PermCache_UpdateRequired', 1); @@ -393,18 +393,18 @@ $PermNames[] = $data["PermissionName"]; $rs->MoveNext(); } - + $inherit = array(); if(is_array($_POST["inherit"])) - { + { foreach($_POST["inherit"] as $perm) { $inherit[$perm] = 1; } } $access = array(); if(is_array($_POST["permvalue"])) - { + { foreach($_POST["permvalue"] as $perm) { $access[$perm] = 1; @@ -414,12 +414,12 @@ $objPermList->LoadCategory($CatId); for($i=0;$iGetPermByName($PermNames[$i]); + + $Perm = $objPermList->GetPermByName($PermNames[$i]); if($Perm) { $Id = $Perm->Get("PermissionId"); @@ -433,7 +433,7 @@ } } else - { + { $Perm = $objPermList->GetPermByName($PermNames[$i]); if($Perm) { @@ -448,7 +448,7 @@ //$c->SetViewPerms("CATEGORY.VIEW",$ViewList,$glist); //$c->Update(); } - break; + break; case "m_perm_delete_group": if($ro_perm) break; $ado = &GetADODBConnection(); @@ -457,16 +457,16 @@ { $g = $objGroups->GetItemByField("ResourceId",$groupid); if(is_object($g)) - { + { $sql = "DELETE FROM ".GetTablePrefix()."Permissions WHERE CatId=$CatId AND GroupId=".$g->Get("GroupId"); if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $ado->Execute($sql); + $ado->Execute($sql); } } break; - case "m_user_addto_group": + case "m_user_addto_group": if($ro_perm) break; $objSession->SetVariable("HasChanges", 1); $user = $_POST["UserId"]; @@ -491,8 +491,8 @@ } } break; - - case "m_group_add_user": + + case "m_group_add_user": if($ro_perm) break; $objSession->SetVariable("HasChanges", 1); $group = $_POST["GroupId"]; @@ -524,13 +524,13 @@ $g->DeleteUser($u->Get("PortalUserId")); } //} - break; + break; case "m_user_removegroup": if($ro_perm) break; $objSession->SetVariable("HasChanges", 1); $user = $_POST["UserId"]; //if($user>0) - //{ + //{ foreach($_POST["itemlist"] as $groupid) { $g = $objGroups->GetItem($groupid); @@ -564,17 +564,17 @@ }/*switch*/ } break; - + // not used anywhere /* case "m_item_recount": if($ro_perm) break; RunDown($m_var_list["cat"],"UpdateCacheCounts"); break; */ - - case "m_cat_delete": - if($ro_perm) break; + + case "m_cat_delete": + if($ro_perm) break; if($objSession->HasCatPermission("CATEGORY.DELETE",$objCatList->CurrentCategoryID())) - { + { if(isset($_POST["catlist"])) { if(is_array($_POST["catlist"])) @@ -587,9 +587,9 @@ } break; case "m_cat_cut": - if($ro_perm) break; + if($ro_perm) break; if(isset($_POST["catlist"])) - { + { if($objSession->HasCatPermission("CATEGORY.DELETE",$catid)) { $objCatList->CopyToClipboard("CUT","CategoryId",$_POST["catlist"]); @@ -598,17 +598,17 @@ $objCatList->CopyToClipboard("COPY","CategoryId",$_POST["catlist"]); } break; - + case "m_cat_copy": - if($ro_perm) break; + if($ro_perm) break; if(isset($_POST["catlist"])) { $objCatList->CopyToClipboard("COPY","CategoryId",$_POST["catlist"]); } break; case "m_paste": - if($ro_perm) break; + if($ro_perm) break; if($objCatList->ItemsOnClipboard()>0) { /* category's paste function populates a sparse array where array[old_id]=new_id */ @@ -625,21 +625,21 @@ } } break; - + case "m_cat_move_up": - if($ro_perm) break; + if($ro_perm) break; if (isset($_POST["catlist"])) - { + { foreach($_POST["catlist"] as $catid) { $cat =& $objCatList->GetCategory($catid); $cat->MoveUp(); } } break; - + case "m_cat_move_down": - if($ro_perm) break; + if($ro_perm) break; if (isset($_POST["catlist"])) { $catlist=array_reverse($_POST["catlist"]); @@ -672,7 +672,7 @@ RunDown($catid,"Deny"); } } - break; + break; case "m_rel_delete": $adodbConnection= &GetADODBConnection(); @@ -708,16 +708,16 @@ $NewId = intval($ado->GetOne('SELECT MIN(RelationshipId) as MinValue FROM '.$RelList->SourceTable)); if($NewId > 0) $NewId = 0; $NewId--; - + $priority = (int)GetVar('priority'); $r = $RelList->Add($_POST["SourceId"],$_POST["SourceType"],$_POST["TargetId"],$_POST["TargetType"], - $priority,(int)$_POST["Enabled"],$_POST["RelType"], $NewId); - - $sql = "UPDATE ".$RelList->SourceTable." SET RelationshipId=".$NewId." WHERE RelationshipId=".$r->Get("RelationshipId"); + $priority,(int)$_POST["Enabled"],$_POST["RelType"], $NewId); + + $sql = "UPDATE ".$RelList->SourceTable." SET RelationshipId=".$NewId." WHERE RelationshipId=".$r->Get("RelationshipId"); if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; $ado->Execute($sql); - + break; case "m_edit_relation": if($_POST["CatEditStatus"]==0) @@ -739,7 +739,7 @@ $objRelList = new clsRelationshipList(); $objRelList->SourceTable = $objSession->GetEditTable("Relationship"); if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $r = $objRelList->GetItem($id); @@ -764,7 +764,7 @@ case "m_add_category": if(ValidDate($_POST["cat_date"],GetDateFormat())) - { + { $CreatedOn = DateTimestamp($_POST["cat_date"],GetDateFormat()); } else @@ -774,13 +774,13 @@ $cat_pick = $_POST["cat_pick"]; $Status = (int)$_POST["status"]; $Hot=(int)$_POST["itemhot"]; - $Pop = (int)$_POST["itempop"]; + $Pop = (int)$_POST["itempop"]; $New = (int)$_POST["itemnew"]; $objEditItems = new clsCatList(); $objEditItems->SourceTable = $objSession->GetEditTable("Category"); - $cat = $objEditItems->Add($_POST["ParentId"], $_POST["cat_name"], inp_escape($_POST["cat_desc"],$html), $CreatedOn, - $cat_pick, $Status, $Hot, $New, $Pop, $_POST["Priority"], + $cat = $objEditItems->Add($_POST["ParentId"], $_POST["cat_name"], inp_escape($_POST["cat_desc"],$html), $CreatedOn, + $cat_pick, $Status, $Hot, $New, $Pop, $_POST["Priority"], $_POST["meta_keywords"],$_POST["meta_desc"], GetVar('auto_filename'), GetVar('filename') ); $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); $objCustomEdit->LoadResource($cat->Get("ResourceId")); @@ -792,37 +792,37 @@ { $field = substr($key,1); $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - + if(is_object($cvalue)) { $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$cat->Get("ResourceId"),$value); $DataChanged = TRUE; } } - } + } if($DataChanged) - $objCustomEdit->SaveData(); - - break; + $objCustomEdit->SaveData(); - case "m_edit_category": + break; + + case "m_edit_category": $CreatedOn = DateTimestamp($_POST["cat_date"],GetDateFormat()); $cat_pick = GetVar('cat_pick', true); $Status = (int)$_POST["status"]; $Hot = false; //(int)$_POST["itemhot"]; - $Pop = false; //(int)$_POST["itempop"]; + $Pop = false; //(int)$_POST["itempop"]; $New = (int)$_POST["itemnew"]; $html = (int)$_POST["html_enable"]; $objEditItems = new clsCatList(); $objEditItems->SourceTable = $objSession->GetEditTable("Category"); - + // check if name of cat isn't changed: begin if( GetVar('CategoryId') > 0 ) { $original_cats = new clsCatList(); $original_cat = $original_cats->GetItemByField('CategoryId', GetVar('CategoryId')); - + $match_fields = Array('Name' => 'cat_name', 'Filename' => 'filename'); foreach ($match_fields as $db_field => $submit_field) { @@ -832,17 +832,17 @@ break; } } - + unset($original_cat, $original_cats); } else { $objSession->SetVariable('PermCache_UpdateRequired', 1); } // check if name of cat isn't changed: end - + $cat = $objEditItems->Edit_Category($_POST["CategoryId"],inp_escape($_POST["cat_name"],$html), inp_escape($_POST["cat_desc"],$html), $CreatedOn, $cat_pick, $Status, $Hot, $New, $Pop, $_POST["Priority"], $_POST["meta_keywords"], $_POST["meta_desc"], GetVar('auto_filename'), GetVar('filename') ); - + $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); $objCustomEdit->LoadResource($cat->Get("ResourceId")); $CustomFields = new clsCustomFieldList(1); @@ -853,20 +853,20 @@ { $field = substr($key,1); $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - + if(is_object($cvalue)) { $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$cat->Get("ResourceId"),$value); $DataChanged = TRUE; } } - } + } if($DataChanged) - $objCustomEdit->SaveData(); - + $objCustomEdit->SaveData(); + break; case "m_edit_custom_data": - $id = $_POST["ItemId"]; + $id = $_POST["ItemId"]; $objCustomEdit = new clsCustomDataList($objSession->GetEditTable("CustomMetaData")); $objCustomEdit->LoadResource($id); @@ -878,31 +878,31 @@ { $field = substr($key,1); $cvalue = $CustomFields->GetItemByField("FieldName",$field,FALSE); - + if(is_object($cvalue)) { $objCustomEdit->SetFieldValue($cvalue->Get("CustomFieldId"),$id,$value); $DataChanged = TRUE; } } - } + } if($DataChanged) - $objCustomEdit->SaveData(); -/* - $id = $_POST["ItemId"]; - $objEditData = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); + $objCustomEdit->SaveData(); +/* + $id = $_POST["ItemId"]; + $objEditData = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); $objEditData->SetTable('edit'); $ado = &GetADODBConnection(); if($id && is_array($_POST["CustomData"])) { foreach($_POST["CustomData"] as $FieldId => $Value) - { + { $sql = "SELECT count(*) as reccount FROM ".$objEditData->SourceTable." WHERE CustomFieldId=$FieldId AND ResourceId=".$_POST["ItemId"]; - $rs = $ado->Execute($sql); + $rs = $ado->Execute($sql); $intable = $rs->fields["reccount"]; if(!$intable) - { + { $sql = "INSERT INTO ".$objEditData->SourceTable." (ResourceId,CustomFieldId,Value) VALUES ('".$id."','$FieldId','$Value')"; $ado->Execute($sql); //echo $sql."
\n"; @@ -913,7 +913,7 @@ $ado->Execute($sql); //echo $sql."
\n"; } - } + } } $objEditData->SetTable('live'); */ @@ -925,7 +925,7 @@ $FieldName = $_POST["fieldname"]; //$FieldLabel = $_POST["fieldlabel"]; if(strlen($FieldName)) - { + { $objCustomFields = new clsCustomFieldList($DataType); $objCustomFields->EditField($FieldId,$DataType,$FieldName,"",(int)$_POST["generaltab"], $_POST["heading"],$_POST["fieldprompt"],$_POST["input_type"], @@ -935,7 +935,7 @@ break; case "m_customfield_add": if($ro_perm) break; - $DataType = $_POST["DataType"]; + $DataType = $_POST["DataType"]; $FieldName = $_POST["fieldname"]; //$FieldLabel = $_POST["fieldlabel"]; if(strlen($FieldName)) @@ -949,7 +949,7 @@ break; case "m_customfield_delete": if($ro_perm) break; - $DataType = $_POST["DataType"]; + $DataType = $_POST["DataType"]; $objCustomFields = new clsCustomFieldList($DataType); foreach($_POST["itemlist"] as $f) @@ -971,7 +971,7 @@ foreach($objSearchConfig->Items as $i) { $id = $i->Get("SearchConfigId"); - $objSearchConfig->EditFieldSettings($id,(int)$SimpleValues[$id],(int)$AdvValues[$id],$priority[$id]); + $objSearchConfig->EditFieldSettings($id,(int)$SimpleValues[$id],(int)$AdvValues[$id],$priority[$id]); } $objSearchConfig->Clear(); /* save relevence settings */ @@ -999,7 +999,7 @@ $cfg = "SearchRel_Rating_".$var; $objConfig->Set($cfg,$value); } - + $vals = $_POST["multiple"]; if (count($vals) > 0) { @@ -1013,11 +1013,11 @@ $cfg = "Search_ShowMultiple_".$_POST['cfg_var']; $objConfig->Set($cfg, 0); } - + if (isset($_POST['minkeyword'])) { $objConfig->Set("Search_MinKeyword_Length", $_POST['minkeyword']); } - + $objConfig->Save(); break; case "m_keyword_reset": @@ -1029,14 +1029,14 @@ $c->Delete(); } break; - + case 'm_clear_searchlog': $objSearchList = new clsSearchLogList(); $db =& GetADODBConnection(); $db->Execute('DELETE FROM '.$objSearchList->SourceTable ); break; - - case "m_review_add": + + case "m_review_add": $post_info = GetSubmitVariable($_POST, 'EditStatus'); if($post_info['variable'] > -1) { @@ -1045,19 +1045,19 @@ $Pending = (int)$_POST["review_pending"]; $Enabled = (int)$_POST["review_enabled"]; $Status = (int)$_POST["status"]; - $CreatedOn = DateTimestamp($_POST["review_date"],GetDateFormat()); + $CreatedOn = DateTimestamp($_POST["review_date"],GetDateFormat()); $CreatedOn += SecondsSinceMidnight($_POST["review_time"]); - $html = (int)$_POST["html_enable"]; + $html = (int)$_POST["html_enable"]; $ReviewText = inp_escape($_POST["review_body"],1); - + $CreatedById = 0; if(strlen($_POST["createdby"])>0) { if(strtolower($_POST["createdby"])=="root") { $CreatedById = -1; } - else + else { $u = $objUsers->GetItemByField("Login",$_POST["createdby"]); if(is_object($u)) @@ -1074,10 +1074,10 @@ } else $CreatedById = $objSession->Get("PortalUserId"); - - $r = $objReviews->AddReview($CreatedOn,$ReviewText,$Status, $IPAddress, + + $r = $objReviews->AddReview($CreatedOn,$ReviewText,$Status, $IPAddress, (int)$_POST["review_priority"], $_POST["ItemId"],$_POST["ItemType"], - $CreatedById,$html, $post_info['Module']); + $CreatedById,$html, $post_info['Module']); $ado = &GetADODBConnection(); $rs = $ado->Execute("SELECT MIN(ReviewId) as MinValue FROM ".$objReviews->SourceTable); $NewId = $rs->fields["MinValue"]-1; @@ -1087,27 +1087,27 @@ $ado->Execute($sql); } break; - case "m_review_edit": + case "m_review_edit": case 'm_review_direct_edit'; $post_info = GetSubmitVariable($_POST, 'EditStatus'); if($post_info['variable'] > -1) { $objReviews = new clsItemReviewList(); $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); $Status = (int)$_POST["status"]; - $CreatedOn = DateTimestamp($_POST["review_date"],GetDateFormat()); + $CreatedOn = DateTimestamp($_POST["review_date"],GetDateFormat()); $CreatedOn += SecondsSinceMidnight($_POST["review_time"]); $html = (int)$_POST["html_enable"]; $ReviewText = inp_escape($_POST["review_body"],1); - $ReviewId = $_POST["ReviewId"]; + $ReviewId = $_POST["ReviewId"]; $CreatedById = 0; if(strlen($_POST["createdby"])>0) { if(strtolower($_POST["createdby"])=="root") { $CreatedById = -1; } - else + else { $u = $objUsers->GetItemByField("Login",$_POST["createdby"]); if(is_object($u)) @@ -1121,35 +1121,35 @@ else $CreatedById = $objSession->Get("PortalUserId"); } - } - $r = $objReviews->EditReview($ReviewId,$CreatedOn,$ReviewText,$Status, $IPAddress, + } + $r = $objReviews->EditReview($ReviewId,$CreatedOn,$ReviewText,$Status, $IPAddress, (int)$_POST["review_priority"],$_POST["ItemId"],$_POST["ItemType"], - $CreatedById,$html); + $CreatedById,$html); } break; - - - - + + + + case "m_review_delete": $objReviews = new clsItemReviewList(); $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); foreach($_POST["itemlist"] as $id) { $objReviews->DeleteReview($id); - } + } break; - - + + case 'm_review_direct_delete': $objReviews = new clsItemReviewList(); foreach($_POST['reviewlist'] as $id) { $objReviews->DeleteReview($id); } break; - - + + case "m_review_approve": if (isset($_POST["itemlist"])) { @@ -1163,7 +1163,7 @@ } } break; - + case 'm_review_direct_approve': if(isset($_POST["reviewlist"])) { @@ -1175,11 +1175,11 @@ $i->Update(); } } - break; - - - - + break; + + + + case "m_review_deny": if (isset($_POST["itemlist"])) { @@ -1206,14 +1206,14 @@ } } break; - - - - - + + + + + case "m_review_move_up": if (isset($_POST["itemlist"])) - { + { $objReviews = new clsItemReviewList(); $objReviews->SourceTable = $objSession->GetEditTable("ItemReview"); foreach($_POST["itemlist"] as $id) @@ -1236,23 +1236,23 @@ } } break; - + case 'm_themes_rescan': $objThemes->CreateMissingThemes(); if (!$objThemes->Items) { $objThemes->Query_Item('SELECT * FROM '.$objThemes->SourceTable); } - + $keys = array_keys($objThemes->Items); foreach ($keys as $theme_index) { $theme =& $objThemes->Items[$theme_index]; $theme->VerifyTemplates(); } - + break; - + case "m_theme_add": $ado = &GetADODBConnection(); $rs = $ado->Execute("SELECT COUNT(*) as c FROM ".GetTablePrefix().'Theme WHERE Name="'.$_POST["name"].'"'); @@ -1266,7 +1266,7 @@ $t = $objEditItems->AddTheme($_POST["name"],$_POST["description"],(int)$_POST["enabled"],$Primary, (int)$_POST["CacheTimeout"],GetVar('StylesheetId')); $t->Files->ThemeId=$t->Get("ThemeId"); - + $rs = $ado->Execute("SELECT MIN(ThemeId) as MinValue FROM ".$objEditItems->SourceTable); $NewId = $rs->fields["MinValue"]-1; $sql = "UPDATE ".$objEditItems->SourceTable." SET ThemeId=".$NewId." WHERE ThemeId=".$t->Get("ThemeId"); @@ -1276,25 +1276,25 @@ // $t->Files->FindMissingFiles(strtolower($t->Get('name'))); } break; - case "m_theme_edit": + case "m_theme_edit": $objEditItems = new clsThemeList(); $objEditItems->SourceTable = $objSession->GetEditTable("Theme"); $Primary = (int)$_POST["primary"]; if(!(int)$_POST["enabled"]) - $Primary = 0; - + $Primary = 0; + $objEditItems->EditTheme($_POST["ThemeId"],$_POST["name"],$_POST["description"], (int)$_POST["enabled"],$Primary,(int)$_POST["CacheTimeout"], GetVar('StylesheetId')); -// if ($Primary==1) +// if ($Primary==1) // { // $objEditItems->SetPrimaryTheme($_POST["ThemeId"]); // } - + break; case "m_theme_delete": - if($ro_perm) break; + if($ro_perm) break; if (isset($_POST["itemlist"])) - { + { $Themes = new clsThemeList(); foreach($_POST["itemlist"] as $id) { @@ -1311,27 +1311,27 @@ $t->SetPrimaryTheme($ThemeId); } break; - + case "m_template_edit": if($ro_perm) break; $objSession->SetVariable("HasChanges", 1); $ThemeId = $_POST["ThemeId"]; $FileId = $_POST["FileId"]; $f = new clsThemeFile($FileId); - + $f->Set("Description", $_POST["Description"] ); $f->Update(); $c = stripslashes($_POST["contents"]); $f->SaveFileContents($c); - break; + break; case "m_template_add": if($ro_perm) break; $objSession->SetVariable("HasChanges", 1); $ThemeId = $_POST["ThemeId"]; if( !is_object($f) ) $f = new clsThemeFile(); - + $FilePath = $_POST['name']; - + if(!$FilePath) { $f->SetError('Template Name is required',3); @@ -1343,18 +1343,18 @@ if( substr($FilePath,-3) != '.tpl' ) $FilePath .= '.tpl'; $FileName = basename($FilePath); $FilePath = dirname($FilePath); - + // test if such file not already created - - $f->LoadFromDataBase( Array($FilePath,$FileName), Array('FilePath','FileName') ); + + $f->LoadFromDataBase( Array($FilePath,$FileName), Array('FilePath','FileName') ); if( !$f->Get('FileId') ) { $f->Set( Array('FilePath','FileName','ThemeId', 'Description'), Array($FilePath, $FileName,$_POST['ThemeId'], $_POST["Description"]) ); - + if( $f->IsWriteablePath(true) ) - { + { $f->Create(); $c = stripslashes($_POST["contents"]); $f->SaveFileContents($c, true); @@ -1369,17 +1369,17 @@ $objSession->SetVariable("HasChanges", 1); $dummy = new clsThemeFile(); foreach($_POST["itemlist"] as $FileId) - { + { $dummy->LoadFromDatabase($FileId); $dummy->Delete(); - } + } break; - - case "m_lang_add": + + case "m_lang_add": $ado = &GetADODBConnection(); $objEditItems = new clsLanguageList(); - $objEditItems->SourceTable = $objSession->GetEditTable("Language"); - + $objEditItems->SourceTable = $objSession->GetEditTable("Language"); + $l = $objEditItems->AddLanguage($_POST["packname"],$_POST["localname"], (int)$_POST["enabled"],(int)$_POST["primary"], $_POST["icon"],$_POST["date_format"],$_POST["time_format"], @@ -1390,16 +1390,16 @@ $sql = "UPDATE ".$objEditItems->SourceTable." SET LanguageId=".$NewId." WHERE LanguageId=".$l->Get("LanguageId"); if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $ado->Execute($sql); + $ado->Execute($sql); if($_POST["importlabels"]==1 && $_POST["srcpack"]>0) - { + { // Phrase import /* $sql = "SELECT * FROM ".GetTablePrefix()."Phrase WHERE LanguageId=".$_POST["srcpack"]; if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $rs = $ado->Execute($sql); + $rs = $ado->Execute($sql); $plist = new clsPhraseList(); $plist->SourceTable = $objSession->GetEditTable("Phrase"); $sql = "SELECT MIN(PhraseId) as MinId FROM ".$plist->SourceTable; @@ -1420,52 +1420,52 @@ $MinId--; $rs->MoveNext(); } -*/ +*/ $sql='INSERT INTO '.$objSession->GetEditTable('Phrase').' SELECT Phrase, Translation, PhraseType, 0-PhraseId, '.$NewId.' FROM '.GetTablePrefix().'Phrase WHERE LanguageId='.$_POST['srcpack']; $ado->Execute($sql); // Events import $sql = "SELECT * FROM ".GetTablePrefix()."EmailMessage WHERE LanguageId=".$_POST["srcpack"]; if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $rs = $ado->Execute($sql); - + $rs = $ado->Execute($sql); + $eList = new clsEmailMessageList(); //$eList->SourceTable = $objSession->GetEditTable("EmailMessage"); - + if (!$l->TableExists($objSession->GetEditTable("EmailMessage"))) { $eList->CreateEmptyEditTable("EmailMessageId", true); $eList->SourceTable = $objSession->GetEditTable("EmailMessage"); } else { $eList->SourceTable = $objSession->GetEditTable("EmailMessage"); } - + $sql = "SELECT MIN(EmailMessageId) as MinId FROM ".$eList->SourceTable; $as = $ado->Execute($sql); - + if($as && !$as->EOF) { $MinId = (int)$as->fields["MinId"]; } else { $MinId = 0; } - + $MinId--; while($rs && !$rs->EOF) { $data = $rs->fields; $eList->AddEmailEvent($data["Template"], $data["MessageType"], $NewId, $data["EventId"]); - + $sql = "UPDATE ".$eList->SourceTable." SET EmailMessageId=$MinId WHERE EmailMessageId=0 LIMIT 1"; $ado->Execute($sql); - + $MinId--; - + $rs->MoveNext(); - } + } } break; case "m_lang_export": @@ -1483,20 +1483,20 @@ $ExportResult = $objLanguages->ExportPhrases($ExportFilename,$Ids, $phrase_types); } break; - + case "m_lang_edit": $ado = &GetADODBConnection(); $objEditItems = new clsLanguageList(); $objEditItems->SourceTable = $objSession->GetEditTable("Language"); - + $objEditItems->EditLanguage($_POST["LanguageId"],$_POST["packname"], $_POST["localname"],(int)GetVar('enabled'), (int)GetVar('primary'), $_POST["icon"],$_POST["date_format"], $_POST["time_format"], $_POST["decimal"],$_POST["thousand"], $_POST['charset']); - + if( GetVar('importlabels') && $_POST["srcpack"]>0) - { + { $rs = $ado->Execute("SELECT * FROM ".GetTablePrefix()."Phrase WHERE LanguageId=".$_POST["srcpack"]); $plist = new clsPhraseList(); $plist->SourceTable = $objSession->GetEditTable("Phrase"); @@ -1508,7 +1508,7 @@ } else $MinId = 0; - $MinId--; + $MinId--; while($rs && !$rs->EOF) { $data = $rs->fields; @@ -1519,14 +1519,14 @@ $rs->MoveNext(); } unset($plist); - + // Events import $sql = "SELECT * FROM ".GetTablePrefix()."EmailMessage WHERE LanguageId=".$_POST["srcpack"]; if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $rs = $ado->Execute($sql); - + $rs = $ado->Execute($sql); + $eList = new clsEmailMessageList(); //$eList->SourceTable = $objSession->GetEditTable("EmailMessage"); $l = new clsEmailMessage(); @@ -1537,30 +1537,30 @@ else { $eList->SourceTable = $objSession->GetEditTable("EmailMessage"); } - + $sql = "SELECT MIN(EmailMessageId) as MinId FROM ".$eList->SourceTable; $as = $ado->Execute($sql); - + if($as && !$as->EOF) { $MinId = (int)$as->fields["MinId"]; } else { $MinId = 0; } - + $MinId--; - + while($rs && !$rs->EOF) { $data = $rs->fields; $eList->AddEmailEvent($data["Template"], $data["MessageType"], $_POST["LanguageId"], $data["EventId"]); - + $sql = "UPDATE ".$eList->SourceTable." SET EmailMessageId=$MinId WHERE EmailMessageId=0 LIMIT 1"; $ado->Execute($sql); - + $MinId--; - + $rs->MoveNext(); } unset($eList); @@ -1583,10 +1583,10 @@ unset($Messages); } break; - + case "m_lang_select": - if($ro_perm) break; - $LangId = (int)$_POST["langselect"]; + if($ro_perm) break; + $LangId = (int)$_POST["langselect"]; if($LangId) { if($objSession->Get("PortalUserId")>0) @@ -1599,33 +1599,33 @@ $m_var_list_update["lang"] = $LangId; $m_var_list["lang"] = $LangId; } - break; - - case "m_phrase_edit": - if( !GetVar('direct') ) $objSession->SetVariable("HasChanges", 1); + break; + + case "m_phrase_edit": + if( !GetVar('direct') ) $objSession->SetVariable("HasChanges", 1); $objPhraseList = new clsPhraseList(); - if((int)$_POST["direct"] != 1) + if((int)$_POST["direct"] != 1) $objPhraseList->SourceTable = $objSession->GetEditTable("Phrase"); $Phrases = $_POST["name"]; foreach($Phrases as $PhraseId =>$name) { if($PhraseId>0) - { + { $objPhraseList->EditPhrase($PhraseId,$_POST["name"][$PhraseId],$_POST["LanguageId"],$_POST["translation"][$PhraseId],$_POST["phrasetype"][$PhraseId]); } } - + if(strlen($_POST["name"][0]) && strlen($_POST["translation"][0]) && $_POST['Action1'] == "new") { - $r = $objPhraseList->AddPhrase($_POST["name"][0],$_POST["LanguageId"],$_POST["translation"][0],$_POST["phrasetype"][0]); + $r = $objPhraseList->AddPhrase($_POST["name"][0],$_POST["LanguageId"],$_POST["translation"][0],$_POST["phrasetype"][0]); if ($r != "Error") { $ado = &GetADODBConnection(); $rs = $ado->Execute("SELECT MIN(PhraseId) as MinValue FROM ".$objPhraseList->SourceTable); $NewId = $rs->fields["MinValue"]-1; $sql = "UPDATE ".$objPhraseList->SourceTable." SET PhraseId=".$NewId." WHERE PhraseId=$PhraseId"; if($objSession->HasSystemPermission("DEBUG.LIST")) echo $sql."
\n"; - $ado->Execute($sql); + $ado->Execute($sql); } else { $add_error = "Language tag with the same name already exists!"; @@ -1648,10 +1648,10 @@ foreach($_POST["Phrase"] as $p => $value) { if(strlen($value)) - { + { $obj = $objPhraseList->GetItemByField("Phrase",$p,TRUE); if(is_object($obj)) - { + { if($obj->Get("Phrase")==$p) { $obj->Set("Translation",$value); @@ -1669,7 +1669,7 @@ case "m_phrase_delete": $objSession->SetVariable("HasChanges", 1); if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $sql = "UPDATE ".$objSession->GetEditTable("Phrase")." SET LanguageId = 0 WHERE PhraseId = ".$id; @@ -1683,7 +1683,7 @@ if($ro_perm) break; $objEvents = new clsEventList(); if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $m =& $objEvents->GetItem($id); @@ -1697,7 +1697,7 @@ if($ro_perm) break; $objEvents = new clsEventList(); if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $m =& $objEvents->GetItem($id); @@ -1711,7 +1711,7 @@ if($ro_perm) break; $objEvents = new clsEventList(); if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $m =& $objEvents->GetItem($id); @@ -1720,7 +1720,7 @@ } } unset($objEvents); - break; + break; case "m_dlid": echo $Action.":".$DownloadId; die(); @@ -1735,8 +1735,8 @@ $ids = str_replace("]","",$ids); $ids = str_replace("\"","",$ids); $ids = str_replace("\\","",$ids); - - + + $idlist = explode(",",$ids); foreach($idlist as $EventId) { @@ -1748,13 +1748,13 @@ $objEvents->Clear(); unset($objEvents); break; - case "m_emailevent_edit": + case "m_emailevent_edit": $Template = $_POST["headers"]; if(strlen($Template)) { $Template .= "\n"; } - $Template = str_replace("\n\n","",$Template); + $Template = str_replace("\n\n","",$Template); $Template .= "Subject: "._unhtmlentities($_POST['subject'])."\n\n"; $Template .= $_POST["messageBody"]; $objMessages = new clsEmailMessageList(); @@ -1763,7 +1763,7 @@ if(is_object($m)) { if($_POST["sendhtml"]==1) - { + { $m->Set("MessageType","html"); } else @@ -1786,12 +1786,12 @@ if($_POST["RootPass"]==$_POST["RootPassVerify"]) { $_POST["RootPass"] = md5($_POST["RootPass"]); - } + } } else { $_POST["RootPass"] = $objConfig->Get("RootPass"); - $_POST["RootPassVerify"] = $objConfig->Get("RootPassVerify"); + $_POST["RootPassVerify"] = $objConfig->Get("RootPassVerify"); } } $objAdmin->LoadItems(FALSE); @@ -1801,23 +1801,23 @@ case "m_mod_enable": if($ro_perm) break; if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $m =& $objModules->GetItemByField("Name",$id); if(is_object($m)) { $m->Set("Loaded",1); - $m->Update(); - } + $m->Update(); + } } $_GET["Refresh"] = 1; } break; case "m_mod_disable": if($ro_perm) break; if (isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { if($id != "In-Portal") @@ -1826,7 +1826,7 @@ if(is_object($m)) { $m->Set("Loaded",0); - $m->Update(); + $m->Update(); } } } @@ -1840,12 +1840,12 @@ $LocalImage=0; $LocalThumb=0; $DestDir = "kernel/images/"; - + $UserThumbSource = (int)$_POST["imgLocalThumb"]; $LocalThumb = $UserThumbSource; - + $thumb_url = !$LocalThumb? $_POST["imgThumbUrl"] : ""; - + if($_POST["imgSameImages"]) { $LocalImage = $LocalThumb; @@ -1862,27 +1862,27 @@ { break; } - + $ado = &GetADODBConnection(); $NewId = $ado->GetOne('SELECT MIN(ImageId) as MinValue FROM '.$objImageList->SourceTable); if($NewId > 0) $NewId = 0; $NewId--; $img = $objImageList->Add($_POST["imgName"], $_POST["imgAlt"], $_POST["ResourceId"], $LocalImage, $LocalThumb, $full_url, $thumb_url, (int)$_POST["imgEnabled"], 0, (int)$_POST["imgDefault"], 0,(int)$_POST["imgSameImages"], $NewId); $img->Set("ImageId", $NewId); - + // $img->debuglevel=1; - + /* $sql = "UPDATE ".$objImageList->SourceTable." SET ImageId=".$NewId." WHERE ImageId=0"; $ado->Execute($sql); - + // $img->Update(); */ // echo "SL: $sql $NewId
"; - + // $img->debuglevel=1; - - $img->Pending=false; + + $img->Pending=false; if($LocalImage) { $file = $_FILES["imgFullFile"]; @@ -1895,7 +1895,7 @@ } } } - + if($LocalThumb) { $thumb = $_FILES["imgThumbFile"]; @@ -1907,115 +1907,115 @@ $uploaded=1; } } - } + } if($uploaded==1) $img->Update(); - + break; - + case "m_img_edit": - + $objImageList = new clsImageList(); $objImageList->SourceTable = $objSession->GetEditTable("Images"); - + // $img->debuglevel=1; - + $img = $objImageList->GetItem($_POST["ImageId"]); ## Get original values $LocalImage = $img->Get("LocalImage"); $LocalThumb = $img->Get("LocalThumb"); $SameImages = $img->Get("SameImages"); $ThumbPath = $img->Get("ThumbPath"); - + ## New values $LocalThumbN = (int)$_POST["imgLocalThumb"]; $LocalImageN = (int)$_POST["imgLocalFull"]; - + $FULLFile = $_FILES["imgFullFile"]; - $THFile = $_FILES["imgThumbFile"]; - + $THFile = $_FILES["imgThumbFile"]; + $DestDir = "kernel/images/"; $img->Pending = FALSE; - + $SameImagesN = 0; $uploaded = 0; ## Images were the same, but not any more if ($SameImages && !$_POST["imgSameImages"]) - { + { ## TH was a local file if ($LocalThumb) { ## TH image - { + { ## Try to Delete OLD FULL $img->DeleteLocalImage(FALSE, TRUE); - - ## FULL image select, but field EMPTY - make a copy of old TH as FULL + + ## FULL image select, but field EMPTY - make a copy of old TH as FULL if ($LocalImageN && !(int)$FULLFile["size"]) - { + { // echo $pathToPending = $img->GetImageDir(); if (!eregi("pending/$", $pathToPending)) - $pathToPending.= "pending/"; - + $pathToPending.= "pending/"; + $LocalThumb_File = $img->GetFileName(1); - + // echo "CAN'T FIND FILE: ".$pathToPending.$LocalThumb_File."
"; - + if (file_exists($pathToPending.$LocalThumb_File)) - { - $LocalThumb_FileN = eregi_replace("^th_", "", $LocalThumb_File); - $LocalThumb_FullFileN = $pathToPending.$LocalThumb_FileN; + { + $LocalThumb_FileN = eregi_replace("^th_", "", $LocalThumb_File); + $LocalThumb_FullFileN = $pathToPending.$LocalThumb_FileN; @unlink($LocalThumb_FullFileN); @copy($pathToPending.$LocalThumb_File, $LocalThumb_FullFileN); - + $uploaded = 1; $copied = 1; // echo "COPING: ".$DestDir."pending/".$LocalThumb_FileN."
"; } else { // echo "CAN'T FIND FILE: ".$pathToPending.$LocalThumb_File."
"; - } + } } ## Upload new FULL image elseif ($LocalImageN && (int)$FULLFile['size']) { $FULL_FileToUpload = $FULLFile; - $FULL_URL = ""; - -// echo " Upload new FULL image"; + $FULL_URL = ""; + +// echo " Upload new FULL image"; } ## Full is URL elseif (!$LocalImageN) { $img->DeleteLocalImage(FALSE, TRUE); - $FULL_URL = $_POST['imgFullUrl']; - $FULL_FileToUpload = ""; + $FULL_URL = $_POST['imgFullUrl']; + $FULL_FileToUpload = ""; } else { // echo " ## Unknow condition"; } - + ## Take care of Thumbnail here if ($LocalThumbN) - { + { ## Delete old if NEW TH image selected if ((int)$THFile['size']) { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = $THFile; } else - $TH_FileToUpload = ""; + $TH_FileToUpload = ""; } else { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = ""; - $TH_URL = $_POST['imgThumbUrl']; + $TH_URL = $_POST['imgThumbUrl']; } } } @@ -2025,108 +2025,108 @@ ## Take care of FULL image here if ($LocalImageN && (int)$FULLFile["size"]) { - $FULL_FileToUpload = $FULLFile; - $FULL_URL = ""; + $FULL_FileToUpload = $FULLFile; + $FULL_URL = ""; } ## Full is URL (or image size 0) else { $FULL_FileToUpload = ""; - $FULL_URL = $_POST['imgFullUrl']; + $FULL_URL = $_POST['imgFullUrl']; } - + ## Take care of Thumbnail here - if ($LocalThumbN) - { - $TH_FileToUpload = (int)$THFile['size']? $THFile : ""; + if ($LocalThumbN) + { + $TH_FileToUpload = (int)$THFile['size']? $THFile : ""; $TH_URL = ""; } else { $TH_FileToUpload = ""; - $TH_URL = $_POST['imgThumbUrl']; - } + $TH_URL = $_POST['imgThumbUrl']; + } } } ## Images were the same, and still the same elseif ($SameImages && $_POST['imgSameImages']) - { + { ## Take care of Thumbnail & FULL here if ($LocalThumbN) - { + { if ((int)$THFile['size']) { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = $THFile; } - else + else $TH_FileToUpload = ""; - - $FULL_URL = $TH_URL = ""; + + $FULL_URL = $TH_URL = ""; } else { $TH_FileToUpload = $FULL_FileToUpload = ""; - $FULL_URL = $TH_URL = $_POST['imgThumbUrl']; + $FULL_URL = $TH_URL = $_POST['imgThumbUrl']; } - - ## Delete old FULL image + + ## Delete old FULL image $img->DeleteLocalImage(FALSE,TRUE); - - $SameImagesN = 1; + + $SameImagesN = 1; } ## Images were NOT the same, and selected as the same now elseif (!$SameImages && $_POST["imgSameImages"]) { ## Take care of Thumbnail & FULL here if ($LocalThumbN) - { + { if ((int)$THFile['size']) { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = $THFile; } - else + else $TH_FileToUpload = ""; - - - $FULL_URL = $TH_URL = ""; + + + $FULL_URL = $TH_URL = ""; } else - { + { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = $FULL_FileToUpload = ""; - $FULL_URL = $TH_URL = $_POST['imgThumbUrl']; + $FULL_URL = $TH_URL = $_POST['imgThumbUrl']; } - + ## Clean up FULL image - $img->DeleteLocalImage(FALSE, TRUE); - + $img->DeleteLocalImage(FALSE, TRUE); + $SameImagesN = 1; } ## Images were NOT the same, and selected as NOT the same elseif (!$SameImages && !$_POST["imgSameImages"]) { ## Take care of Thumbnail if ($LocalThumbN) - { + { if ((int)$THFile['size']) { $img->DeleteLocalImage(TRUE, FALSE); - $TH_FileToUpload = $THFile; + $TH_FileToUpload = $THFile; } - else - $TH_FileToUpload = ""; - + else + $TH_FileToUpload = ""; + $TH_URL = ""; } else { $img->DeleteLocalImage(TRUE, FALSE); $TH_FileToUpload = ""; - $TH_URL = $_POST['imgThumbUrl']; + $TH_URL = $_POST['imgThumbUrl']; } - + ## Take care of FULL here if ($LocalImageN) { @@ -2136,30 +2136,30 @@ $FULL_FileToUpload = $FULLFile; } else - $FULL_FileToUpload = ""; - + $FULL_FileToUpload = ""; + $FULL_URL = ""; } else - { - $img->DeleteLocalImage(FALSE, TRUE); + { + $img->DeleteLocalImage(FALSE, TRUE); $FULL_FileToUpload = ""; $FULL_URL = $_POST['imgFullUrl']; - } + } } - ## Unknow condition + ## Unknow condition else { ; } - + $img = $objImageList->Edit($_POST["ImageId"],$_POST["imgName"], $_POST["imgAlt"], $_POST["ResourceId"], $LocalImageN, $LocalThumbN, $FULL_URL, $TH_URL, (int)$_POST["imgEnabled"], (int)$_POST["imgPriority"], (int)$_POST["imgDefault"], 0, $SameImagesN); - + // echo "DATA:
LocalImageN: $LocalImageN, LocalThumbN: $LocalThumbN, FULL_URL: $FULL_URL, TH_URL: $TH_URL, SameImagesN: $SameImagesN
"; - - + + $img->Pending = TRUE; - + if (!empty($FULL_FileToUpload)) { $img->Set("LocalPath",$img->StoreUploadedImage($FULL_FileToUpload, 1, $DestDir, 0)); @@ -2172,22 +2172,22 @@ $uploaded = 1; } */ - + if (!empty($TH_FileToUpload)) { $img->Set("ThumbPath", $img->StoreUploadedImage($TH_FileToUpload, 1, $DestDir, 1)); $uploaded = 1; } - + if ($copied) { - $img->Set("LocalPath", $DestDir."pending/".$LocalThumb_FileN); + $img->Set("LocalPath", $DestDir."pending/".$LocalThumb_FileN); $uploaded = 1; } - + if($uploaded==1) - $img->Update(); - + $img->Update(); + break; case "m_img_move_up": if (isset($_POST["itemlist"])) @@ -2217,12 +2217,12 @@ case "m_img_delete": if(isset($_POST["itemlist"])) - { + { $objImageList = new clsImageList(); $objImageList->SourceTable = $objSession->GetEditTable("Images"); foreach($_POST["itemlist"] as $id) { - $img = $objImageList->GetItem($id); + $img = $objImageList->GetItem($id); $img->Set("ResourceId", 0); $img->Update(); //$img->Delete(); @@ -2239,12 +2239,12 @@ unlink($BackupFile); } break; - + case "m_taglib": include($pathtoroot."kernel/include/tag-class.php"); ParseTagLibrary(); break; - + case "m_sql_query": if($ro_perm) break; $SqlQuery = $_POST["sql"]; @@ -2258,14 +2258,14 @@ break; case "m_purge_email_log": if($ro_perm) break; - $ado = &GetADODBConnection(); + $ado = &GetADODBConnection(); $sql = "DELETE FROM ".GetTablePrefix()."EmailLog"; $ado->Execute($sql); - break; + break; case "m_session_delete": if($ro_perm) break; - $ado = &GetADODBConnection(); + $ado = &GetADODBConnection(); if (count($_POST['itemlist']) > 0) { foreach($_POST["itemlist"] as $id) { @@ -2277,7 +2277,7 @@ } else { $sql = "DELETE FROM ".GetTablePrefix()."UserSession WHERE Status='0'"; - $ado->Execute($sql); + $ado->Execute($sql); } break; case "m_add_rule": @@ -2288,48 +2288,48 @@ $_POST["rule_verb"],$_POST["rule_value"],(int)$_POST["rule_priority"], (int)$_POST["rule_status"], $_POST['rule_error']); break; - case "m_edit_rule": + case "m_edit_rule": $objEditItems = new clsBanRuleList(); $objEditItems->SourceTable = $objSession->GetEditTable("BanRules"); //$ItemType,$RuleType,$ItemField,$ItemVerb,$ItemValue,$Priority,$Status; $objEditItems->EditRule($_POST["rule_id"],$_POST["rule_itemtype"],$_POST["rule_type"],$_POST["rule_field"], $_POST["rule_verb"],$_POST["rule_value"],(int)$_POST["rule_priority"], (int)$_POST["rule_status"], $_POST['rule_error']); - break; + break; case "m_rule_move_up": if($ro_perm) break; if(isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $i = $objBanList->GetItem($id); $i->Increment("Priority"); } - } + } break; case "m_rule_move_down": if($ro_perm) break; if(isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $i = $objBanList->GetItem($id); $i->Decrement("Priority"); } - } + } break; - + case "m_rule_delete": if($ro_perm) break; if(isset($_POST["itemlist"])) - { + { foreach($_POST["itemlist"] as $id) { $i = $objBanList->GetItem($id); $i->Delete(); } - } - break; + } + break; case "m_ban_user": if($ro_perm) break; if($_POST["UserEditStatus"]==1) @@ -2353,18 +2353,18 @@ { if(strlen($_POST["user_ip"])) $objBanList->AddRule(6,0,"ip",3,$_POST["user_ip"],0,1); - } - $u->Deny(); + } + $u->Deny(); } $objUsers->SetTable('restore'); } break; - - + + case 'm_rebuild_cache': $objSession->SetVariable('PermCache_UpdateRequired', 1); break; - + } /* image upload management */ @@ -2396,9 +2396,9 @@ else { /* remote images handled here */ if(strlen($url)>0) - { + { if($relvalue>0) - { + { $img = $objImageList->GetImageByResource($res_id,$relvalue); $img->Set("Name",$name); $img->Set("AltName", $alt); @@ -2428,11 +2428,11 @@ if( !$has_perm ) { if( GetVar('ReviewEditStatus') == 1 ) - { + { $objReviews=new clsItemReviewList(); $objReviews->CopyFromEditTable_Direct(); } - + if( GetVar('ReviewEditStatus') == -1 ) { $objReviews=new clsItemReviewList(); @@ -2441,18 +2441,18 @@ /* category Edit */ if( GetVar('CatEditStatus') == 1 ) - { + { $adodbConnection = &GetADODBConnection(); - // $sql = "SELECT * FROM ".$objSession->GetEditTable("Category")." WHERE CategoryId=0"; + // $sql = "SELECT * FROM ".$objSession->GetEditTable("Category")." WHERE CategoryId=0"; $sql = "SELECT ParentId FROM ".$objSession->GetEditTable("Category")." WHERE CategoryId=-1"; - + $rs = $adodbConnection->Execute($sql); - while ($rs && !$rs->EOF) + while ($rs && !$rs->EOF) { if($rs->fields["ParentId"] > 0) RunUp($rs->fields["ParentId"],"Increment_Count"); $rs->MoveNext(); } - + $cat_ids = $objCatList->CopyFromEditTable("CategoryId"); if($cat_ids) { @@ -2469,9 +2469,9 @@ $objImages->CopyFromEditTable("ImageId"); } } - + if( GetVar('CatEditStatus') == 2 ) - { + { $objCatList->PurgeEditTable("CategoryId"); $objCustomDataList->PurgeEditTable("CustomDataId"); if($_REQUEST['CategoryId'] > 0) // not root category is updated @@ -2482,13 +2482,13 @@ } $objCatList->Clear(); } - + /* User Edit */ if( GetVar('UserEditStatus') == 1 ) { $objUserGroupsList = new clsUserGroupList(); - $objUserGroupsList->CopyFromEditTable("PortalUserId"); - + $objUserGroupsList->CopyFromEditTable("PortalUserId"); + $user_ids = $objUsers->CopyFromEditTable("PortalUserId"); if($user_ids) { @@ -2497,10 +2497,10 @@ $rids = $db->GetCol($sql); $objCustomDataList->CopyFromEditTable("CustomDataId", $rids); } - + $objGroups->Clear(); $objImages = new clsImageList(); - $objImages->CopyFromEditTable("ImageId"); + $objImages->CopyFromEditTable("ImageId"); } if( GetVar('UserEditStatus') == 2 ) { @@ -2510,12 +2510,12 @@ $objCustomDataList->PurgeEditTable("CustomDataId"); $objGroups->Clear(); } - + /* Group Edit */ if( GetVar('GroupEditStatus') == 1 ) { $objUserGroupsList = new clsUserGroupList(); - $objUserGroupsList->CopyFromEditTable("GroupId"); + $objUserGroupsList->CopyFromEditTable("GroupId"); $objGroups->CopyFromEditTable("GroupId"); $objCustomDataList->CopyFromEditTable("CustomDataId"); $objGroups->Clear(); @@ -2528,63 +2528,63 @@ $objUserGroupsList->PurgeEditTable("PortalUserId"); $objGroups->Clear(); } - + /* Theme Edit */ if( GetVar('ThemeEditStatus') == 1 ) - { + { $objThemes->CopyFromEditTable(); $objThemes->Clear(); } - + if( GetVar('ThemeEditStatus') == 2 ) { $objThemes->PurgeEditTable(); $objThemes->Clear(); } - + /* Language Edit */ if( GetVar('LangEditStatus') == 1 ) { $objLanguages->CopyFromEditTable(); $objLanguages->Clear(); $objLanguages->PurgeEditTable(); - + $Phrases = new clsPhraseList(); $Phrases->CopyFromEditTable(); $Phrases->Clear(); $Phrases->PurgeEditTable(); - + $Messages = new clsEmailMessageList(); $Messages->CopyFromEditTable(); - $Messages->Clear(); - } + $Messages->Clear(); + } if( GetVar('LangEditStatus') == 2 ) { $objLanguages->PurgeEditTable(); $objLanguages->Clear(); $Phrases = new clsPhraseList(); - $Phrases->PurgeEditTable(); + $Phrases->PurgeEditTable(); $Messages = new clsEmailMessageList(); $Messages->PurgeEditTable(); } - + if( GetVar('MissingLangEditStatus') == 1 ) { $objPhraseList = new clsPhraseList(); $objPhraseList->SourceTable = $objSession->GetSessionKey()."_".$ThemeId."_labels"; - + $objEditList = new clsPhraseList(); $objEditList->SourceTable = $objSession->GetEditTable("Phrase"); - + $ado = &GetADODBConnection(); $rs = $ado->Execute("SELECT MIN(PhraseId) as MinValue FROM ".$objEditList->SourceTable); $NewId = $rs->fields["MinValue"]-1; - + $objPhraseList->Query_Item("SELECT * FROM ".$objPhraseList->SourceTable); foreach($objPhraseList->Items as $p) { if(strlen($p->Get("Translation"))>0) - { + { $p->tablename = $objEditList->SourceTable; $p->Dirty(); $p->UnsetIDField(); @@ -2595,17 +2595,17 @@ } $ado->Execute("DROP TABLE IF EXISTS ".$objPhraseList->SourceTable); } - + if( GetVar('MissingLangEditStatus') == 2 ) { $table = $objSession->GetSessionKey()."_".$ThemeId."_labels"; $ado = &GetADODBConnection(); $ado->Execute("DROP TABLE IF EXISTS ".$table); } - + /* Ban Rule Edit */ if( GetVar('RuleEditStatus') == 1 ) - { + { $objBanList->CopyFromEditTable("RuleId"); $objBanList->Clear(); } Index: trunk/kernel/units/general/inp_ses_storage.php =================================================================== diff -u -N -r3330 -r3508 --- trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3330) +++ trunk/kernel/units/general/inp_ses_storage.php (.../inp_ses_storage.php) (revision 3508) @@ -1,6 +1,6 @@ Application->IsAdmin() ) $path = rtrim($path, '/').'/admin'; $this->SetCookiePath($path); - + $cookie_name = $this->Application->ConfigValue('SessionCookieName'); $this->SetCookieName($cookie_name ? $cookie_name : 'sid'); - + $this->SetCookieDomain(SERVER_NAME); - + if( $this->Application->IsAdmin() ) { $mode = constOn('IS_INSTALL') ? smCOOKIES_ONLY : smAUTO; @@ -27,7 +27,7 @@ if ($ses_mode == 0) $mode = smGET_ONLY; } $this->SetMode($mode); - + parent::Init($prefix,$special); if( !$this->Application->IsAdmin() && $this->GetField('PortalUserId') <= 0 ) @@ -80,7 +80,9 @@ { $query = ' SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE '.adodb_mktime().' - '.$this->TimestampField.' > '.$this->SessionTimeout; $ret = $this->Conn->GetCol($query); - if($ret) $this->DeleteEditTables(); + if($ret) { + $this->DeleteEditTables(); + } return $ret; } @@ -89,7 +91,7 @@ { $tables = $this->Conn->GetCol('SHOW TABLES'); $mask_edit_table = '/'.TABLE_PREFIX.'ses_(.*)_edit_(.*)/'; - $mask_search_table = '/'.TABLE_PREFIX.'ses_(.*)_(.*)/'; + $mask_search_table = '/'.TABLE_PREFIX.'ses_(.*?)_(.*)/'; $sql='SELECT COUNT(*) FROM '.$this->TableName.' WHERE '.$this->IDField.' = \'%s\''; foreach($tables as $table)