Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sat, Jul 19, 6:34 PM

in-portal

This file is larger than 256 KB, so syntax highlighting was skipped.
Index: branches/unlabeled/unlabeled-1.1.2/kernel/units/general/xml_helper.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/kernel/units/general/xml_helper.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.1.2/kernel/units/general/xml_helper.php (revision 4354)
@@ -1,136 +1,136 @@
<?php
class kXMLHelper extends kHelper {
var $RootElement = null;
/**
* Enter description here...
*
* @var kXMLNode
*/
var $CurrentElement = null;
function &Parse($xml = null)
{
$xml_parser = xml_parser_create();
xml_set_element_handler( $xml_parser, Array(&$this, 'startElement'), Array(&$this, 'endElement') );
xml_set_character_data_handler( $xml_parser, Array(&$this, 'characterData') );
if (!xml_parse($xml_parser, $xml, 1)) {
trigger_error(sprintf('XML error: %s at line %d'),
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser), E_USER_WARNING);
}
xml_parser_free($xml_parser);
return $this->RootElement;
}
function startElement(&$Parser, &$Elem, $Attrs)
{
$parent =& $this->CurrentElement;
$this->CurrentElement =& new kXMLNode($Elem, $Attrs);
if (is_null($this->RootElement)) {
$this->RootElement =& $this->CurrentElement;
}
if (!is_null($parent)) {
$parent->AddChild($this->CurrentElement);
}
}
function characterData($Parser, $Line)
{
$this->CurrentElement->AppendData($Line);
}
function endElement($Parser, $Elem)
{
if ($this->CurrentElement->Parent != null) {
$this->CurrentElement =& $this->CurrentElement->Parent;
}
}
function Clear()
{
$this->RootElement = null;
$this->CurrentElement = null;
}
}
class kXMLNode {
var $Name = null;
var $Attributes = array();
var $Children = array();
var $Data = null;
var $Parent = null;
function kXMLNode($name, $attrs = array())
{
$this->Name = $name;
$this->Attributes = $attrs;
}
function SetParent(&$elem)
{
$this->Parent =& $elem;
}
function AddChild(&$a_child)
{
- $this->Children[$a_child->Name] =& $a_child;
+ $this->Children[] =& $a_child;
$a_child->SetParent($this);
}
function AppendData($data)
{
$this->Data .= $data;
}
function &GetChild($path)
{
$entries = explode('/', strtoupper($path));
$cur = array_shift($entries);
if ($cur == $this->Name) $cur = array_shift($entries);
if (!$cur) return $this;
if (!isset($this->Children[$cur])) return false;
$left = implode('/', $entries);
if (!$left) return $this->Children[$cur];
return $this->Children[$cur]->GetChild($left);
}
function GetChildValue($path)
{
$child =& $this->GetChild($path);
if ($child !== false) {
return $child->Data;
}
}
function &FindChild($name)
{
$name = strtoupper($name);
if ($this->Name == $name) return $this;
- if (isset($this->Children[$name])) return $this->Children[$name];
- $children_names = array_keys($this->Children);
- foreach ($children_names as $a_name)
+// if (isset($this->Children[$name])) return $this->Children[$name];
+// $children = array_keys($this->Children);
+ foreach ($this->Children as $elem)
{
- $child =& $this->Children[$a_name]->FindChild($name);
+ $child =& $elem->FindChild($name);
if ($child !== false)
{
return $child;
}
}
return false;
}
function FindChildValue($name, $attr=null)
{
$child =& $this->FindChild($name);
if ($child !== false) {
if (isset($attr)) {
return $child->Attributes[strtoupper($attr)];
}
return $child->Data;
}
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/kernel/units/general/xml_helper.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1
\ No newline at end of property
+1.1.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.1.2/core/units/general/xml_helper.php
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/core/units/general/xml_helper.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.1.2/core/units/general/xml_helper.php (revision 4354)
@@ -1,136 +1,136 @@
<?php
class kXMLHelper extends kHelper {
var $RootElement = null;
/**
* Enter description here...
*
* @var kXMLNode
*/
var $CurrentElement = null;
function &Parse($xml = null)
{
$xml_parser = xml_parser_create();
xml_set_element_handler( $xml_parser, Array(&$this, 'startElement'), Array(&$this, 'endElement') );
xml_set_character_data_handler( $xml_parser, Array(&$this, 'characterData') );
if (!xml_parse($xml_parser, $xml, 1)) {
trigger_error(sprintf('XML error: %s at line %d'),
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser), E_USER_WARNING);
}
xml_parser_free($xml_parser);
return $this->RootElement;
}
function startElement(&$Parser, &$Elem, $Attrs)
{
$parent =& $this->CurrentElement;
$this->CurrentElement =& new kXMLNode($Elem, $Attrs);
if (is_null($this->RootElement)) {
$this->RootElement =& $this->CurrentElement;
}
if (!is_null($parent)) {
$parent->AddChild($this->CurrentElement);
}
}
function characterData($Parser, $Line)
{
$this->CurrentElement->AppendData($Line);
}
function endElement($Parser, $Elem)
{
if ($this->CurrentElement->Parent != null) {
$this->CurrentElement =& $this->CurrentElement->Parent;
}
}
function Clear()
{
$this->RootElement = null;
$this->CurrentElement = null;
}
}
class kXMLNode {
var $Name = null;
var $Attributes = array();
var $Children = array();
var $Data = null;
var $Parent = null;
function kXMLNode($name, $attrs = array())
{
$this->Name = $name;
$this->Attributes = $attrs;
}
function SetParent(&$elem)
{
$this->Parent =& $elem;
}
function AddChild(&$a_child)
{
- $this->Children[$a_child->Name] =& $a_child;
+ $this->Children[] =& $a_child;
$a_child->SetParent($this);
}
function AppendData($data)
{
$this->Data .= $data;
}
function &GetChild($path)
{
$entries = explode('/', strtoupper($path));
$cur = array_shift($entries);
if ($cur == $this->Name) $cur = array_shift($entries);
if (!$cur) return $this;
if (!isset($this->Children[$cur])) return false;
$left = implode('/', $entries);
if (!$left) return $this->Children[$cur];
return $this->Children[$cur]->GetChild($left);
}
function GetChildValue($path)
{
$child =& $this->GetChild($path);
if ($child !== false) {
return $child->Data;
}
}
function &FindChild($name)
{
$name = strtoupper($name);
if ($this->Name == $name) return $this;
- if (isset($this->Children[$name])) return $this->Children[$name];
- $children_names = array_keys($this->Children);
- foreach ($children_names as $a_name)
+// if (isset($this->Children[$name])) return $this->Children[$name];
+// $children = array_keys($this->Children);
+ foreach ($this->Children as $elem)
{
- $child =& $this->Children[$a_name]->FindChild($name);
+ $child =& $elem->FindChild($name);
if ($child !== false)
{
return $child;
}
}
return false;
}
function FindChildValue($name, $attr=null)
{
$child =& $this->FindChild($name);
if ($child !== false) {
if (isset($attr)) {
return $child->Attributes[strtoupper($attr)];
}
return $child->Data;
}
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.1.2/core/units/general/xml_helper.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1
\ No newline at end of property
+1.1.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.13.2/admin/tree/tree.php
===================================================================
--- branches/unlabeled/unlabeled-1.13.2/admin/tree/tree.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.13.2/admin/tree/tree.php (revision 4354)
@@ -1,121 +1,121 @@
-<?php
- define('DBG_SHOW_MEMORY_USAGE', 0);
-
- // new startup: begin
- define('REL_PATH', 'admin/tree');
- $relation_level = count( explode('/', REL_PATH) );
- define('FULL_PATH', realpath(dirname(__FILE__) . str_repeat('/..', $relation_level) ) );
- require_once FULL_PATH.'/kernel/startup.php';
- // new startup: end
-
- $pathtolocal = $pathtoroot;
-
- $envar = "env=" . BuildEnv();
-
- include_once($pathtoroot.$admin."/include/sections.php");
-
- $ServerName = $objConfig->Get('Site_Name');
- $rootLink = $adminURL."/subitems.php?env=".BuildEnv()."&section=in-portal:root";
- $charset = GetRegionalOption('Charset');
-
- $main_tag_processor =& $application->recallTagProcessor('m');
- $phrase_EditingInProgress = $main_tag_processor->Phrase( Array('name' => 'la_EditingInProgress', 'escape' => 1) );
-
- $phrase_EditingInProgress = str_replace(Array('&lt;', '&gt;', 'br/', 'br /', "\n", "\r"), Array('<', '>', 'br', 'br', '', ''), $phrase_EditingInProgress);
-?>
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="<?php echo $adminURL."/include/style.css"; ?>">
-<meta http-equiv="content-type" content="text/html;charset=<?php echo $charset; ?>">
-<script src="ua.js"></script>
-<script src="ftiens4.js"></script>
-<script type="text/javascript">
-// Decide if the names are links or just the icons
-USETEXTLINKS = 1 //replace 0 with 1 for hyperlinks
-
-// Decide if the tree is to start all open or just showing the root folders
-STARTALLOPEN = 0 //replace 0 with 1 to show the whole tree
-
-var foldersTree = gFld('In-Portal','<?php echo $rootLink; ?>');
-var $phrase_EditingInProgress = '<?php echo $phrase_EditingInProgress; ?>';
-
-$phrase_EditingInProgress = replaceLineEndings($phrase_EditingInProgress);
-
-function replaceLineEndings($src)
-{
- var $tmp = '';
- while (true) {
- $tmp = $src.replace('<br>', "\n");
- if ($tmp == $src) {
- break;
- }
- $src = $tmp;
- }
- return $src;
-}
-
-
-foldersTree.desc = '<?php echo addslashes($ServerName); ?>';
-foldersTree.iconSrc='<?php echo $adminURL."/icons/icon24_site.gif"; ?>';
-
-function credits(url)
-{
- var width = 200;
- var height = 200;
- var screen_x = (screen.availWidth-width)/2;
- var screen_y = (screen.availHeight-height)/2;
- window.open(url, 'credits', 'width=280,height=520,left='+screen_x+',top='+screen_y);
-}
-
-<?php
- $objSections->BuildTree('in-portal:site', 'foldersTree');
- $title = "In-Portal v ".$kernel_version."&nbsp;&nbsp;";
-?>
-
-</script>
-
-
-
-</head>
-<body topmargin="0" marginheight="0" marginwidth="0" marginheight="0" bgcolor="#DCEBF6">
-
-<table cellpadding="0" cellspacing="0" border="0" width="100%">
-<!--<tr><td colspan="2" bgcolor="black"><img title="" width="1" height="1" src="images/spacer.gif"></td></tr>-->
- <tr>
- <td background="../images/menu_bar.gif" align="left" class="tree_head" width="80%"> <!-- 60000 -->
- &nbsp;<a class="tree_head_credits" href="javascript:credits('<?php echo $rootURL.$admin."/help/credits.php?env=".BuildEnv();?>&destform=popup');"><?php echo $title; ?></a>
- </td>
- <td background="../images/menu_bar.gif" align="right" class="tree_head" width="20%"> <!-- 40000 -->
- <FORM style="display:inline" name="lang_select" method="POST" action="<?php echo $rootURL.$admin."/index.php?env=".BuildEnv(); ?>" TARGET="main_frame">
- <SELECT NAME="langselect" style="width: 62px; border: 0px; background-color: #FFFFFF; font-size: 9px; color: black" onchange="document.lang_select.submit()">
- <!-- width: 52px; font-size: 8.5px; -->
- <?php
- $objLanguages->Query_Item("SELECT * FROM ".$objLanguages->SourceTable." WHERE Enabled=1");
- foreach($objLanguages->Items as $l)
- {
- $selected = "";
- if($l->Get("LanguageId")==$m_var_list["lang"])
- $selected = " SELECTED";
- echo "<OPTION onclick=\"this.form.submit();\" value=\"".$l->Get("LanguageId")."\" $selected>".$l->Get("LocalName")."</OPTION>\n";
- }
- ?>
- </SELECT>
- <input type=hidden name="Action" value="m_lang_select">
- </FORM>
- </td>
- <td background="../images/menu_bar.gif"><img title="" height="21" width="1" src="../images/spacer.gif"></td>
- </tr>
-</table>
-
-<table cellpadding="5" cellspacing="0" border="0">
- <tr>
- <td>
- <script type="text/javascript">
- initializeDocument();
- </script>
- </td>
- </tr>
-</table>
-
-</body>
-</html>
+<?php
+ define('DBG_SHOW_MEMORY_USAGE', 0);
+
+ // new startup: begin
+ define('REL_PATH', 'admin/tree');
+ $relation_level = count( explode('/', REL_PATH) );
+ define('FULL_PATH', realpath(dirname(__FILE__) . str_repeat('/..', $relation_level) ) );
+ require_once FULL_PATH.'/kernel/startup.php';
+ // new startup: end
+
+ $pathtolocal = $pathtoroot;
+
+ $envar = "env=" . BuildEnv();
+
+ include_once($pathtoroot.$admin."/include/sections.php");
+
+ $ServerName = $objConfig->Get('Site_Name');
+ $rootLink = $adminURL."/subitems.php?env=".BuildEnv()."&section=in-portal:root";
+ $charset = GetRegionalOption('Charset');
+
+ $main_tag_processor =& $application->recallTagProcessor('m');
+ $phrase_EditingInProgress = $main_tag_processor->Phrase( Array('name' => 'la_EditingInProgress', 'escape' => 1) );
+
+ $phrase_EditingInProgress = str_replace(Array('&lt;', '&gt;', 'br/', 'br /', "\n", "\r"), Array('<', '>', 'br', 'br', '', ''), $phrase_EditingInProgress);
+?>
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="<?php echo $adminURL."/include/style.css"; ?>">
+<meta http-equiv="content-type" content="text/html;charset=<?php echo $charset; ?>">
+<script src="ua.js"></script>
+<script src="ftiens4.js"></script>
+<script type="text/javascript">
+// Decide if the names are links or just the icons
+USETEXTLINKS = 1 //replace 0 with 1 for hyperlinks
+
+// Decide if the tree is to start all open or just showing the root folders
+STARTALLOPEN = 0 //replace 0 with 1 to show the whole tree
+
+var foldersTree = gFld('In-Portal','<?php echo $rootLink; ?>');
+var $phrase_EditingInProgress = '<?php echo $phrase_EditingInProgress; ?>';
+
+$phrase_EditingInProgress = replaceLineEndings($phrase_EditingInProgress);
+
+function replaceLineEndings($src)
+{
+ var $tmp = '';
+ while (true) {
+ $tmp = $src.replace('<br>', "\n");
+ if ($tmp == $src) {
+ break;
+ }
+ $src = $tmp;
+ }
+ return $src;
+}
+
+
+foldersTree.desc = '<?php echo addslashes($ServerName); ?>';
+foldersTree.iconSrc='<?php echo $adminURL."/icons/icon24_site.gif"; ?>';
+
+function credits(url)
+{
+ var width = 200;
+ var height = 200;
+ var screen_x = (screen.availWidth-width)/2;
+ var screen_y = (screen.availHeight-height)/2;
+ window.open(url, 'credits', 'width=280,height=520,left='+screen_x+',top='+screen_y);
+}
+
+<?php
+ $objSections->BuildTree('in-portal:site', 'foldersTree');
+ $title = "In-Portal v ".$kernel_version."&nbsp;&nbsp;";
+?>
+
+</script>
+
+
+
+</head>
+<body topmargin="0" marginheight="0" marginwidth="0" marginheight="0" bgcolor="#DCEBF6">
+
+<table cellpadding="0" cellspacing="0" border="0" width="100%">
+<!--<tr><td colspan="2" bgcolor="black"><img title="" width="1" height="1" src="images/spacer.gif"></td></tr>-->
+ <tr>
+ <td background="../images/menu_bar.gif" align="left" class="tree_head" width="80%"> <!-- 60000 -->
+ &nbsp;<a class="tree_head_credits" href="javascript:credits('<?php echo $rootURL.$admin."/help/credits.php?env=".BuildEnv();?>&destform=popup');"><?php echo $title; ?></a>
+ </td>
+ <td background="../images/menu_bar.gif" align="right" class="tree_head" width="20%"> <!-- 40000 -->
+ <FORM style="display:inline" name="lang_select" method="POST" action="<?php echo $rootURL.$admin."/index.php?env=".BuildEnv(); ?>" TARGET="main_frame">
+ <SELECT NAME="langselect" style="width: 62px; border: 0px; background-color: #FFFFFF; font-size: 9px; color: black" onchange="document.lang_select.submit()">
+ <!-- width: 52px; font-size: 8.5px; -->
+ <?php
+ $objLanguages->Query_Item("SELECT * FROM ".$objLanguages->SourceTable." WHERE Enabled=1");
+ foreach($objLanguages->Items as $l)
+ {
+ $selected = "";
+ if($l->Get("LanguageId")==$m_var_list["lang"])
+ $selected = " SELECTED";
+ echo "<OPTION onclick=\"this.form.submit();\" value=\"".$l->Get("LanguageId")."\" $selected>".$l->Get("LocalName")."</OPTION>\n";
+ }
+ ?>
+ </SELECT>
+ <input type=hidden name="Action" value="m_lang_select">
+ </FORM>
+ </td>
+ <td background="../images/menu_bar.gif"><img title="" height="21" width="1" src="../images/spacer.gif"></td>
+ </tr>
+</table>
+
+<table cellpadding="5" cellspacing="0" border="0">
+ <tr>
+ <td>
+ <script type="text/javascript">
+ initializeDocument();
+ </script>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
Property changes on: branches/unlabeled/unlabeled-1.13.2/admin/tree/tree.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.13
\ No newline at end of property
+1.13.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.17.2/admin/index.php
===================================================================
--- branches/unlabeled/unlabeled-1.17.2/admin/index.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.17.2/admin/index.php (revision 4354)
@@ -1,88 +1,88 @@
-<?php
-##############################################################
-##In-portal ##
-##############################################################
-## In-portal ##
-## Intechnic Corporation ##
-## All Rights Reserved, 1998-2002 ##
-## ##
-## No portion of this code may be copied, reproduced or ##
-## otherwise redistributed without proper written ##
-## consent of Intechnic Corporation. Violation will ##
-## result in revocation of the license and support ##
-## privileges along maximum prosecution allowed by law. ##
-##############################################################
-
- // new startup: begin
- define('REL_PATH', 'admin');
- define('THIS_FILE', 'admin/index');
-
- $relation_level = count( explode('/', REL_PATH) );
- define('FULL_PATH', realpath(dirname(__FILE__) . str_repeat('/..', $relation_level) ) );
- require_once FULL_PATH.'/kernel/startup.php';
- // new startup: end
-
- $objConfig->Set('AdminDirectory', $admin, 0, true);
- $objConfig->Save();
-
- if (!admin_login() || GetVar('logout') || GetVar('expired') ) {
- if (!headers_sent()) {
- set_cookie(SESSION_COOKIE_NAME, '', adodb_mktime() - 3600);
- }
- $objSession->Logout();
- require_once FULL_PATH.'/admin/login.php';
- }
-
- $envar = 'env='.BuildEnv();
-
- require_once FULL_PATH.'/admin/include/elements.php';
- require_once FULL_PATH.'/kernel/admin/include/navmenu.php';
-
- $charset = GetRegionalOption('Charset');
-?>
-
-<html>
-
- <head>
- <meta http-equiv="content-type" content="text/html;charset=<?php echo $charset; ?>">
- <meta name="generator" content="kwrite">
- <link rel="stylesheet" type="text/css" href="include/style.css">
- <title>In-portal Administration</title>
- </head>
-<script type="text/javascript">
- window.name = 'main_frame';
- lala = navigator.appVersion.substring(0,1);
-
- if (navigator.appName == "Netscape") {
- if (lala != "5") {
- document.write("<frameset rows='96,*' framespacing='0' scrolling='no' frameborder='0'>");
- } else {
- document.write("<frameset rows='95,*' framespacing='0' scrolling='no' frameborder='0'>");
- }
- } else {
- document.write("<frameset rows='94,*' framespacing='0' scrolling='no' frameborder='0'>");
- }
-
- function getFrame($name)
- {
- var $frameset = window.frames;
- for ($i = 0; $i < window.length; $i++) {
- if ($frameset[$i].name == $name) {
- return $frameset[$i];
- }
- }
- return window;
- }
-</script>
- <frame src="<?php echo $adminURL; ?>/head.php?<?php echo $envar; ?>" name="head" scrolling="no" noresize>
- <frameset cols="200,*" border="0">
- <frame src="<?php echo $adminURL; ?>/tree/tree.php?<?php echo $envar; ?>" name="menu" target="_main" noresize scrolling="auto" marginwidth="0" marginheight="0">
- <frame src="<?php echo $adminURL; ?>/subitems.php?<?php echo $envar."&section=in-portal:root"; ?>" name="main" marginwidth="0" marginheight="0" frameborder="NO" noresize scrolling="auto">
- </frameset>
- </frameset>
- <noframes>
- <body bgcolor="#ffffff">
- <p></p>
- </body>
- </noframes>
+<?php
+##############################################################
+##In-portal ##
+##############################################################
+## In-portal ##
+## Intechnic Corporation ##
+## All Rights Reserved, 1998-2002 ##
+## ##
+## No portion of this code may be copied, reproduced or ##
+## otherwise redistributed without proper written ##
+## consent of Intechnic Corporation. Violation will ##
+## result in revocation of the license and support ##
+## privileges along maximum prosecution allowed by law. ##
+##############################################################
+
+ // new startup: begin
+ define('REL_PATH', 'admin');
+ define('THIS_FILE', 'admin/index');
+
+ $relation_level = count( explode('/', REL_PATH) );
+ define('FULL_PATH', realpath(dirname(__FILE__) . str_repeat('/..', $relation_level) ) );
+ require_once FULL_PATH.'/kernel/startup.php';
+ // new startup: end
+
+ $objConfig->Set('AdminDirectory', $admin, 0, true);
+ $objConfig->Save();
+
+ if (!admin_login() || GetVar('logout') || GetVar('expired') ) {
+ if (!headers_sent()) {
+ set_cookie(SESSION_COOKIE_NAME, '', adodb_mktime() - 3600);
+ }
+ $objSession->Logout();
+ require_once FULL_PATH.'/admin/login.php';
+ }
+
+ $envar = 'env='.BuildEnv();
+
+ require_once FULL_PATH.'/admin/include/elements.php';
+ require_once FULL_PATH.'/kernel/admin/include/navmenu.php';
+
+ $charset = GetRegionalOption('Charset');
+?>
+
+<html>
+
+ <head>
+ <meta http-equiv="content-type" content="text/html;charset=<?php echo $charset; ?>">
+ <meta name="generator" content="kwrite">
+ <link rel="stylesheet" type="text/css" href="include/style.css">
+ <title>In-portal Administration</title>
+ </head>
+<script type="text/javascript">
+ window.name = 'main_frame';
+ lala = navigator.appVersion.substring(0,1);
+
+ if (navigator.appName == "Netscape") {
+ if (lala != "5") {
+ document.write("<frameset rows='96,*' framespacing='0' scrolling='no' frameborder='0'>");
+ } else {
+ document.write("<frameset rows='95,*' framespacing='0' scrolling='no' frameborder='0'>");
+ }
+ } else {
+ document.write("<frameset rows='94,*' framespacing='0' scrolling='no' frameborder='0'>");
+ }
+
+ function getFrame($name)
+ {
+ var $frameset = window.frames;
+ for ($i = 0; $i < window.length; $i++) {
+ if ($frameset[$i].name == $name) {
+ return $frameset[$i];
+ }
+ }
+ return window;
+ }
+</script>
+ <frame src="<?php echo $adminURL; ?>/head.php?<?php echo $envar; ?>" name="head" scrolling="no" noresize>
+ <frameset cols="200,*" border="0">
+ <frame src="<?php echo $adminURL; ?>/tree/tree.php?<?php echo $envar; ?>" name="menu" target="_main" noresize scrolling="auto" marginwidth="0" marginheight="0">
+ <frame src="<?php echo $adminURL; ?>/subitems.php?<?php echo $envar."&section=in-portal:root"; ?>" name="main" marginwidth="0" marginheight="0" frameborder="NO" noresize scrolling="auto">
+ </frameset>
+ </frameset>
+ <noframes>
+ <body bgcolor="#ffffff">
+ <p></p>
+ </body>
+ </noframes>
</html>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.17.2/admin/index.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.17
\ No newline at end of property
+1.17.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php (revision 4354)
@@ -1,115 +1,122 @@
-<?php
-
- class InpDBEventHandler extends kDBEventHandler
- {
-
- function mapEvents()
- {
- parent::mapEvents();
- $common_events = Array( 'OnMassApprove'=>'iterateItems',
- 'OnMassDecline'=>'iterateItems',
- 'OnMassMoveUp'=>'iterateItems',
- 'OnMassMoveDown'=>'iterateItems',
- );
-
- $this->eventMethods = array_merge($this->eventMethods, $common_events);
- }
-
- /**
- * Apply same processing to each item beeing selected in grid
- *
- * @param kEvent $event
- * @access private
- */
- function iterateItems(&$event)
- {
- if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
- return;
- }
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
- $this->StoreSelectedIDs($event);
- $ids=$this->getSelectedIDs($event);
-
- if($ids)
- {
- $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') );
-
- foreach($ids as $id)
- {
- $object->Load($id);
-
- switch ($event->Name)
- {
- case 'OnMassApprove':
- $object->SetDBField($status_field, 1);
- break;
-
- case 'OnMassDecline':
- $object->SetDBField($status_field, 0);
- break;
-
- case 'OnMassMoveUp':
- $object->SetDBField('Priority', $object->GetDBField('Priority') + 1);
- break;
-
- case 'OnMassMoveDown':
- $object->SetDBField('Priority', $object->GetDBField('Priority') - 1);
- break;
- }
-
- if( $object->Update() )
- {
- $event->status=erSUCCESS;
- $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
- }
- else
- {
- $event->status=erFAIL;
- $event->redirect=false;
- break;
- }
- }
- }
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnMassClone(&$event)
- {
- if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
- return;
- }
-
- $event->status=erSUCCESS;
-
- $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
-
- $this->StoreSelectedIDs($event);
- $ids=$this->getSelectedIDs($event);
-
- if($ids)
- {
- $temp->CloneItems($event->Prefix, $event->Special, $ids);
- }
- }
-
- function check_array($records, $field, $value)
- {
- foreach ($records as $record)
- {
- if ($record[$field] == $value)
- {
- return true;
- }
- }
- return false;
- }
- }
-
-
+<?php
+
+ class InpDBEventHandler extends kDBEventHandler
+ {
+
+ function mapEvents()
+ {
+ parent::mapEvents();
+ $common_events = Array( 'OnMassApprove'=>'iterateItems',
+ 'OnMassDecline'=>'iterateItems',
+ 'OnMassMoveUp'=>'iterateItems',
+ 'OnMassMoveDown'=>'iterateItems',
+ );
+
+ $this->eventMethods = array_merge($this->eventMethods, $common_events);
+ }
+
+ /**
+ * Apply same processing to each item beeing selected in grid
+ *
+ * @param kEvent $event
+ * @access private
+ */
+ function iterateItems(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+ $this->StoreSelectedIDs($event);
+ $ids=$this->getSelectedIDs($event);
+
+ if($ids)
+ {
+ $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') );
+
+ foreach($ids as $id)
+ {
+ $object->Load($id);
+
+ switch ($event->Name)
+ {
+ case 'OnMassApprove':
+ $object->SetDBField($status_field, 1);
+ break;
+
+ case 'OnMassDecline':
+ $object->SetDBField($status_field, 0);
+ break;
+
+ case 'OnMassMoveUp':
+ $object->SetDBField('Priority', $object->GetDBField('Priority') + 1);
+ break;
+
+ case 'OnMassMoveDown':
+ $object->SetDBField('Priority', $object->GetDBField('Priority') - 1);
+ break;
+ }
+
+ if( $object->Update() )
+ {
+ $event->status=erSUCCESS;
+ $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
+ }
+ else
+ {
+ $event->status=erFAIL;
+ $event->redirect=false;
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnMassClone(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $event->status=erSUCCESS;
+
+ $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
+
+ $this->StoreSelectedIDs($event);
+ $ids=$this->getSelectedIDs($event);
+
+ if($ids)
+ {
+ $temp->CloneItems($event->Prefix, $event->Special, $ids);
+ }
+ }
+
+ function check_array($records, $field, $value)
+ {
+ foreach ($records as $record)
+ {
+ if ($record[$field] == $value)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function OnPreSavePopup(&$event)
+ {
+ $event->CallSubEvent('OnPreSave');
+ $this->Application->StoreVar('PermCache_UpdateRequired', 1);
+ $event->redirect = 'incs/just_close';
+ }
+ }
+
+
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.5.52/kernel/units/general/inp_db_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.5
\ No newline at end of property
+1.5.52.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.5.52/core/units/general/inp_db_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.5.52/core/units/general/inp_db_event_handler.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.5.52/core/units/general/inp_db_event_handler.php (revision 4354)
@@ -1,115 +1,122 @@
-<?php
-
- class InpDBEventHandler extends kDBEventHandler
- {
-
- function mapEvents()
- {
- parent::mapEvents();
- $common_events = Array( 'OnMassApprove'=>'iterateItems',
- 'OnMassDecline'=>'iterateItems',
- 'OnMassMoveUp'=>'iterateItems',
- 'OnMassMoveDown'=>'iterateItems',
- );
-
- $this->eventMethods = array_merge($this->eventMethods, $common_events);
- }
-
- /**
- * Apply same processing to each item beeing selected in grid
- *
- * @param kEvent $event
- * @access private
- */
- function iterateItems(&$event)
- {
- if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
- return;
- }
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
- $this->StoreSelectedIDs($event);
- $ids=$this->getSelectedIDs($event);
-
- if($ids)
- {
- $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') );
-
- foreach($ids as $id)
- {
- $object->Load($id);
-
- switch ($event->Name)
- {
- case 'OnMassApprove':
- $object->SetDBField($status_field, 1);
- break;
-
- case 'OnMassDecline':
- $object->SetDBField($status_field, 0);
- break;
-
- case 'OnMassMoveUp':
- $object->SetDBField('Priority', $object->GetDBField('Priority') + 1);
- break;
-
- case 'OnMassMoveDown':
- $object->SetDBField('Priority', $object->GetDBField('Priority') - 1);
- break;
- }
-
- if( $object->Update() )
- {
- $event->status=erSUCCESS;
- $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
- }
- else
- {
- $event->status=erFAIL;
- $event->redirect=false;
- break;
- }
- }
- }
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnMassClone(&$event)
- {
- if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
- return;
- }
-
- $event->status=erSUCCESS;
-
- $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
-
- $this->StoreSelectedIDs($event);
- $ids=$this->getSelectedIDs($event);
-
- if($ids)
- {
- $temp->CloneItems($event->Prefix, $event->Special, $ids);
- }
- }
-
- function check_array($records, $field, $value)
- {
- foreach ($records as $record)
- {
- if ($record[$field] == $value)
- {
- return true;
- }
- }
- return false;
- }
- }
-
-
+<?php
+
+ class InpDBEventHandler extends kDBEventHandler
+ {
+
+ function mapEvents()
+ {
+ parent::mapEvents();
+ $common_events = Array( 'OnMassApprove'=>'iterateItems',
+ 'OnMassDecline'=>'iterateItems',
+ 'OnMassMoveUp'=>'iterateItems',
+ 'OnMassMoveDown'=>'iterateItems',
+ );
+
+ $this->eventMethods = array_merge($this->eventMethods, $common_events);
+ }
+
+ /**
+ * Apply same processing to each item beeing selected in grid
+ *
+ * @param kEvent $event
+ * @access private
+ */
+ function iterateItems(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+ $this->StoreSelectedIDs($event);
+ $ids=$this->getSelectedIDs($event);
+
+ if($ids)
+ {
+ $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') );
+
+ foreach($ids as $id)
+ {
+ $object->Load($id);
+
+ switch ($event->Name)
+ {
+ case 'OnMassApprove':
+ $object->SetDBField($status_field, 1);
+ break;
+
+ case 'OnMassDecline':
+ $object->SetDBField($status_field, 0);
+ break;
+
+ case 'OnMassMoveUp':
+ $object->SetDBField('Priority', $object->GetDBField('Priority') + 1);
+ break;
+
+ case 'OnMassMoveDown':
+ $object->SetDBField('Priority', $object->GetDBField('Priority') - 1);
+ break;
+ }
+
+ if( $object->Update() )
+ {
+ $event->status=erSUCCESS;
+ $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
+ }
+ else
+ {
+ $event->status=erFAIL;
+ $event->redirect=false;
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnMassClone(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $event->status=erSUCCESS;
+
+ $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
+
+ $this->StoreSelectedIDs($event);
+ $ids=$this->getSelectedIDs($event);
+
+ if($ids)
+ {
+ $temp->CloneItems($event->Prefix, $event->Special, $ids);
+ }
+ }
+
+ function check_array($records, $field, $value)
+ {
+ foreach ($records as $record)
+ {
+ if ($record[$field] == $value)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function OnPreSavePopup(&$event)
+ {
+ $event->CallSubEvent('OnPreSave');
+ $this->Application->StoreVar('PermCache_UpdateRequired', 1);
+ $event->redirect = 'incs/just_close';
+ }
+ }
+
+
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.5.52/core/units/general/inp_db_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.5
\ No newline at end of property
+1.5.52.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.2.2/kernel/admin_templates/incs/export.js
===================================================================
--- branches/unlabeled/unlabeled-1.2.2/kernel/admin_templates/incs/export.js (revision 4353)
+++ branches/unlabeled/unlabeled-1.2.2/kernel/admin_templates/incs/export.js (revision 4354)
@@ -1,85 +1,80 @@
-var $http_request = getXMLHTTPObject();
-var $last_responce = new Date();
-
-function formatNumber($number, $digits_count)
-{
- return parseInt($number) < Math.pow(10, $digits_count - 1) ? str_repeat('0', $digits_count - 1) + $number : $number;
-}
-
-function formatDate($date)
-{
- var $hour = formatNumber($date.getHours(), 2);
- var $minute = formatNumber($date.getMinutes(), 2);
- var $second = formatNumber($date.getSeconds(), 2);
- return $hour + ':' + $minute + ':' + $second;
-}
-
-function getSeconds($from_date, $to_date)
-{
- var $from_seconds = $from_date.getSeconds() + $from_date.getMinutes() * 60 + $from_date.getHours() * 3600;
- var $to_seconds = $to_date.getSeconds() + $to_date.getMinutes() * 60 + $to_date.getHours() * 3600;
- return $to_seconds - $from_seconds;
-}
-
-var $aborting = false;
-function queryProgress($url, $responce_func)
-{
-// alert('queryProgress');
- if ($http_request && $http_request.readyState != 0) {
-// alert('aborting');
- $aborting = true;
- $http_request.abort();
-// alert('After Abort: readyState: '+$http_request.readyState+' status: '+$http_request.status);
- $aborting = false;
- }
-
-// alert('opening');
- $http_request.open('POST', $url, true);
- $http_request.setRequestHeader("referer", $url);
- $http_request.onreadystatechange = function() { processExportResponce($url, $responce_func); };
-// alert('sending new req');
- $http_request.send('is_xml=1');
- $last_responce = new Date();
-}
-
-function setProgress($percent)
-{
- $percent = parseInt($percent);
- document.getElementById('percent_done').style.width = $percent + '%';
- document.getElementById('percent_left').style.width = (100 - $percent) + '%';
- document.getElementById('progress_display').innerHTML = $percent;
- document.getElementById('progress_time').innerHTML = '[' + $phrase_LastResponce + ': ' + formatDate($last_responce) + ']';
-}
-
-function processExportResponce($url, $responce_func)
-{
-// alert('processExportResponce ready: '+$http_request.readyState);
- if ($aborting) return;
- if ($http_request.readyState == 4) {
- if ($http_request.status == 200) {
-// alert('readyState: '+$http_request.readyState+' status: '+$http_request.status);
- var $progress = parseFloat($http_request.responseText);
- if ($progress) {
- setProgress($progress);
- if ($progress < 100) {
- // proceed to next import step
- //alert('ANOTHER abort');
- //$http_request.abort();
- //alert('After ANOTHER Abort: readyState: '+$http_request.readyState+' status: '+$http_request.status);
- setTimeout( function() {
-// alert('quering after timeout');
- queryProgress($url, $responce_func);
- }, 500)
- }
- else {
- // proceed to finish screen
- window.location.href = $finish_template;
- }
- }
- else {
-// alert('progress: '+$progress+' ('+$http_request.responseText+')');
- alert($phrase_ResponceError);
- }
- }
- }
+var $http_request = getXMLHTTPObject();
+var $last_responce = new Date();
+
+function formatNumber($number, $digits_count)
+{
+ return parseInt($number) < Math.pow(10, $digits_count - 1) ? str_repeat('0', $digits_count - 1) + $number : $number;
+}
+
+function formatDate($date)
+{
+ var $hour = formatNumber($date.getHours(), 2);
+ var $minute = formatNumber($date.getMinutes(), 2);
+ var $second = formatNumber($date.getSeconds(), 2);
+ return $hour + ':' + $minute + ':' + $second;
+}
+
+function getSeconds($from_date, $to_date)
+{
+ var $from_seconds = $from_date.getSeconds() + $from_date.getMinutes() * 60 + $from_date.getHours() * 3600;
+ var $to_seconds = $to_date.getSeconds() + $to_date.getMinutes() * 60 + $to_date.getHours() * 3600;
+ return $to_seconds - $from_seconds;
+}
+
+var $aborting = false;
+function queryProgress($url, $responce_func)
+{
+ if ($http_request && $http_request.readyState != 0) {
+ $aborting = true;
+ $http_request.abort();
+ $aborting = false;
+ }
+
+ $http_request.open('POST', $url, true);
+ $http_request.setRequestHeader("referer", $url);
+ $http_request.onreadystatechange = function() { processExportResponce($url, $responce_func); };
+ $http_request.send('is_xml=1');
+ $last_responce = new Date();
+}
+
+function setProgress($percent)
+{
+ $percent = parseInt($percent);
+ document.getElementById('percent_done').style.width = $percent + '%';
+ document.getElementById('percent_left').style.width = (100 - $percent) + '%';
+ document.getElementById('progress_display').innerHTML = $percent;
+ document.getElementById('progress_time').innerHTML = '[' + $phrase_LastResponce + ': ' + formatDate($last_responce) + ']';
+}
+
+function processExportResponce($url, $responce_func)
+{
+// alert('processExportResponce ready: '+$http_request.readyState);
+ if ($aborting) return;
+ if ($http_request.readyState == 4) {
+ if ($http_request.status == 200) {
+// alert('readyState: '+$http_request.readyState+' status: '+$http_request.status);
+ var $progress = parseFloat($http_request.responseText);
+ if ($progress) {
+ setProgress($progress);
+ if ($progress < 100) {
+ // proceed to next import step
+ //alert('ANOTHER abort');
+ //$http_request.abort();
+ //alert('After ANOTHER Abort: readyState: '+$http_request.readyState+' status: '+$http_request.status);
+ setTimeout( function() {
+// alert('quering after timeout');
+ queryProgress($url, $responce_func);
+ }, 500)
+ }
+ else {
+ // proceed to finish screen
+ window.location.href = $finish_template;
+ }
+ }
+ else {
+// alert('progress: '+$progress+' ('+$http_request.responseText+')');
+ alert($phrase_ResponceError);
+ }
+ }
+ }
}
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.2.2/kernel/admin_templates/incs/export.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.2
\ No newline at end of property
+1.2.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.4.20/themes/default/register/register_dob.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.4.20/themes/default/register/register_dob.tpl (revision 4353)
+++ branches/unlabeled/unlabeled-1.4.20/themes/default/register/register_dob.tpl (revision 4354)
@@ -1,154 +1,154 @@
-<SELECT name="dob_month" class="input" style="width:45px;">
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value=" " _PlainText=" " />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="01" _LangText="lu_Jan" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="02" _LangText="lu_Feb" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="03" _LangText="lu_Mar" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="04" _LangText="lu_Apr" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="05" _LangText="lu_May" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="06" _LangText="lu_Jun" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="07" _LangText="lu_Jul" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="08" _LangText="lu_Aug" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="09" _LangText="lu_Sep" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="10" _LangText="lu_Oct" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="11" _LangText="lu_Nov" />
- <inp:m_form_option _Field="dob_month" _Form="m_register" _value="12" _LangText="lu_Dec" />
-</SELECT>
-<input type="hidden" name="required[]" value="dob_month" />
-
-<SELECT name="dob_day" class="input" style="width:35px;">
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value=" " _PlainText=" " />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="01" _PlainText="1" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="02" _PlainText="2" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="03" _PlainText="3" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="04" _PlainText="4" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="05" _PlainText="5" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="06" _PlainText="6" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="07" _PlainText="7" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="08" _PlainText="8" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="09" _PlainText="9" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="10" _PlainText="10" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="11" _PlainText="11" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="12" _PlainText="12" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="13" _PlainText="13" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="14" _PlainText="14" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="15" _PlainText="15" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="16" _PlainText="16" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="17" _PlainText="17" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="18" _PlainText="18" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="19" _PlainText="19" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="20" _PlainText="20" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="21" _PlainText="21" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="22" _PlainText="22" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="23" _PlainText="23" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="24" _PlainText="24" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="25" _PlainText="25" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="26" _PlainText="26" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="27" _PlainText="27" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="28" _PlainText="28" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="29" _PlainText="29" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="30" _PlainText="30" />
- <inp:m_form_option _Field="dob_day" _Form="m_register" _value="31" _PlainText="31" />
-</SELECT>
-<input type="hidden" name="required[]" value="dob_day" />
-
-<SELECT name="dob_year" class="input" style="width:50px;">
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value=" " _PlainText=" " />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1910" _PlainText="1910" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1911" _PlainText="1911" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1912" _PlainText="1912" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1913" _PlainText="1913" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1914" _PlainText="1914" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1915" _PlainText="1915" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1916" _PlainText="1916" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1917" _PlainText="1917" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1918" _PlainText="1918" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1919" _PlainText="1919" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1920" _PlainText="1920" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1921" _PlainText="1921" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1922" _PlainText="1922" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1923" _PlainText="1923" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1924" _PlainText="1924" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1925" _PlainText="1925" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1926" _PlainText="1926" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1927" _PlainText="1927" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1928" _PlainText="1928" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1929" _PlainText="1929" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1930" _PlainText="1930" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1931" _PlainText="1931" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1932" _PlainText="1932" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1933" _PlainText="1933" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1934" _PlainText="1934" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1935" _PlainText="1935" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1936" _PlainText="1936" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1937" _PlainText="1937" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1938" _PlainText="1938" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1939" _PlainText="1939" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1940" _PlainText="1940" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1941" _PlainText="1941" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1942" _PlainText="1942" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1943" _PlainText="1943" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1944" _PlainText="1944" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1945" _PlainText="1945" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1946" _PlainText="1946" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1947" _PlainText="1947" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1948" _PlainText="1948" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1949" _PlainText="1949" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1950" _PlainText="1950" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1951" _PlainText="1951" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1952" _PlainText="1952" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1953" _PlainText="1953" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1954" _PlainText="1954" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1955" _PlainText="1955" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1956" _PlainText="1956" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1957" _PlainText="1957" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1958" _PlainText="1958" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1959" _PlainText="1959" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1960" _PlainText="1960" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1961" _PlainText="1961" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1962" _PlainText="1962" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1963" _PlainText="1963" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1964" _PlainText="1964" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1965" _PlainText="1965" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1966" _PlainText="1966" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1967" _PlainText="1967" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1968" _PlainText="1968" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1969" _PlainText="1969" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1970" _PlainText="1970" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1971" _PlainText="1971" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1972" _PlainText="1972" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1973" _PlainText="1973" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1974" _PlainText="1974" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1975" _PlainText="1975" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1976" _PlainText="1976" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1977" _PlainText="1977" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1978" _PlainText="1978" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1979" _PlainText="1979" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1980" _PlainText="1980" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1981" _PlainText="1981" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1982" _PlainText="1982" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1983" _PlainText="1983" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1984" _PlainText="1984" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1985" _PlainText="1985" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1986" _PlainText="1986" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1987" _PlainText="1987" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1988" _PlainText="1988" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1989" _PlainText="1989" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1990" _PlainText="1990" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1991" _PlainText="1991" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1992" _PlainText="1992" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1993" _PlainText="1993" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1994" _PlainText="1994" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1995" _PlainText="1995" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1996" _PlainText="1996" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1997" _PlainText="1997" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1998" _PlainText="1998" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1999" _PlainText="1999" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2000" _PlainText="2000" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2001" _PlainText="2001" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2002" _PlainText="2002" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2003" _PlainText="2003" />
- <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2004" _PlainText="2004" />
- <inp:m_form_option _Field="dob_year" _Form="m_acctinfo" _value="2005" _PlainText="2005" />
- <inp:m_form_option _Field="dob_year" _Form="m_acctinfo" _value="2006" _PlainText="2006" />
-</SELECT>
+<SELECT name="dob_month" class="input" style="width:45px;">
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value=" " _PlainText=" " />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="01" _LangText="lu_Jan" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="02" _LangText="lu_Feb" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="03" _LangText="lu_Mar" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="04" _LangText="lu_Apr" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="05" _LangText="lu_May" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="06" _LangText="lu_Jun" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="07" _LangText="lu_Jul" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="08" _LangText="lu_Aug" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="09" _LangText="lu_Sep" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="10" _LangText="lu_Oct" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="11" _LangText="lu_Nov" />
+ <inp:m_form_option _Field="dob_month" _Form="m_register" _value="12" _LangText="lu_Dec" />
+</SELECT>
+<input type="hidden" name="required[]" value="dob_month" />
+
+<SELECT name="dob_day" class="input" style="width:35px;">
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value=" " _PlainText=" " />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="01" _PlainText="1" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="02" _PlainText="2" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="03" _PlainText="3" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="04" _PlainText="4" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="05" _PlainText="5" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="06" _PlainText="6" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="07" _PlainText="7" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="08" _PlainText="8" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="09" _PlainText="9" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="10" _PlainText="10" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="11" _PlainText="11" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="12" _PlainText="12" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="13" _PlainText="13" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="14" _PlainText="14" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="15" _PlainText="15" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="16" _PlainText="16" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="17" _PlainText="17" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="18" _PlainText="18" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="19" _PlainText="19" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="20" _PlainText="20" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="21" _PlainText="21" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="22" _PlainText="22" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="23" _PlainText="23" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="24" _PlainText="24" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="25" _PlainText="25" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="26" _PlainText="26" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="27" _PlainText="27" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="28" _PlainText="28" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="29" _PlainText="29" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="30" _PlainText="30" />
+ <inp:m_form_option _Field="dob_day" _Form="m_register" _value="31" _PlainText="31" />
+</SELECT>
+<input type="hidden" name="required[]" value="dob_day" />
+
+<SELECT name="dob_year" class="input" style="width:50px;">
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value=" " _PlainText=" " />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1910" _PlainText="1910" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1911" _PlainText="1911" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1912" _PlainText="1912" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1913" _PlainText="1913" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1914" _PlainText="1914" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1915" _PlainText="1915" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1916" _PlainText="1916" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1917" _PlainText="1917" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1918" _PlainText="1918" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1919" _PlainText="1919" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1920" _PlainText="1920" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1921" _PlainText="1921" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1922" _PlainText="1922" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1923" _PlainText="1923" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1924" _PlainText="1924" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1925" _PlainText="1925" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1926" _PlainText="1926" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1927" _PlainText="1927" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1928" _PlainText="1928" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1929" _PlainText="1929" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1930" _PlainText="1930" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1931" _PlainText="1931" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1932" _PlainText="1932" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1933" _PlainText="1933" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1934" _PlainText="1934" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1935" _PlainText="1935" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1936" _PlainText="1936" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1937" _PlainText="1937" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1938" _PlainText="1938" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1939" _PlainText="1939" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1940" _PlainText="1940" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1941" _PlainText="1941" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1942" _PlainText="1942" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1943" _PlainText="1943" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1944" _PlainText="1944" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1945" _PlainText="1945" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1946" _PlainText="1946" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1947" _PlainText="1947" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1948" _PlainText="1948" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1949" _PlainText="1949" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1950" _PlainText="1950" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1951" _PlainText="1951" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1952" _PlainText="1952" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1953" _PlainText="1953" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1954" _PlainText="1954" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1955" _PlainText="1955" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1956" _PlainText="1956" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1957" _PlainText="1957" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1958" _PlainText="1958" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1959" _PlainText="1959" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1960" _PlainText="1960" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1961" _PlainText="1961" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1962" _PlainText="1962" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1963" _PlainText="1963" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1964" _PlainText="1964" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1965" _PlainText="1965" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1966" _PlainText="1966" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1967" _PlainText="1967" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1968" _PlainText="1968" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1969" _PlainText="1969" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1970" _PlainText="1970" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1971" _PlainText="1971" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1972" _PlainText="1972" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1973" _PlainText="1973" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1974" _PlainText="1974" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1975" _PlainText="1975" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1976" _PlainText="1976" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1977" _PlainText="1977" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1978" _PlainText="1978" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1979" _PlainText="1979" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1980" _PlainText="1980" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1981" _PlainText="1981" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1982" _PlainText="1982" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1983" _PlainText="1983" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1984" _PlainText="1984" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1985" _PlainText="1985" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1986" _PlainText="1986" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1987" _PlainText="1987" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1988" _PlainText="1988" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1989" _PlainText="1989" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1990" _PlainText="1990" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1991" _PlainText="1991" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1992" _PlainText="1992" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1993" _PlainText="1993" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1994" _PlainText="1994" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1995" _PlainText="1995" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1996" _PlainText="1996" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1997" _PlainText="1997" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1998" _PlainText="1998" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="1999" _PlainText="1999" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2000" _PlainText="2000" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2001" _PlainText="2001" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2002" _PlainText="2002" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2003" _PlainText="2003" />
+ <inp:m_form_option _Field="dob_year" _Form="m_register" _value="2004" _PlainText="2004" />
+ <inp:m_form_option _Field="dob_year" _Form="m_acctinfo" _value="2005" _PlainText="2005" />
+ <inp:m_form_option _Field="dob_year" _Form="m_acctinfo" _value="2006" _PlainText="2006" />
+</SELECT>
<input type="hidden" name="required[]" value="dob_year" />
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.4.20/themes/default/register/register_dob.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.4
\ No newline at end of property
+1.4.20.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.3.2/themes/default/register/register_form.tpl
===================================================================
--- branches/unlabeled/unlabeled-1.3.2/themes/default/register/register_form.tpl (revision 4353)
+++ branches/unlabeled/unlabeled-1.3.2/themes/default/register/register_form.tpl (revision 4354)
@@ -1,178 +1,178 @@
- <!-- profile content -->
- <FORM method="POST" NAME="register" ACTION="<inp:m_form_action _Form="m_register" _ConfirmTemplate="register/register_confirm.tpl" _NotAllowedTemplate="register/register_notallowed.tpl" _PendingTemplate="register/register_pending.tpl" _LoginTemplate="my_account.tpl"/>">
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td colspan="4">
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><h2><inp:m_language _Phrase="lu_login_information" /></h2></td>
- <td><img src="img/s.gif" width="10" height="1" alt="" /><br /></td>
- <td class="tips">(<span class="error">*</span><inp:m_language _Phrase="lu_required_field" />)</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td colspan="4" class="error"><inp:m_form_has_errors _Form="m_register" /></td>
- </tr>
- <tr>
- <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4"><img src="img/s.gif" width="1" height="5" alt="" /><br /></td>
- </tr>
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="username" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" _langtext="lu_username" /> <span class="error">*</span></td>
- <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
- <td><inp:m_form_input type="text" class="input" style="width:135px;" _field="username" _Form="m_register" _Required="1" /><br /></td>
- </tr>
- <inp:m_autopassword _Value="false">
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="password" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" _langtext="lu_password" /> <span class="error">*</span></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input type="password" class="input" _field="password" _Form="m_register" _Required="1" style="width:135px;" /><br /></td>
- </tr>
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="passwordverify" _langtext="lu_password_again" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input type="password" class="input" _field="passwordverify" _Form="m_register" _Required="1" style="width:135px;" /><br /></td>
- </tr>
- </inp>
- <tr>
- <td colspan=4><!-- <inp:m_autopassword _Value="true" _LangText="lu_register_autopasswd" /> --></td>
- </tr>
- <tr>
- <td colspan="4"><img src="img/s.gif" width="1" height="20" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4"><h2><inp:m_language _Phrase="lu_contact_information" /></h2></td>
- <tr>
- <tr>
- <td colspan="4" class="error"><img src="img/s.gif" width="1" height="3" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4"><img src="img/s.gif" width="1" height="5" alt="" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="firstname" _langtext="lu_pp_firstname" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
- <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
- <td><inp:m_form_input _field="firstname" _Form="m_register" _Required="1" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="lastname" _langtext="lu_pp_lastname" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="lastname" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="company" _langtext="lu_pp_company" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt_error" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="company" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="phone" _langtext="lu_pp_phone" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="phone" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="fax" _langtext="lu_pp_fax" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt_error" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="fax" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="email" _langtext="lu_pp_email" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="email" _Required="1" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="dob" _langtext="lu_pp_dob" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span> (<inp:m_lang_dateformat />)</td>
- <td>&nbsp;</td>
- <td><inp:include _Template="register/register_dob.tpl" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="street" _langtext="lu_pp_street" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt.tpl" /></td>
- <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
- <td><inp:m_form_input _field="street" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="street2" _langtext="lu_pp_street2" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt" /></td>
- <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
- <td><inp:m_form_input _field="street2" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="phone" _langtext="lu_pp_city" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="city" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="state" _langtext="lu_pp_state" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="state" _Form="m_register" type="text" class="input" style="width:50px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="zip" _langtext="lu_pp_zip" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><inp:m_form_input _field="zip" _Form="m_register" type="text" class="input" style="width:50px;" /><br /></td>
- </tr>
-
- <tr>
- <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
- <td><inp:m_form_prompt _Form="m_register" _Field="zip" _langtext="lu_pp_country" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
- <td>&nbsp;</td>
- <td><SELECT name="country" class="input" style="width:135px;">
- <inp:lang_include _Language="english" _Template="register/english_countries.tpl" />
- </SELECT>
- </td>
- </tr>
-
- <tr>
- <td colspan="4"><img src="img/s.gif" width="1" height="20" alt="" /><br /></td>
- </tr>
-
- <!-- buttons -->
- <tr>
- <td colspan="4"><img src="img/s.gif" width="1" height="3" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
- </tr>
- <tr>
- <td colspan="4">
- <img src="img/s.gif" width="1" height="3" alt="" /><br />
- <INPUT type="submit" name="buttons[]" value="<inp:m_language _Phrase="lu_register" />" class="button">
- <INPUT type="submit" name="buttons[]" value="<inp:m_language _Phrase="la_cancel" />" class="button">
- </td>
- </tr>
- <!-- end buttons -->
- </table>
- </FORM>
+ <!-- profile content -->
+ <FORM method="POST" NAME="register" ACTION="<inp:m_form_action _Form="m_register" _ConfirmTemplate="register/register_confirm.tpl" _NotAllowedTemplate="register/register_notallowed.tpl" _PendingTemplate="register/register_pending.tpl" _LoginTemplate="my_account.tpl"/>">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="4">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><h2><inp:m_language _Phrase="lu_login_information" /></h2></td>
+ <td><img src="img/s.gif" width="10" height="1" alt="" /><br /></td>
+ <td class="tips">(<span class="error">*</span><inp:m_language _Phrase="lu_required_field" />)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4" class="error"><inp:m_form_has_errors _Form="m_register" /></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4"><img src="img/s.gif" width="1" height="5" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="username" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" _langtext="lu_username" /> <span class="error">*</span></td>
+ <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
+ <td><inp:m_form_input type="text" class="input" style="width:135px;" _field="username" _Form="m_register" _Required="1" /><br /></td>
+ </tr>
+ <inp:m_autopassword _Value="false">
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="password" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" _langtext="lu_password" /> <span class="error">*</span></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input type="password" class="input" _field="password" _Form="m_register" _Required="1" style="width:135px;" /><br /></td>
+ </tr>
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="passwordverify" _langtext="lu_password_again" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input type="password" class="input" _field="passwordverify" _Form="m_register" _Required="1" style="width:135px;" /><br /></td>
+ </tr>
+ </inp>
+ <tr>
+ <td colspan=4><!-- <inp:m_autopassword _Value="true" _LangText="lu_register_autopasswd" /> --></td>
+ </tr>
+ <tr>
+ <td colspan="4"><img src="img/s.gif" width="1" height="20" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4"><h2><inp:m_language _Phrase="lu_contact_information" /></h2></td>
+ <tr>
+ <tr>
+ <td colspan="4" class="error"><img src="img/s.gif" width="1" height="3" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4"><img src="img/s.gif" width="1" height="5" alt="" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="firstname" _langtext="lu_pp_firstname" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
+ <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
+ <td><inp:m_form_input _field="firstname" _Form="m_register" _Required="1" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="lastname" _langtext="lu_pp_lastname" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="lastname" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="company" _langtext="lu_pp_company" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt_error" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="company" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="phone" _langtext="lu_pp_phone" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="phone" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="fax" _langtext="lu_pp_fax" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt_error" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="fax" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="email" _langtext="lu_pp_email" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="email" _Required="1" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="dob" _langtext="lu_pp_dob" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /> <span class="error">*</span> (<inp:m_lang_dateformat />)</td>
+ <td>&nbsp;</td>
+ <td><inp:include _Template="register/register_dob.tpl" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="street" _langtext="lu_pp_street" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt.tpl" /></td>
+ <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
+ <td><inp:m_form_input _field="street" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="street2" _langtext="lu_pp_street2" _Template="misc/form_prompt" _ErrorTemplate="misc/form_prompt" /></td>
+ <td><img src="img/s.gif" width="5" height="1" alt="" /><br /></td>
+ <td><inp:m_form_input _field="street2" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="phone" _langtext="lu_pp_city" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="city" _Form="m_register" type="text" class="input" style="width:135px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="state" _langtext="lu_pp_state" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="state" _Form="m_register" type="text" class="input" style="width:50px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="zip" _langtext="lu_pp_zip" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><inp:m_form_input _field="zip" _Form="m_register" type="text" class="input" style="width:50px;" /><br /></td>
+ </tr>
+
+ <tr>
+ <td><img src="img/s.gif" width="16" height="1" alt="" /><br /></td>
+ <td><inp:m_form_prompt _Form="m_register" _Field="zip" _langtext="lu_pp_country" _Template="misc/form_prompt.tpl" _ErrorTemplate="misc/form_prompt_error.tpl" /></td>
+ <td>&nbsp;</td>
+ <td><SELECT name="country" class="input" style="width:135px;">
+ <inp:lang_include _Language="english" _Template="register/english_countries.tpl" />
+ </SELECT>
+ </td>
+ </tr>
+
+ <tr>
+ <td colspan="4"><img src="img/s.gif" width="1" height="20" alt="" /><br /></td>
+ </tr>
+
+ <!-- buttons -->
+ <tr>
+ <td colspan="4"><img src="img/s.gif" width="1" height="3" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4" class="bgr-updatefill"><img src="img/s.gif" width="300" height="1" alt="" /><br /></td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <img src="img/s.gif" width="1" height="3" alt="" /><br />
+ <INPUT type="submit" name="buttons[]" value="<inp:m_language _Phrase="lu_register" />" class="button">
+ <INPUT type="submit" name="buttons[]" value="<inp:m_language _Phrase="la_cancel" />" class="button">
+ </td>
+ </tr>
+ <!-- end buttons -->
+ </table>
+ </FORM>
<!-- end profile content -->
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.3.2/themes/default/register/register_form.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.3
\ No newline at end of property
+1.3.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.108.2/kernel/action.php
===================================================================
--- branches/unlabeled/unlabeled-1.108.2/kernel/action.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.108.2/kernel/action.php (revision 4354)
@@ -1,2494 +1,2494 @@
<?php
$ro_perm = $objSession->HasSystemPermission("SYSTEM_ACCESS.READONLY");
// ====== Debugger related: begin ======
$script = basename($_SERVER['PHP_SELF']);
$skipDebug = Array('index.php','tree.php','head.php','credits.php');
if( admin_login() && !in_array($script, $skipDebug) )
{
if( IsDebugMode() )
{
if($Action) $debugger->setHTMLByIndex(1,'Kernel Action: <b>'.$Action.'</b>','append');
if(!(defined('REDIRECT_REQUIRED')&&REDIRECT_REQUIRED))
{
echo '<a href="javascript:self.location.reload();">Reload Frame</a>';
if( defined('DBG_ZEND_PRESENT')&&DBG_ZEND_PRESENT==0 ) echo ' || <a href="javascript:toggleDebugLayer();">Show Debugger</a><br>';
}
}
}
unset($script, $skipDebug);
// ====== Debugger related: end ======
// Session expiration related
require_login( !admin_login() && $Action, 'expired=1', true );
// End session exipration related
switch($Action)
{
case "m_save_import_config":
// Set New Import Category
if( GetVar('categorylist', true) !== false )
{
$cat_id = $_POST['categorylist'];
$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() );
}
}elseif($cat_id == 0)
{
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_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_values', $group->Get('GroupId'));
$objSession->SetVariable('grouplist2', $_POST['grouplist2']);
}
break;
case "m_add_user":
$application =& kApplication::Instance();
$application->SetVar('u_mode', 't');
$dupe_user = '';
//$user_pending = (int)$_POST["user_pending"];
//$user_enabled = (int)$_POST["user_enabled"];
$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat(0, true));
$CreatedOn += SecondsSinceMidnight($_POST["user_time"]);
$dob = DateTimestamp($_POST["user_dob"],GetDateFormat(0, true));
$objEditItems = new clsUserManager();
$objEditItems->SourceTable = $objSession->GetEditTable("PortalUser");
if(strlen($_POST["user_login"]))
{
if (strtolower($_POST["user_login"]) == "root")
$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
{
$fields_hash = Array( 'Login' => $_POST['user_login'],
'Password' => md5($_POST['password']),
'FirstName' => $_POST['user_firstname'],
'LastName' => $_POST['user_lastname'],
'Company' => $_POST['user_company'],
'Email' => $_POST['user_email'],
'Phone' => $_POST['user_phone'],
'Fax' => $_POST['user_fax'],
'Street' => $_POST['user_street'],
'Street2' => $_POST['user_street2'],
'City' => $_POST['user_city'],
'State' => $_POST['user_state'],
'Country' => $_POST['user_country'],
'Zip' => $_POST['user_zip'],
'Status' => $_POST['status'],
'CreatedOn' => $CreatedOn,
'dob' => $dob
);
-
+
$u =& $objEditItems->Add_User_NEW($fields_hash);
saveCustomFields('u', $u->Get('ResourceId'), 6);
}
break;
case "m_edit_user":
$application =& kApplication::Instance();
$application->SetVar('u_mode', 't');
//$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat(0, true));
//$CreatedOn += SecondsSinceMidnight($_POST["user_time"]);
$dob = DateTimestamp($_POST["user_dob"],GetDateFormat(0, true));
$objEditItems = new clsUserManager();
$objEditItems->SourceTable = $objSession->GetEditTable("PortalUser");
//$user_pending = (int)$_POST["user_pending"];
//$user_enabled = (int)$_POST["user_enabled"];
$UserId = (int)$_POST["user_id"];
//echo $UserId."<br>\n";
if (!GetVar('user_login')) {
$dob = 0;
}
-
+
$fields_hash = Array( 'Login' => $_POST['user_login'],
'Password' => GetVar('password') ? md5(GetVar('password')) : '',
'FirstName' => $_POST['user_firstname'],
'LastName' => $_POST['user_lastname'],
'Company' => $_POST['user_company'],
'Email' => $_POST['user_email'],
'Street' => $_POST['user_street'],
'Street2' => $_POST['user_street2'],
'City' => $_POST['user_city'],
'State' => $_POST['user_state'],
'Country' => $_POST['user_country'], // note: should issue some conversion from name to ISO code
'Zip' => $_POST['user_zip'],
'Phone' => $_POST['user_phone'],
'Fax' => $_POST['user_fax'],
'Status' => $_POST['status'],
'dob' => $dob,
);
$u =& $objEditItems->Edit_User_NEW($UserId, $fields_hash);
saveCustomFields('u', $u->Get('ResourceId'), 6);
break;
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":
$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(0, true) );
$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");
$objEditItems->Add_Group($_POST["group_name"], $_POST["group_comments"],0);
break;
case "m_group_sysperm":
if($ro_perm) break;
if ($_POST["GroupEditStatus"] == 0) {
$objSession->ResetSysPermCache();
$GroupId = $_POST['GroupId'];
if ($GroupId) {
$objEditItems = new clsGroupList();
$objEditItems->SourceTable = $objSession->GetEditTable('PortalGroup');
$g = $objEditItems->GetItemByField('ResourceId', $GroupId);
if (is_object($g)) {
$PermList = explode(',', $_POST['PermList']);
$inheritance = GetVar('inherit') ? GetVar('inherit') : Array();
$permission_values = GetVar('permvalue') ? GetVar('permvalue') : Array();
for($i = 0; $i < count($PermList); $i++) {
if (@in_array($PermList[$i], $inheritance)) {
$value = -1;
}
else {
$value = 0;
if (@in_array($PermList[$i], $permission_values)) {
$value = 1;
}
}
$g->SetSystemPermission($PermList[$i], $value);
}
}
}
}
break;
case "m_user_sysperm":
if($ro_perm) break;
if($_POST["UserEditStatus"]==0)
{
$UserId = $_POST["ItemId"];
if($UserId)
{
$objEditItems = new clsUserManager();
$objEditItems->SourceTable = $objSession->GetEditTable("PortalUser");
$u = $objEditItems->GetItemByField("ResourceId",$UserId);
unset($g);
if(is_object($u))
{
$objSession->ResetSysPermCache();
$g = $u->GetPersonalGroup(FALSE);
$PermList = explode(",",$_POST["PermList"]);
for($i=0;$i<count($PermList);$i++)
{
if(!@in_array($PermList[$i],$_POST["inherit"]))
{
if(!is_object($g))
$g = $u->GetPersonalGroup(TRUE);
$value = 0;
if(is_array($_POST["permvalue"]))
{
if(in_array($PermList[$i],$_POST["permvalue"]))
$value =1;
$g->SetSystemPermission($PermList[$i],$value);
}
else {
$g->SetSystemPermission($PermList[$i], 0);
}
}
else
{
if(is_object($g))
$g->SetSystemPermission($PermList[$i],-1);
}
}
}
}
}
break;
case "m_approve_user":
if($ro_perm) break;
foreach($_POST["itemlist"] as $userid)
{
$user = $objUsers->GetItemByField("ResourceId",$userid);
$user->Approve();
}
$objUsers->Clear();
break;
case "m_deny_user":
if($ro_perm) break;
foreach($_POST["itemlist"] as $userid)
{
$user = $objUsers->GetItemByField("ResourceId",$userid);
$user->Deny();
}
$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":
$objSession->SetPersistantVariable($_POST["fieldname"], $_POST["varvalue"]);
break;
case "m_SetSessionVariable":
$objSession->SetVariable($_POST["fieldname"], $_POST["varvalue"]);
//echo "Setting $fieldname to $varvalue<br>\n";
if($_POST["fieldname"]=="SearchType")
$objSession->SetVariable("SearchWord","");
break;
case "m_edit_permissions":
if($ro_perm) break;
if($_POST["CatEditStatus"] != -1)
{
$objSession->SetVariable('PermCache_UpdateRequired', 1);
$GroupId = $_POST["GroupId"];
$CatId = $_POST["CategoryId"];
$Module = $_POST["Module"];
$ado = &GetADODBConnection();
$sql = "SELECT * FROM ".GetTablePrefix()."PermissionConfig WHERE ModuleId='$Module'";
$rs = $ado->Execute($sql);
$PermNames = array();
while($rs && !$rs->EOF)
{
$data = $rs->fields;
$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;
}
}
$objPermList = new clsPermList($CatId,$GroupId);
$objPermList->LoadCategory($CatId);
for($i=0;$i<count($PermNames);$i++)
{
if(!array_key_exists($PermNames[$i],$inherit))
{
$PermValue = (int)$access[$PermNames[$i]];
$Perm = $objPermList->GetPermByName($PermNames[$i]);
if($Perm)
{
$Id = $Perm->Get("PermissionId");
//echo "Editing $Id<br>\n";
$objPermList->Edit_Permission($Id,$CatId,$GroupId,$PermNames[$i],$PermValue,0);
}
else
{
//echo "Adding ".$PermNames[$i];
$objPermList->Add_Permission($CatId,$GroupId,$PermNames[$i],$PermValue,0);
}
}
else
{
$Perm = $objPermList->GetPermByName($PermNames[$i]);
if($Perm)
{
$Id = $Perm->Get("PermissionId");
$objPermList->Delete_Permission($Id);
}
}
}
//$c = $objCatList->GetItem($CatId);
//$glist = $objGroups->GetAllGroupList();
//$ViewList = $objPermList->GetGroupPermList($c,"CATEGORY.VIEW",$glist );
//$c->SetViewPerms("CATEGORY.VIEW",$ViewList,$glist);
//$c->Update();
}
break;
case "m_perm_delete_group":
if($ro_perm) break;
$ado = &GetADODBConnection();
$CatId = $_POST["CategoryId"];
foreach($_POST["itemlist"] as $groupid)
{
$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."<br>\n";
$ado->Execute($sql);
}
}
break;
case "m_user_addto_group":
if($ro_perm) break;
$objSession->SetVariable("HasChanges", 1);
$user = $_POST["UserId"];
if(is_numeric($user))
{
if(strlen($_POST["grouplist"]))
{
$groups = explode(",",$_POST["grouplist"]);
if(is_array($groups))
{
for($i=0; $i<count($groups);$i++)
{
$g = $objGroups->GetItemByField("ResourceId",$groups[$i]);
$g->AddUser($user);
}
}
else
{
$g = $objGroups->GetItem($groups);
$g->AddUser($user);
}
}
}
break;
case "m_group_add_user":
if($ro_perm) break;
$objSession->SetVariable("HasChanges", 1);
$group = $_POST["GroupId"];
$EditGroups = new clsGroupList();
$EditGroups->SourceTable = $objSession->GetEditTable($objGroups->SourceTable);
$g = $EditGroups->GetItem($group);
// echo "Group: $group <br>\n";
if(is_numeric($group))
{
$users = explode(",",$_POST["userlist"]);
foreach($users as $userid)
{
$u = $objUsers->GetItemByField("ResourceId",$userid);
$g->AddUser($u->Get("PortalUserId"));
}
}
break;
case "m_group_removeuser":
if($ro_perm) break;
$objSession->SetVariable("HasChanges", 1);
$group = $_POST["GroupId"];
$g = $objGroups->GetItem($group);
//if($group>0)
//{
foreach($_POST["itemlist"] as $user_id)
{
$u = $objUsers->GetItemByField("ResourceId",$user_id);
$g->DeleteUser($u->Get("PortalUserId"));
}
//}
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);
$g->DeleteUser($user);
}
//}
break;
case "m_sendmail":
if($ro_perm) break;
$idlist = explode(",",$_POST["idlist"]);
$html = (int)$_POST["html_enable"];
$body = inp_escape($_POST["email_body"],$html);
$subject = inp_escape($_POST["email_body"],$html);
$Email = new clsEmailMessage();
$Email->Set("Subject",$subject);
$Email->Set("Template",$body);
if($html)
$Email->Set("MessageType","HTML");
if(count($idlist)>0)
{
switch($_POST["IdType"])
{
case "group":
foreach($idlist as $id)
$Email->SendToGroup($id);
break;
case "user":
foreach($idlist as $id)
$Email->SendToUser($id);
break;
}/*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;
if($objSession->HasCatPermission("CATEGORY.DELETE",$objCatList->CurrentCategoryID()))
{
if(isset($_POST["catlist"]))
{
if(is_array($_POST["catlist"]))
foreach($_POST["catlist"] as $catid)
{
$objCatList->Delete_Category($catid);
}
}
}
break;
case "m_cat_cut":
if($ro_perm) break;
if(isset($_POST["catlist"]))
{
if($objSession->HasCatPermission("CATEGORY.DELETE",$catid))
{
$objCatList->CopyToClipboard("CUT","CategoryId",$_POST["catlist"]);
}
else
$objCatList->CopyToClipboard("COPY","CategoryId",$_POST["catlist"]);
}
break;
case "m_cat_copy":
if($ro_perm) break;
if(isset($_POST["catlist"]))
{
$objCatList->CopyToClipboard("COPY","CategoryId",$_POST["catlist"]);
}
break;
case "m_paste":
if($ro_perm) break;
if($objCatList->ItemsOnClipboard()>0)
{
/* category's paste function populates a sparse array where array[old_id]=new_id */
$PastedCatIds = array();
$objCatList->PasteFromClipboard($objCatList->CurrentCategoryID(),"Name");
}
else
{
$clip = $objSession->GetVariable("ClipBoard");
if(strlen($clip))
{
$ClipBoard = ParseClipboard($clip);
$Action= strtolower($ClipBoard["table"])."_paste";
}
}
break;
case "m_cat_move_up":
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 (isset($_POST["catlist"]))
{
$catlist=array_reverse($_POST["catlist"]);
foreach($catlist as $catid)
{
$cat =& $objCatList->GetCategory($catid);
$cat->MoveDown();
}
}
break;
case "m_cat_approve":
if($ro_perm) break;
if (isset($_POST["catlist"]))
{
foreach($_POST["catlist"] as $catid)
{
$cat =& $objCatList->GetCategory($catid);
$cat->Approve();
}
}
break;
case "m_cat_decline":
if($ro_perm) break;
if (isset($_POST["catlist"]))
{
foreach($_POST["catlist"] as $catid)
{
$cat =& $objCatList->GetCategory($catid);
//$cat->Deny();
RunDown($catid,"Deny");
}
}
break;
case "m_rel_delete":
$adodbConnection= &GetADODBConnection();
$table = $objSession->GetEditTable("Relationship");
if(isset($_POST["itemlist"]))
{
if(is_array($_POST["itemlist"]))
{
foreach($_POST["itemlist"] as $id)
{
$sql = "DELETE FROM ".$table." WHERE RelationshipId=".$id;
$adodbConnection->Execute($sql);
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
}
}
else
{
$sql = "DELETE FROM ".$table." WHERE RelationshipId=".$_POST["itemlist"];
$adodbConnection->Execute($sql);
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
}
}
break;
case "m_add_relation":
$RelList = new clsRelationshipList();
$RelList->SourceTable = $objSession->GetEditTable("Relationship");
//$r = $RelList->Add($_POST["SourceId"],$_POST["SourceType"],$_POST["TargetId"],$_POST["TargetType"],
// 0,(int)$_POST["Enabled"],$_POST["RelType"], $Rel);
$ado = &GetADODBConnection();
$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");
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$ado->Execute($sql);
break;
case "m_edit_relation":
if($_POST["CatEditStatus"]==0)
{
$RelList = new clsRelationshipList();
$RelList->SourceTable = $objSession->GetEditTable("Relationship");
$r = $RelList->GetItem($_POST["RelationshipId"]);
if(is_object($r))
{
$r->Set("Enabled",(int)$_POST["Enabled"]);
$r->Set("Type",(int)$_POST["RelType"]);
$r->Set("Priority",(int)$_POST["priority"]);
$r->Update();
}
}
break;
case "m_rel_move_up":
$objRelList = new clsRelationshipList();
$objRelList->SourceTable = $objSession->GetEditTable("Relationship");
if (isset($_POST["itemlist"]))
{
foreach($_POST["itemlist"] as $id)
{
$r = $objRelList->GetItem($id);
$r->MoveUp($_POST["SourceId"]);
}
}
break;
case "m_rel_move_down":
$objRelList = new clsRelationshipList();
$objRelList->SourceTable = $objSession->GetEditTable("Relationship");
if (isset($_POST["itemlist"]))
{
$itemlist=array_reverse($_POST["itemlist"]);
foreach($itemlist as $id)
{
$r = $objRelList->GetItem($id);
$r->MoveDown($_POST["SourceId"]);
}
}
break;
case "m_add_category":
$application =& kApplication::Instance();
$application->SetVar('c_mode', 't');
$created_on = GetVar('cat_date');
if (ValidDate($created_on, GetDateFormat(0, true))) {
$created_on = DateTimestamp($created_on, GetDateFormat(0, true));
}
else {
$created_on = adodb_mktime();
}
$objEditItems = new clsCatList();
$objEditItems->SourceTable = $objSession->GetEditTable("Category");
$fields_hash = Array( 'ParentId' => GetVar('ParentId'),
'Name' => inp_escape(GetVar('cat_name'), (int)GetVar('html_enable')),
'Description' => inp_escape(GetVar('cat_desc'), (int)GetVar('html_enable')),
'CreatedOn' => $created_on,
'EditorsPick' => GetVar('cat_pick'),
'Status' => (int)GetVar('status'),
// 'HotItem' => (int)GetVar('itemhot'),
'NewItem' => (int)GetVar('itemnew'),
// 'PopItem' => (int)GetVar('itempop'),
'Priority' => GetVar('Priority'),
'MetaKeywords' => GetVar('meta_keywords'),
'MetaDescription' => GetVar('meta_desc'),
'AutomaticFilename' => GetVar('auto_filename'),
'Filename' => GetVar('filename'),
'CategoryTemplate' => GetVar('category_template'),
'ItemTemplate' => GetVar('item_template'),
);
$objSession->SetVariable('PermCache_UpdateRequired', 1);
$cat =& $objEditItems->Add_NEW($fields_hash);
saveCustomFields('c', $cat->Get('ResourceId'), 1);
break;
case 'm_edit_category':
$application =& kApplication::Instance();
$application->SetVar('c_mode', 't');
$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',
'CategoryTemplate' => 'category_template',
'ItemTemplate' => 'item_template');
foreach ($match_fields as $db_field => $submit_field) {
if ($original_cat->Get($db_field) != stripslashes( GetVar($submit_field) )) {
$objSession->SetVariable('PermCache_UpdateRequired', 1);
break;
}
}
unset($original_cat, $original_cats);
}
else {
$objSession->SetVariable('PermCache_UpdateRequired', 1);
}
// check if name of cat isn't changed: end
$fields_hash = Array( 'Name' => inp_escape(GetVar('cat_name'), (int)GetVar('html_enable')),
'Description' => inp_escape(GetVar('cat_desc'), (int)GetVar('html_enable')),
'CreatedOn' => DateTimestamp(GetVar('cat_date'), GetDateFormat(0, true)),
'EditorsPick' => GetVar('cat_pick'),
'Status' => (int)GetVar('status'),
// 'HotItem' => (int)GetVar('itemhot'),
'NewItem' => (int)GetVar('itemnew'),
// 'PopItem' => (int)GetVar('itempop'),
'Priority' => GetVar('Priority'),
'MetaKeywords' => GetVar('meta_keywords'),
'MetaDescription' => GetVar('meta_desc'),
'AutomaticFilename' => GetVar('auto_filename'),
'Filename' => GetVar('filename'),
'CategoryTemplate' => GetVar('category_template'),
'ItemTemplate' => GetVar('item_template'),
);
$cat =& $objEditItems->Edit_Category(GetVar('CategoryId'), $fields_hash);
saveCustomFields('c', $cat->Get('ResourceId'), 1);
break;
case "m_edit_custom_data":
$resource_id = $_POST['ItemId'];
$db =& GetADODBConnection(true);
$sql = 'SELECT Prefix
FROM '.TABLE_PREFIX.'ItemTypes
WHERE ItemType = '.GetVar('CustomType');
$main_prefix = $db->GetOne($sql);
$application->SetVar($main_prefix.'_mode', 't');
saveCustomFields($main_prefix, $resource_id, $_POST['CustomType']);
break;
case "m_SearchConfig_Edit":
if($ro_perm) break;
$SimpleValues = $_POST["simple"];
$AdvValues = $_POST["advanced"];
$module = $_POST["module"];
$priority = $_POST["pri"];
//phpinfo(INFO_VARIABLES);
$objSearchConfig = new clsSearchConfigList($module);
foreach($objSearchConfig->Items as $i)
{
$id = $i->Get("SearchConfigId");
$objSearchConfig->EditFieldSettings($id,(int)$SimpleValues[$id],(int)$AdvValues[$id],$priority[$id]);
}
$objSearchConfig->Clear();
/* save relevence settings */
$vals = $_POST["req_increase"];
foreach($vals as $var=>$value)
{
$cfg = "SearchRel_Increase_".$var;
$objConfig->Set($cfg,$value);
}
$vals = $_POST["rel_keyword"];
foreach($vals as $var=>$value)
{
$cfg = "SearchRel_Keyword_".$var;
$objConfig->Set($cfg,$value);
}
$vals = $_POST["rel_pop"];
foreach($vals as $var=>$value)
{
$cfg = "SearchRel_Pop_".$var;
$objConfig->Set($cfg,$value);
}
$vals = $_POST["rel_rating"];
foreach($vals as $var=>$value)
{
$cfg = "SearchRel_Rating_".$var;
$objConfig->Set($cfg,$value);
}
$vals = $_POST["multiple"];
if (count($vals) > 0) {
foreach($vals as $var=>$value)
{
$cfg = "Search_ShowMultiple_".$var;
$objConfig->Set($cfg,$value);
}
}
else {
$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":
if($ro_perm) break;
$objSearchList = new clsSearchLogList();
foreach($_POST["itemlist"] as $k)
{
$c = $objSearchList->GetItem($k);
$c->Delete();
}
break;
case 'm_clear_searchlog':
$objSearchList = new clsSearchLogList();
$db =& GetADODBConnection();
$db->Execute('DELETE FROM '.$objSearchList->SourceTable );
break;
case "m_review_add":
$post_info = GetSubmitVariable($_POST, 'EditStatus');
if($post_info['variable'] > -1)
{
$objReviews = new clsItemReviewList();
$objReviews->SourceTable = $objSession->GetEditTable("ItemReview");
$Pending = (int)$_POST["review_pending"];
$Enabled = (int)$_POST["review_enabled"];
$Status = (int)$_POST["status"];
$CreatedOn = DateTimestamp($_POST["review_date"],GetDateFormat(0, true));
$CreatedOn += SecondsSinceMidnight($_POST["review_time"]);
$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
{
$u = $objUsers->GetItemByField("Login",$_POST["createdby"]);
if(is_object($u))
{
$CreatedById = $u->Get("PortalUserId");
if($CreatedById<1)
{
$CreatedById = $objSession->Get("PortalUserId");
}
}
else
$CreatedById = $objSession->Get("PortalUserId");
}
}
else
$CreatedById = $objSession->Get("PortalUserId");
$r = $objReviews->AddReview($CreatedOn,$ReviewText,$Status, $IPAddress,
(int)$_POST["review_priority"], $_POST["ItemId"],$_POST["ItemType"],
$CreatedById,$html, $post_info['Module']);
$ado = &GetADODBConnection();
$rs = $ado->Execute("SELECT MIN(ReviewId) as MinValue FROM ".$objReviews->SourceTable);
$NewId = $rs->fields["MinValue"]-1;
$sql = "UPDATE ".$objReviews->SourceTable." SET ReviewId=".$NewId." WHERE ReviewId=".(int)$r->Get("ReviewId");
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$ado->Execute($sql);
}
break;
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(0, true));
$CreatedOn += SecondsSinceMidnight($_POST["review_time"]);
$html = (int)$_POST["html_enable"];
$ReviewText = inp_escape($_POST["review_body"],1);
$ReviewId = $_POST["ReviewId"];
$CreatedById = 0;
if(strlen($_POST["createdby"])>0)
{
if(strtolower($_POST["createdby"])=="root")
{
$CreatedById = -1;
}
else
{
$u = $objUsers->GetItemByField("Login",$_POST["createdby"]);
if(is_object($u))
{
$CreatedById = $u->Get("PortalUserId");
if($CreatedById<1)
{
$CreatedById = $objSession->Get("PortalUserId");
}
}
else
$CreatedById = $objSession->Get("PortalUserId");
}
}
$r = $objReviews->EditReview($ReviewId,$CreatedOn,$ReviewText,$Status, $IPAddress,
(int)$_POST["review_priority"],$_POST["ItemId"],$_POST["ItemType"],
$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"]))
{
$objReviews = new clsItemReviewList();
$objReviews->SourceTable = $objSession->GetEditTable("ItemReview");
foreach($_POST["itemlist"] as $id)
{
$i = $objReviews->GetItem($id);
$i->Set("Status",1);
$i->Update();
}
}
break;
case 'm_review_direct_approve':
if(isset($_POST["reviewlist"]))
{
$objReviews = new clsItemReviewList();
foreach($_POST["reviewlist"] as $id)
{
$i = $objReviews->GetItem($id);
$i->Set("Status",1);
$i->Update();
}
}
break;
case "m_review_deny":
if (isset($_POST["itemlist"]))
{
$objReviews = new clsItemReviewList();
$objReviews->SourceTable = $objSession->GetEditTable("ItemReview");
foreach($_POST["itemlist"] as $id)
{
$i = $objReviews->GetItem($id);
$i->Set("Status",0);
$i->Update();
}
}
break;
case 'm_review_direct_decline':
if (isset($_POST["reviewlist"]))
{
$objReviews = new clsItemReviewList();
foreach($_POST["reviewlist"] as $id)
{
$i = $objReviews->GetItem($id);
$i->Set("Status",0);
$i->Update();
}
}
break;
case "m_review_move_up":
if (isset($_POST["itemlist"]))
{
$objReviews = new clsItemReviewList();
$objReviews->SourceTable = $objSession->GetEditTable("ItemReview");
foreach($_POST["itemlist"] as $id)
{
$i = $objReviews->GetItem($id);
$i->MoveUp();
}
}
break;
case "m_review_move_down":
if (isset($_POST["itemlist"]))
{
$objReviews = new clsItemReviewList();
$objReviews->SourceTable = $objSession->GetEditTable("ItemReview");
$itemlist=array_reverse($_POST["itemlist"]);
foreach($itemlist as $id)
{
$i = $objReviews->GetItem($id);
$i->MoveDown();
}
}
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"].'"');
if(!$rs->fields["c"])
{
$objEditItems = new clsThemeList();
$objEditItems->SourceTable = $objSession->GetEditTable("Theme");
$Primary = (int)$_POST["primary"];
if(!(int)$_POST["enabled"])
$Primary = 0;
$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");
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$ado->Execute($sql);
// $t->Files->FindMissingFiles(strtolower($t->Get('name')));
}
break;
case "m_theme_edit":
$objEditItems = new clsThemeList();
$objEditItems->SourceTable = $objSession->GetEditTable("Theme");
$Primary = (int)$_POST["primary"];
if(!(int)$_POST["enabled"])
$Primary = 0;
$objEditItems->EditTheme($_POST["ThemeId"],$_POST["name"],$_POST["description"],
(int)$_POST["enabled"],$Primary,(int)$_POST["CacheTimeout"], GetVar('StylesheetId'));
// if ($Primary==1)
// {
// $objEditItems->SetPrimaryTheme($_POST["ThemeId"]);
// }
break;
case "m_theme_delete":
if($ro_perm) break;
if (isset($_POST["itemlist"]))
{
$Themes = new clsThemeList();
foreach($_POST["itemlist"] as $id)
{
$deleting_primary = (!$Themes->DeleteTheme($id));
}
}
break;
case "m_theme_primary":
if($ro_perm) break;
if( count($_POST['itemlist']) )
{
$ThemeId = array_shift( $_POST['itemlist'] );
$t = new clsThemeList();
$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;
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);
break;
}
else
{
if( substr($FilePath,1) != '/' ) $FilePath = '/'.$FilePath;
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') );
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);
}
}
else
$f->SetError('Template with this name already exists',4);
}
break;
case "m_template_delete":
if($ro_perm) break;
$objSession->SetVariable("HasChanges", 1);
$dummy = new clsThemeFile();
foreach($_POST["itemlist"] as $FileId)
{
$dummy->LoadFromDatabase($FileId);
$dummy->Delete();
}
break;
case "m_lang_add":
$ado = &GetADODBConnection();
$objEditItems = new clsLanguageList();
$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"],
$_POST["decimal"],$_POST["thousand"],$_POST['charset']);
$rs = $ado->Execute("SELECT MIN(LanguageId) as MinValue FROM ".$objEditItems->SourceTable);
$NewId = $rs->fields["MinValue"]-1;
$sql = "UPDATE ".$objEditItems->SourceTable." SET LanguageId=".$NewId." WHERE LanguageId=".$l->Get("LanguageId");
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$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."<br>\n";
$rs = $ado->Execute($sql);
$plist = new clsPhraseList();
$plist->SourceTable = $objSession->GetEditTable("Phrase");
$sql = "SELECT MIN(PhraseId) as MinId FROM ".$plist->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;
$plist->AddPhrase($data["Phrase"],$NewId,$data["Translation"],$data["PhraseType"]);
$sql = "UPDATE ".$plist->SourceTable." SET PhraseId=$MinId WHERE PhraseId=0 LIMIT 1";
$ado->Execute($sql);
$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."<br>\n";
$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":
if($ro_perm) break;
include_once($pathtoroot."kernel/include/xml.php");
$Ids = $_POST["LangList"]; // language ids list to export phrases from
$phrase_types = GetVar('langtypes');
$phrase_types = ($phrase_types !== false) ? implode(',',$phrase_types) : null;
$filename=$_POST["filename"];
if(strlen($filename)>0)
{
$ExportFilename = $pathtoroot.$admin."/export/".$filename;
$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");
$sql = "SELECT MIN(PhraseId) as MinId FROM ".$plist->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;
$plist->AddPhrase($data["Phrase"],$_POST["LanguageId"],$data["Translation"],$data["PhraseType"]);
$sql = "UPDATE ".$plist->SourceTable." SET PhraseId=$MinId WHERE PhraseId=0 LIMIT 1";
$ado->Execute($sql);
$MinId--;
$rs->MoveNext();
}
unset($plist);
// Events import
$sql = "SELECT * FROM ".GetTablePrefix()."EmailMessage WHERE LanguageId=".$_POST["srcpack"];
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$rs = $ado->Execute($sql);
$eList = new clsEmailMessageList();
//$eList->SourceTable = $objSession->GetEditTable("EmailMessage");
$l = new clsEmailMessage();
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"], $_POST["LanguageId"], $data["EventId"]);
$sql = "UPDATE ".$eList->SourceTable." SET EmailMessageId=$MinId WHERE EmailMessageId=0 LIMIT 1";
$ado->Execute($sql);
$MinId--;
$rs->MoveNext();
}
unset($eList);
}
break;
case "m_lang_delete":
if($ro_perm) break;
if (isset($_POST["itemlist"]))
{
$Phrases = new clsPhraseList();
$Messages = new clsEmailMessageList();
foreach($_POST["itemlist"] as $id)
{
$objLanguages->DeleteLanguage($id);
$Phrases->DeleteLanguage($id);
$Messages->DeleteLanguage($id);
}
unset($Phrases);
unset($Messages);
}
break;
case "m_lang_select":
if($ro_perm) break;
$LangId = (int)$_POST["langselect"];
if($LangId)
{
if($objSession->Get("PortalUserId")>0)
{
//echo "$LangId";
$objSession->SetPersistantVariable("Language",$LangId);
}
$objSession->Set("Language",$LangId);
$objSession->Update();
$m_var_list_update["lang"] = $LangId;
$m_var_list["lang"] = $LangId;
}
break;
case "m_phrase_edit":
if( !GetVar('direct') ) $objSession->SetVariable("HasChanges", 1);
$objPhraseList = new clsPhraseList();
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]);
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."<br>\n";
$ado->Execute($sql);
}
else {
$add_error = "Language tag with the same name already exists!";
}
}
else if ($_POST['Action1'] == "new") {
$add_error = "Fields name and translation are required!";
}
unset($objPhraseList);
break;
case "m_config_missing_phrase":
if($ro_perm) break;
$LangId = $_POST["LangId"];
$ThemeId = $_POST["ThemeId"];
if(is_array($_POST["Phrase"]))
{
$objPhraseList = new clsPhraseList();
$objPhraseList->SourceTable = $objSession->GetSessionKey()."_".$ThemeId."_labels";
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);
$obj->Update();
}
else
$objPhraseList->AddPhrase($p,$LangId,$value,1);
}
else
$objPhraseList->AddPhrase($p,$LangId,$value,1);
}
}
}
break;
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;
$ado = &GetADODBConnection();
$ado->Execute($sql);
}
}
unset($objPhraseList);
break;
case "m_emailevent_disable":
if($ro_perm) break;
$objEvents = new clsEventList();
if (isset($_POST["itemlist"]))
{
foreach($_POST["itemlist"] as $id)
{
$m =& $objEvents->GetItem($id);
$m->Set("Enabled",0);
$m->Update();
}
}
unset($objEvents);
break;
case "m_emailevent_enable":
if($ro_perm) break;
$objEvents = new clsEventList();
if (isset($_POST["itemlist"]))
{
foreach($_POST["itemlist"] as $id)
{
$m =& $objEvents->GetItem($id);
$m->Set("Enabled",1);
$m->Update();
}
}
unset($objEvents);
break;
case "m_emailevent_frontonly":
if($ro_perm) break;
$objEvents = new clsEventList();
if (isset($_POST["itemlist"]))
{
foreach($_POST["itemlist"] as $id)
{
$m =& $objEvents->GetItem($id);
$m->Set("Enabled",2);
$m->Update();
}
}
unset($objEvents);
break;
case "m_dlid":
echo $Action.":".$DownloadId;
die();
break;
case "m_emailevent_user":
if($ro_perm) break;
$objEvents = new clsEventList();
//phpinfo(INFO_VARIABLES);
//$objEvents->SourceTable = $objSession->GetEditTable("Events");
$ids = $_POST["EventId"];
$ids = str_replace("[","",$ids);
$ids = str_replace("]","",$ids);
$ids = str_replace("\"","",$ids);
$ids = str_replace("\\","",$ids);
$idlist = explode(",",$ids);
foreach($idlist as $EventId)
{
$id = (int)stripslashes($EventId);
$e =& $objEvents->GetItem((int)$EventId);
$e->Set("FromUserId", $_POST["FromUserId"]);
$e->Update();
}
$objEvents->Clear();
unset($objEvents);
break;
case "m_emailevent_edit":
$Template = $_POST["headers"];
if(strlen($Template))
{
$Template .= "\n";
}
$Template = str_replace("\n\n","",$Template);
$Template .= "Subject: "._unhtmlentities($_POST['subject'])."\n\n";
$Template .= $_POST["messageBody"];
$objMessages = new clsEmailMessageList();
$objMessages->SourceTable = $objSession->GetEditTable("EmailMessage");
$m =& $objMessages->GetItem($_POST["MessageId"]);
if(is_object($m))
{
if($_POST["sendhtml"]==1)
{
$m->Set("MessageType","html");
}
else
$m->Set("MessageType","text");
$m->Set("Template",$Template);
$m->Update();
}
break;
case "m_config_edit":
//phpinfo(INFO_VARIABLES);
if($ro_perm) break;
$objAdmin = new clsConfigAdmin();
$objAdmin->module = $_POST["module"];
$objAdmin->section = $_POST["section"];
if($objAdmin->section=="in-portal:configure_users")
{
if(strlen($_POST["RootPass"]) && strlen($_POST["RootPassVerify"]))
{
if($_POST["RootPass"]==$_POST["RootPassVerify"])
{
$_POST["RootPass"] = md5($_POST["RootPass"]);
}
}
else
{
$_POST["RootPass"] = $objConfig->Get("RootPass");
$_POST["RootPassVerify"] = $objConfig->Get("RootPassVerify");
}
}
$objAdmin->LoadItems(FALSE);
$objAdmin->SaveItems($_POST);
break;
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();
}
}
$_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")
{
$m =& $objModules->GetItemByField("Name",$id);
if(is_object($m))
{
$m->Set("Loaded",0);
$m->Update();
}
}
}
$_GET["Refresh"] = 1;
}
break;
case "m_img_add":
$objImageList = new clsImageList();
$objImageList->SourceTable = $objSession->GetEditTable("Images");
$LocalImage=0;
$LocalThumb=0;
$DestDir = "kernel/images/";
$UserThumbSource = (int)$_POST["imgLocalThumb"];
$LocalThumb = $UserThumbSource;
$thumb_url = !$LocalThumb? $_POST["imgThumbUrl"] : "";
if($_POST["imgSameImages"])
{
$LocalImage = $LocalThumb;
$full_url = $thumb_url;
}
else
{
$LocalImage = (int)$_POST["imgLocalFull"];
$file = $_FILES["imgFullFile"];
$full_url = $LocalImage? "" : $_POST["imgFullUrl"];
}
if((!strlen($thumb_url) && !$LocalThumb) || (!strlen($full_url) && !$LocalImage))
{
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<BR>";
// $img->debuglevel=1;
$img->Pending=false;
if($LocalImage)
{
$file = $_FILES["imgFullFile"];
if(is_array($file))
{
if($file["size"]>0)
{
$img->Set("LocalPath",$img->StoreUploadedImage($file,1, $DestDir,0));
$uploaded=1;
}
}
}
if($LocalThumb)
{
$thumb = $_FILES["imgThumbFile"];
if(is_array($thumb))
{
if($thumb["size"]>0)
{
$img->Set("ThumbPath",$img->StoreUploadedImage($thumb,1, $DestDir,1));
$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"];
$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
if ($LocalImageN && !(int)$FULLFile["size"])
{
// echo $pathToPending = $img->GetImageDir();
if (!eregi("pending/$", $pathToPending))
$pathToPending.= "pending/";
$LocalThumb_File = $img->GetFileName(1);
// echo "<b>CAN'T FIND FILE:</b> ".$pathToPending.$LocalThumb_File."<BR>";
if (file_exists($pathToPending.$LocalThumb_File))
{
$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." <BR>";
}
else
{
// echo "CAN'T FIND FILE: ".$pathToPending.$LocalThumb_File."<BR>";
}
}
## Upload new FULL image
elseif ($LocalImageN && (int)$FULLFile['size'])
{
$FULL_FileToUpload = $FULLFile;
$FULL_URL = "";
// echo " Upload new FULL image";
}
## Full is URL
elseif (!$LocalImageN)
{
$img->DeleteLocalImage(FALSE, TRUE);
$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 = "";
}
else
{
$img->DeleteLocalImage(TRUE, FALSE);
$TH_FileToUpload = "";
$TH_URL = $_POST['imgThumbUrl'];
}
}
}
## TH was URL
else
{
## Take care of FULL image here
if ($LocalImageN && (int)$FULLFile["size"])
{
$FULL_FileToUpload = $FULLFile;
$FULL_URL = "";
}
## Full is URL (or image size 0)
else
{
$FULL_FileToUpload = "";
$FULL_URL = $_POST['imgFullUrl'];
}
## Take care of Thumbnail here
if ($LocalThumbN)
{
$TH_FileToUpload = (int)$THFile['size']? $THFile : "";
$TH_URL = "";
}
else
{
$TH_FileToUpload = "";
$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
$TH_FileToUpload = "";
$FULL_URL = $TH_URL = "";
}
else
{
$TH_FileToUpload = $FULL_FileToUpload = "";
$FULL_URL = $TH_URL = $_POST['imgThumbUrl'];
}
## Delete old FULL image
$img->DeleteLocalImage(FALSE,TRUE);
$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
$TH_FileToUpload = "";
$FULL_URL = $TH_URL = "";
}
else
{
$img->DeleteLocalImage(TRUE, FALSE);
$TH_FileToUpload = $FULL_FileToUpload = "";
$FULL_URL = $TH_URL = $_POST['imgThumbUrl'];
}
## Clean up FULL image
$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;
}
else
$TH_FileToUpload = "";
$TH_URL = "";
}
else
{
$img->DeleteLocalImage(TRUE, FALSE);
$TH_FileToUpload = "";
$TH_URL = $_POST['imgThumbUrl'];
}
## Take care of FULL here
if ($LocalImageN)
{
if ((int)$FULLFile['size'])
{
$img->DeleteLocalImage(FALSE, TRUE);
$FULL_FileToUpload = $FULLFile;
}
else
$FULL_FileToUpload = "";
$FULL_URL = "";
}
else
{
$img->DeleteLocalImage(FALSE, TRUE);
$FULL_FileToUpload = "";
$FULL_URL = $_POST['imgFullUrl'];
}
}
## 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 "<B>DATA:</B> <BR> LocalImageN: $LocalImageN, LocalThumbN: $LocalThumbN, FULL_URL: $FULL_URL, TH_URL: $TH_URL, SameImagesN: $SameImagesN <BR>";
$img->Pending = TRUE;
if (!empty($FULL_FileToUpload))
{
$img->Set("LocalPath",$img->StoreUploadedImage($FULL_FileToUpload, 1, $DestDir, 0));
$uploaded = 1;
}
/*
elseif (!$LocalImageN)
{
$img->Set("LocalPath", "");
$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);
$uploaded = 1;
}
if($uploaded==1)
$img->Update();
break;
case "m_img_move_up":
if (isset($_POST["itemlist"]))
{
$objImageList = new clsImageList();
$objImageList->SourceTable = $objSession->GetEditTable("Images");
foreach($_POST["itemlist"] as $id)
{
$img = $objImageList->GetItem($id);
$img->MoveUp();
}
}
break;
case "m_img_move_down":
if (isset($_POST["itemlist"]))
{
$objImageList = new clsImageList();
$objImageList->SourceTable = $objSession->GetEditTable("Images");
$itemlist=array_reverse($_POST["itemlist"]);
foreach($itemlist as $id)
{
$img = $objImageList->GetItem($id);
$img->MoveDown();
}
}
break;
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->Set("ResourceId", 0);
$img->Update();
//$img->Delete();
}
}
break;
case "m_restore_delete":
if($ro_perm) break;
$bdate = $_POST["backupdate"];
if($bdate>0)
{
$BackupFile = $objConfig->Get("Backup_Path")."/dump".$bdate.".txt";
if(file_exists($BackupFile))
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"];
$ado = &GetADODBConnection();
if(strlen($sql))
{
$SqlResult = $ado->Execute(stripslashes($SqlQuery));
$SqlError = $ado->ErrorMsg();
$SqlErrorNum = $ado->ErrorNo();
}
break;
case "m_purge_email_log":
if($ro_perm) break;
$ado = &GetADODBConnection();
$sql = "DELETE FROM ".GetTablePrefix()."EmailLog";
$ado->Execute($sql);
break;
case "m_session_delete":
if($ro_perm) break;
$ado = &GetADODBConnection();
if (count($_POST['itemlist']) > 0) {
foreach($_POST["itemlist"] as $id)
{
$sql = "DELETE FROM ".GetTablePrefix()."UserSession WHERE SessionKey='$id'";
$ado->Execute($sql);
$sql = "DELETE FROM ".GetTablePrefix()."SessionData WHERE SessionKey = '$id'";
$ado->Execute($sql);
}
}
else {
$sql = "DELETE FROM ".GetTablePrefix()."UserSession WHERE Status='0'";
$ado->Execute($sql);
}
break;
case "m_add_rule":
$objEditItems = new clsBanRuleList();
$objEditItems->SourceTable = $objSession->GetEditTable("BanRules");
//$ItemType,$RuleType,$ItemField,$ItemVerb,$ItemValue,$Priority,$Status;
$objEditItems->AddRule($_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;
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;
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;
case "m_ban_user":
if($ro_perm) break;
if($_POST["UserEditStatus"]==1)
{
$UserId = $_POST["user_id"];
$objUsers->SetTable('edit');
$u = $objUsers->GetItem($UserId);
if(is_object($u))
{
if((int)$_POST["ban_login"])
{
if(strlen($_POST["user_login"]))
$objBanList->AddRule(6,0,"Login",3,$_POST["user_login"],0,1);
}
if((int)$_POST["ban_email"])
{
if(strlen($_POST["user_email"]))
$objBanList->AddRule(6,0,"Email",3,$_POST["user_email"],0,1);
}
if((int)$_POST["ban_ip"])
{
if(strlen($_POST["user_ip"]))
$objBanList->AddRule(6,0,"ip",3,$_POST["user_ip"],0,1);
}
$u->Deny();
}
$objUsers->SetTable('restore');
}
break;
case 'm_rebuild_cache':
$objSession->SetVariable('PermCache_UpdateRequired', 1);
break;
}
/* image upload management */
if( isset($_POST['img']) && $_POST['img'] == 1 )
{
foreach($_FILES as $img => $FILE)
{
$name = $_POST["img_Name_$img"];
$alt = $_POST["img_Alt_$img"];
$url = $_POST["img_Url_$img"];
$res_id = $_POST["img_Res_$img"];
$relvalue = $_POST["img_Rel_$img"];
$thumb = (int)$_POST["img_Thumb_$img"];
$dest = AddSlash($_POST["img_DestDir_$img"]);
if($_POST["img_Del_$img"]=="Delete")
{
$img = $objImageList->GetImageByResource($res_id,$relvalue);
$img->Delete();
unset($img);
$objImageList->Clear();
}
else
{
if($FILE["size"]>0)
{
/* an image was uploaded */
$objImageList->HandleImageUpload($FILE,$res_id,$relvalue,$dest, $name,$alt,$thumb);
}
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);
$img->Set("IsThumbnail",$thumb);
$img->Set("Url",$url);
$img->Update();
}
else
{
$relvalue = $objImageList->GetNextRelateValue($res_id);
$objImageList->NewRemoteImage($url,$res_id,$relvalue, $name, $alt, $thumb);
}
}
}
}
}
}
// ALL Saving Stuff From Temp Tables Heppens Here
//echo "==== BEGIN ==== <br>";
$has_perm = $objSession->HasSystemPermission("SYSTEM_ACCESS.READONLY");
//echo "PortalUserID: [".$objSession->Get("PortalUserId")."]<br>";
//print_pre($objSession);
//echo "PermSet: [".$has_perm."]<br>";
if( !$has_perm )
{
if( GetVar('ReviewEditStatus') == 1 )
{
$objReviews=new clsItemReviewList();
$objReviews->CopyFromEditTable_Direct();
}
if( GetVar('ReviewEditStatus') == -1 )
{
$objReviews=new clsItemReviewList();
$objReviews->PurgeEditTable();
}
/* category Edit */
if( GetVar('CatEditStatus') == 1 )
{
$adodbConnection = &GetADODBConnection();
// $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)
{
if($rs->fields["ParentId"] > 0) RunUp($rs->fields["ParentId"],"Increment_Count");
$rs->MoveNext();
}
$cat_ids = $objCatList->CopyFromEditTable("CategoryId");
if ($cat_ids) {
$objCustomDataList->CopyFromEditTable('c');
}
$objCatList->Clear();
if($_REQUEST['CategoryId'] > 0) // not root category is updated
{
$objImages = new clsImageList();
$objImages->CopyFromEditTable("ImageId");
}
}
if( GetVar('CatEditStatus') == 2 )
{
$objCatList->PurgeEditTable("CategoryId");
$objCustomDataList->PurgeEditTable('c');
if($_REQUEST['CategoryId'] > 0) // not root category is updated
{
$objImages = new clsImageList();
//$objImages->CopyFromEditTable("ImageId");
$objImages->PurgeEditTable("ImageId");
}
$objCatList->Clear();
}
/* User Edit */
if( GetVar('UserEditStatus') == 1 )
{
$objUserGroupsList = new clsUserGroupList();
$objUserGroupsList->CopyFromEditTable("PortalUserId");
$user_ids = $objUsers->CopyFromEditTable("PortalUserId");
if ($user_ids) {
$objCustomDataList->CopyFromEditTable('u');
}
$objGroups->Clear();
$objImages = new clsImageList();
$objImages->CopyFromEditTable("ImageId");
}
if( GetVar('UserEditStatus') == 2 )
{
$objUserGroupsList = new clsUserGroupList();
$objGroups->PurgeEditTable("PortalUserId");
$objUserGroupsList->PurgeEditTable("PortalUserId");
$objCustomDataList->PurgeEditTable('u');
$objGroups->Clear();
}
/* Group Edit */
if( GetVar('GroupEditStatus') == 1 )
{
$objUserGroupsList = new clsUserGroupList();
$objUserGroupsList->CopyFromEditTable("GroupId");
-
+
$group_ids = $objGroups->CopyFromEditTable("GroupId");
if ($group_ids) {
// $objCustomDataList->CopyFromEditTable('g');
}
-
+
$objGroups->Clear();
}
if( GetVar('GroupEditStatus') == 2 )
{
$objUserGroupsList = new clsUserGroupList();
$objGroups->PurgeEditTable("GroupId");
// $objCustomDataList->PurgeEditTable('g');
$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();
}
if( GetVar('LangEditStatus') == 2 )
{
$objLanguages->PurgeEditTable();
$objLanguages->Clear();
$Phrases = new clsPhraseList();
$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();
$p->Set("PhraseId",$NewId);
$NewId--;
$p->Create();
}
}
$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();
}
if( GetVar('RuleEditStatus') == 2 )
{
$objBanList->PurgeEditTable("RuleId");
$objBanList->Clear();
}
}
elseif( defined('DEBUG_ACTIONS') )
{
if( isset($_REQUEST['Action']) && $_REQUEST['Action'] )
echo "<b>USER HAS RO-ACCESS</b> on action [<b>".$_REQUEST['Action']."</b>]<br>";
}
//echo "==== END ==== <br>";
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.108.2/kernel/action.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.108.2.1
\ No newline at end of property
+1.108.2.2
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.50.2/kernel/units/users/users_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.50.2/kernel/units/users/users_event_handler.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.50.2/kernel/units/users/users_event_handler.php (revision 4354)
@@ -1,844 +1,865 @@
-<?php
-
- class UsersEventHandler extends InpDBEventHandler
- {
-
- function OnSessionExpire()
- {
- if( $this->Application->IsAdmin() )
- {
- $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1';
- header('Location: '.$location);
- exit;
- }
- else
- {
- $http_query =& $this->Application->recallObject('HTTPQuery');
- $get = $http_query->getRedirectParams();
-
- $t = $this->Application->GetVar('t');
- $get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
- $this->Application->Redirect($t ? $t : 'index', $get);
- }
- }
-
- /**
- * Checks user data and logs it in if allowed
- *
- * @param kEvent $event
- */
- function OnLogin(&$event)
- {
- $this->Application->setUnitOption($event->Prefix, 'AutoLoad', false);
- $object =& $this->Application->recallObject('u');
-
- $password = $this->Application->GetVar('password');
- if(!$password)
- {
- $object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
- $event->status = erFAIL;
- return false;
- }
-
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
- $login_value = $this->Application->GetVar($submit_field);
-
- /*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
- $user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
-
- $sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
- $user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
-
- if($user_id)
- {
- $object->Load($user_id);
- if( $object->GetDBField('Status') == STATUS_ACTIVE )
- {
- $groups = $object->getMembershipGroups(true);
- if(!$groups) $groups = Array();
- if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
- $this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
-
- if( $this->Application->CheckPermission('LOGIN',0) )
- {
- $session =& $this->Application->recallObject('Session');
- $session->SetField('PortalUserId', $user_id);
- $session->SetField('GroupList', implode(',', $groups) );
- $this->Application->SetVar('u_id', $user_id);
- $this->Application->StoreVar('user_id', $user_id);
- $this->Application->setVisitField('PortalUserId', $user_id);
-
- $this_login = (int)$object->getPersistantVar('ThisLogin');
- $object->setPersistantVar('LastLogin', $this_login);
- $object->setPersistantVar('ThisLogin', adodb_mktime());
- }
- else
- {
- $object->Load(-2);
- $object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
- $event->status = erFAIL;
- }
-
- $next_template = $this->Application->GetVar('next_template');
- if($next_template) $event->redirect = $next_template;
- if ($this->Application->ConfigValue('UseJSRedirect')) {
- $event->SetRedirectParam('js_redirect', 1);
- }
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
- }
- else
- {
- $event->redirect = $this->Application->GetVar('pending_disabled_template');
- }
- }
- else
- {
- $object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
- $event->status = erFAIL;
- }
- }
-
- /**
- * Called when user logs in using old in-portal
- *
- * @param kEvent $event
- */
- function OnInpLogin(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
- }
-
- /**
- * Called when user logs in using old in-portal
- *
- * @param kEvent $event
- */
- function OnInpLogout(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LogoutUser');
- }
-
- function OnLogout(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LogoutUser');
-
- $session =& $this->Application->recallObject('Session');
- $session->SetField('PortalUserId', -2);
- $this->Application->SetVar('u_id', -2);
- $this->Application->StoreVar('user_id', -2);
- $object =& $this->Application->recallObject('u');
- $object->Load(-2);
-
- $this->Application->DestroySession();
-
- $group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
- $session->SetField('GroupList', $group_list);
- $this->Application->StoreVar('UserGroups', $group_list);
-
- if ($this->Application->ConfigValue('UseJSRedirect')) {
- $event->SetRedirectParam('js_redirect', 1);
- }
- }
-
- /**
- * Prefill states dropdown with correct values
- *
- * @param kEvent $event
- * @access public
- */
- function OnPrepareStates(&$event)
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->PopulateStates($event, 'State', 'Country');
-
- $object =& $event->getObject();
-
- if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
- $object->setLogin();
- }
-
- /**
- * Redirects user after succesfull registration to confirmation template (on Front only)
- *
- * @param kEvent $event
- */
- function OnAfterItemCreate(&$event)
- {
- $is_subscriber = $this->Application->GetVar('IsSubscriber');
- if(!$is_subscriber)
- {
- $object =& $event->getObject();
-
- $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
- SET PrimaryGroup = 0
- WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
- $this->Conn->Query($sql);
-
- $group_id = $this->Application->ConfigValue('User_NewGroup');
-
- $sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
- $this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
- }
- }
-
- /**
- * Login user if possible, if not then redirect to corresponding template
- *
- * @param kEvent $event
- */
- function autoLoginUser(&$event)
- {
- $object =& $event->getObject();
- $this->Application->SetVar('u_id', $object->GetID() );
-
- if($object->GetDBField('Status') == STATUS_ACTIVE)
- {
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
-
- $this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
- $this->Application->SetVar('password', $object->GetDBField('Password_plain') );
-
- $event->CallSubEvent('OnLogin');
- }
- }
-
-
- /**
- * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
- *
- * @param kEvent $event
- */
- function OnSubstituteSubscriber(&$event)
- {
- $ret = false;
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
- if($items_info)
- {
- list($id, $field_values) = each($items_info);
- $user_email = $field_values['Email'];
- if($user_email)
- {
- // check if is subscriber
- $verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
- $verify_user->Load($user_email, 'Email');
- if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
- {
- $items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
- $this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
- $ret = true;
- }
- }
- }
-
- if( isset($event->MasterEvent) )
- {
- $event->MasterEvent->setEventParam('is_subscriber_only', $ret);
- }
- else
- {
- $event->setEventParam('is_subscriber_only', $ret);
- }
- }
-
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- * @return bool
- */
- function isSubscriberOnly(&$event)
- {
- $event->CallSubEvent('OnSubstituteSubscriber');
- $is_subscriber = false;
- if( $event->getEventParam('is_subscriber_only') )
- {
- $is_subscriber = true;
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $this->OnUpdate($event);
- if($event->status == erSUCCESS)
- {
- $this->OnAfterItemCreate($event);
- $object->SendEmailEvents();
- if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
- }
- }
- return $is_subscriber;
- }
-
- /**
- * Creates new user
- *
- * @param kEvent $event
- */
- function OnCreate(&$event)
- {
- if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
-
- if( !$this->isSubscriberOnly($event) )
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->CheckStateField($event, 'State', 'Country');
-
- parent::OnCreate($event);
-
- $object =& $event->getObject( Array('skip_autoload' => true) );
-
- $this->Application->SetVar('u_id', $object->getID() );
- $this->Application->setUnitOption('u', 'AutoLoad', true);
-
- $this->setNextTemplate($event);
-
- if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
- {
- $object->SendEmailEvents();
- $this->autoLoginUser($event);
- }
- }
- }
-
- /**
- * Set's new user status based on config options
- *
- * @param kEvent $event
- */
- function setUserStatus(&$event)
- {
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
-
- $new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
- // 1 - Instant, 2 - Not Allowed, 3 - Pending
-
- switch ($new_users_allowed)
- {
- case 1: // Instant
- $object->SetDBField('Status', 1);
- $next_template = $this->Application->GetVar('registration_confirm_template');
- if($next_template) $event->redirect = $next_template;
- break;
-
- case 3: // Pending
- $next_template = $this->Application->GetVar('registration_confirm_pending_template');
- if($next_template) $event->redirect = $next_template;
- $object->SetDBField('Status', 2);
- break;
-
- case 2: // Not Allowed
- $object->SetDBField('Status', 0);
- break;
- }
- }
-
-
-
-
- /**
- * Set's new unique resource id to user
- *
- * @param kEvent $event
- */
- function OnBeforeItemCreate(&$event)
- {
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- $object =& $event->getObject();
- if ($email_as_login) {
- $object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
- }
-
- }
-
- /**
- * Set's new unique resource id to user
- *
- * @param kEvent $event
- */
- function OnAfterItemValidate(&$event)
- {
- $object =& $event->getObject();
- $resource_id = $object->GetDBField('ResourceId');
- if (!$resource_id)
- {
- $object->SetDBField('ResourceId', $this->Application->NextResourceId() );
- }
- }
-
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnRecommend(&$event){
-
- $friend_email = $this->Application->GetVar('friend_email');
- $friend_name = $this->Application->GetVar('friend_email');
-
- if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
- {
-
- $send_params = array();
- $send_params['to_email']=$friend_email;
- $send_params['to_name']=$friend_name;
-
- $user_id = $this->Application->GetVar('u_id');
- $email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
-
- if ($email_event->status == erSUCCESS){
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = $this->Application->GetVar('template_success');
- }
- else {
-// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
-// $event->redirect = $this->Application->GetVar('template_fail');
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
- $object->FieldErrors['Email']['pseudo'] = 'send_error';
- $event->status = erFAIL;
-
- }
- }
- else {
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
- $object->FieldErrors['Email']['pseudo'] = 'invalid_email';
- $event->status = erFAIL;
- }
-
-
- }
-
- /**
- * Saves address changes and mades no redirect
- *
- * @param kEvent $event
- */
- function OnUpdateAddress(&$event)
- {
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
-
- $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
- if($items_info)
- {
- list($id,$field_values) = each($items_info);
- if($id > 0) $object->Load($id);
- $object->SetFieldsFromHash($field_values);
- $object->setID($id);
- $object->Validate();
- }
-
- $event->redirect = false;
- }
-
- function OnSubscribeQuery(&$event){
-
- $user_email = $this->Application->GetVar('subscriber_email');
- if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
-
- $this->Application->StoreVar('SubscriberEmail', $user_email);
-
- if( $object->Load(array('Email'=>$user_email)) ){
- $group_info = $this->GetGroupInfo($object->GetID());
- if($group_info){
- $event->redirect = $this->Application->GetVar('unsubscribe_template');
- }
- else {
- $event->redirect = $this->Application->GetVar('subscribe_template');
- }
- }
- else {
- $event->redirect = $this->Application->GetVar('subscribe_template');
- $this->Application->StoreVar('SubscriberEmail', $user_email);
- }
-
- }
- else {
-
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
- $object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
- $event->status = erFAIL;
-
- }
-
-
- //subscribe_query_ok_template
- }
-
- function OnSubscribeUser(&$event){
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
-
- $user_email = $this->Application->RecallVar('SubscriberEmail');
-
- if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
-
- if($object->Load(array('Email'=>$user_email))){
-
- $group_info = $this->GetGroupInfo($object->GetID());
-
- if ($group_info){
- if ($event->getEventParam('no_unsubscribe')) return;
-
- if ($group_info['PrimaryGroup']){
- // delete user
- $object->Delete();
- }
- else {
- $this->RemoveSubscriberGroup($object->GetID());
- }
-
- $event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
-
- }
- else {
- $this->AddSubscriberGroup($object->GetID(), 0);
- $event->redirect = $this->Application->GetVar('subscribe_ok_template');
- }
-
-
- }
- else {
-
- $object->SetField('Email', $user_email);
- $object->SetField('Login', $user_email);
- $object->SetDBField('dob', 1);
- $object->SetDBField('dob_date', 1);
- $object->SetDBField('dob_time', 1);
- $ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
- $object->SetDBField('ip', $ip);
-
- $this->Application->SetVar('IsSubscriber', 1);
-
- if ($object->Create()) {
-
- $this->AddSubscriberGroup($object->GetID(), 1);
- $event->redirect = $this->Application->GetVar('subscribe_ok_template');
- }
-
- $this->Application->SetVar('IsSubscriber', 0);
- }
- }
- else {
- // error handling here
- $event->redirect = $this->Application->GetVar('subscribe_fail_template');
- }
-
-
- }
-
- function AddSubscriberGroup($user_id, $is_primary){
-
- $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
- $sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
- $this->Conn->Query( sprintf($sql, $user_id, $group_id) );
- $this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
- $this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
-
- }
-
- function RemoveSubscriberGroup($user_id){
-
- $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
- $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
- $this->Conn->Query($sql);
- $this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
- $this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
-
- }
-
- function GetGroupInfo($user_id){
-
- $group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
- WHERE PortalUserId='.$user_id.'
- AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
- return $group_info;
-
- }
-
- function OnForgotPassword(&$event){
-
- $this->Application->setUnitOption('u', 'AutoLoad', false);
- $user_object = &$this->Application->recallObject('u.forgot');
- $user_current_object = &$this->Application->recallObject('u');
-
- $username = $this->Application->GetVar('username');
- $email = $this->Application->GetVar('email');
- $found = false;
- $allow_reset = true;
-
- if( strlen($username) )
- {
- if( $user_object->Load(array('Login'=>$username)) )
- $found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
- }
- else if( strlen($email) )
- {
- if( $user_object->Load(array('Email'=>$email)) )
- $found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
- }
-
- if( $user_object->isLoaded() )
- {
- $PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
- $PwRequestTime = $user_object->GetDBField('PwRequestTime');
- $PassResetTime = $user_object->GetDBField('PassResetTime');
- //$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
- $MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
-
- $allow_reset = (strlen($PwResetConfirm) ?
- adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
- adodb_mktime() > $PassResetTime + $MinPwResetDelay);
- }
-
- if($found && $allow_reset)
- {
- $this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
- $this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
-
- //$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
-
- $event->redirect = $this->Application->GetVar('template_success');
-
- }
- else
- {
- if(!strlen($username) && !strlen($email))
- {
- $user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
- $user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
- }
- else
- {
-
- if($allow_reset)
- {
- if( strlen($username) ){
- $user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
- $user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
- }
- if( strlen($email) ){
- $user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
- $user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
- }
- }
- else
- {
- $user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
- if( strlen($username) ){
- $user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
- }
- if( strlen($email) ){
- $user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
- }
- }
-
- }
-
- if($user_current_object->FieldErrors){
- $event->redirect = false;
- }
- }
-
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnResetPassword(&$event){
-
- $user_object = &$this->Application->recallObject('u.forgot');
-
- if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
-
- $this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
- $event->redirect = $this->Application->GetVar('template_success');
-
- $mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
- $m_cat_id = $mod_object->GetDBField('RootCat');
- $event->SetRedirectParam('pass', 'm');
- //$event->SetRedirectParam('m_cat_id', $m_cat_id);
- $this->Application->SetVar('m_cat_id', $m_cat_id);
-
-
- }
-
- }
-
- function OnResetPasswordConfirmed(&$event){
-
- $passed_key = $this->Application->GetVar('user_key');
-
- $user_object = &$this->Application->recallObject('u.forgot');
- $user_current_object = &$this->Application->recallObject('u');
-
- if (strlen(trim($passed_key)) == 0) {
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = false;
-
- $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
- }
-
-
- if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
- {
- $exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
- $user_object->SetDBField("PwResetConfirm", '');
- $user_object->SetDBField("PwRequestTime", 0);
- if ( $exp_time > adodb_mktime() )
- {
- //$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
- $newpw = makepassword4();
-
- $this->Application->StoreVar('password', $newpw);
-
- $user_object->SetDBField("Password",$newpw);
- $user_object->SetDBField("PassResetTime", adodb_mktime());
- $user_object->SetDBField("PwResetConfirm", '');
- $user_object->SetDBField("PwRequestTime", 0);
- $user_object->Update();
-
- $this->Application->SetVar('ForgottenPassword', $newpw);
-
- $email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
- $email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
-
- $this->Application->DeleteVar('ForgottenPassword');
-
- if ($email_event_user->status == erSUCCESS){
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = $this->Application->GetVar('template_success');
- }
-
- $user_object->SetDBField("Password",md5($newpw));
- $user_object->Update();
-
- } else {
- $user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
- $event->redirect = false;
-
- }
- } else {
- $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
- $event->redirect = false;
-
- }
- }
-
- function OnUpdate(&$event)
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->CheckStateField($event, 'State', 'Country');
-
- parent::OnUpdate($event);
-
- $this->setNextTemplate($event);
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function setNextTemplate(&$event)
- {
- if( !$this->Application->IsAdmin() )
- {
- $event->redirect_params['opener'] = 's';
- $object =& $event->getObject();
- if($object->GetDBField('Status') == STATUS_ACTIVE)
- {
- $next_template = $this->Application->GetVar('next_template');
- if($next_template) $event->redirect = $next_template;
- }
- }
- }
-
-
-
- /**
- * Delete users from groups if their membership is expired
- *
- * @param kEvent $event
- */
- function OnCheckExpiredMembership(&$event)
- {
- // send pre-expiration reminders: begin
- $pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
- $sql = 'SELECT PortalUserId, GroupId
- FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
-
- $skip_clause = $event->getEventParam('skip_clause');
- if ($skip_clause) {
- $sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
- }
-
- $records = $this->Conn->Query($sql);
- if ($records) {
- $conditions = Array();
- foreach ($records as $record) {
- $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
- $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
- $conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
- }
- $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
- SET ExpirationReminderSent = 1
- WHERE '.implode(' OR ', $conditions);
- $this->Conn->Query($sql);
- }
- // send pre-expiration reminders: end
-
- // remove users from groups with expired membership: begin
- $sql = 'SELECT PortalUserId
- FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
- $user_ids = $this->Conn->GetCol($sql);
- if ($user_ids) {
- foreach ($user_ids as $id) {
- $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
- $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
- }
- }
- $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
- $this->Conn->Query($sql);
- // remove users from groups with expired membership: end
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnRefreshForm(&$event)
- {
- $event->redirect = false;
- $item_info = $this->Application->GetVar($event->Prefix_Special);
- list($id, $fields) = each($item_info);
-
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $object->setID($id);
- $object->IgnoreValidation = true;
- $object->SetFieldsFromHash($fields);
- }
- }
-
+<?php
+
+ class UsersEventHandler extends InpDBEventHandler
+ {
+
+ function OnSessionExpire()
+ {
+ if( $this->Application->IsAdmin() )
+ {
+ $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1';
+ header('Location: '.$location);
+ exit;
+ }
+ else
+ {
+ $http_query =& $this->Application->recallObject('HTTPQuery');
+ $get = $http_query->getRedirectParams();
+
+ $t = $this->Application->GetVar('t');
+ $get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
+ $this->Application->Redirect($t ? $t : 'index', $get);
+ }
+ }
+
+ /**
+ * Checks user data and logs it in if allowed
+ *
+ * @param kEvent $event
+ */
+ function OnLogin(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix, 'AutoLoad', false);
+ $object =& $this->Application->recallObject('u');
+
+ $password = $this->Application->GetVar('password');
+ if(!$password)
+ {
+ $object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
+ $event->status = erFAIL;
+ return false;
+ }
+
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
+ $login_value = $this->Application->GetVar($submit_field);
+
+ /*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
+ $user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
+
+ $sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
+ $user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
+
+ if($user_id)
+ {
+ $object->Load($user_id);
+ if( $object->GetDBField('Status') == STATUS_ACTIVE )
+ {
+ $groups = $object->getMembershipGroups(true);
+ if(!$groups) $groups = Array();
+ if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
+ $this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
+
+ if( $this->Application->CheckPermission('LOGIN',0) )
+ {
+ $session =& $this->Application->recallObject('Session');
+ $session->SetField('PortalUserId', $user_id);
+ $session->SetField('GroupList', implode(',', $groups) );
+ $this->Application->SetVar('u_id', $user_id);
+ $this->Application->StoreVar('user_id', $user_id);
+ $this->Application->setVisitField('PortalUserId', $user_id);
+
+ $this_login = (int)$object->getPersistantVar('ThisLogin');
+ $object->setPersistantVar('LastLogin', $this_login);
+ $object->setPersistantVar('ThisLogin', adodb_mktime());
+ }
+ else
+ {
+ $object->Load(-2);
+ $object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
+ $event->status = erFAIL;
+ }
+
+ $next_template = $this->Application->GetVar('next_template');
+ if ($next_template == '_ses_redirect') {
+ $location = $this->Application->BaseURL().$this->Application->RecallVar($next_template);
+ if( $this->Application->isDebugMode() && dbg_ConstOn('DBG_REDIRECT') )
+ {
+ $this->Application->Debugger->appendTrace();
+ echo "<b>Debug output above!!!</b> Proceed to redirect: <a href=\"$a_location\">$a_location</a><br>";
+ }
+ else {
+ header('Location: '.$location);
+ }
+ $session =& $this->Application->recallObject('Session');
+ $session->SaveData();
+ exit();
+ }
+
+ if($next_template) $event->redirect = $next_template;
+ if ($this->Application->ConfigValue('UseJSRedirect')) {
+ $event->SetRedirectParam('js_redirect', 1);
+ }
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
+ }
+ else
+ {
+ $event->redirect = $this->Application->GetVar('pending_disabled_template');
+ }
+ }
+ else
+ {
+ $object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
+ $event->status = erFAIL;
+ }
+ }
+
+ /**
+ * Called when user logs in using old in-portal
+ *
+ * @param kEvent $event
+ */
+ function OnInpLogin(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
+ }
+
+ /**
+ * Called when user logs in using old in-portal
+ *
+ * @param kEvent $event
+ */
+ function OnInpLogout(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LogoutUser');
+ }
+
+ function OnLogout(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LogoutUser');
+
+ $session =& $this->Application->recallObject('Session');
+ $session->SetField('PortalUserId', -2);
+ $this->Application->SetVar('u_id', -2);
+ $this->Application->StoreVar('user_id', -2);
+ $object =& $this->Application->recallObject('u');
+ $object->Load(-2);
+
+ $this->Application->DestroySession();
+
+ $group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
+ $session->SetField('GroupList', $group_list);
+ $this->Application->StoreVar('UserGroups', $group_list);
+
+ if ($this->Application->ConfigValue('UseJSRedirect')) {
+ $event->SetRedirectParam('js_redirect', 1);
+ }
+ }
+
+ /**
+ * Prefill states dropdown with correct values
+ *
+ * @param kEvent $event
+ * @access public
+ */
+ function OnPrepareStates(&$event)
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->PopulateStates($event, 'State', 'Country');
+
+ $object =& $event->getObject();
+
+ if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
+ $object->setLogin();
+ }
+
+ /**
+ * Redirects user after succesfull registration to confirmation template (on Front only)
+ *
+ * @param kEvent $event
+ */
+ function OnAfterItemCreate(&$event)
+ {
+ $is_subscriber = $this->Application->GetVar('IsSubscriber');
+ if(!$is_subscriber)
+ {
+ $object =& $event->getObject();
+
+ $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
+ SET PrimaryGroup = 0
+ WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
+ $this->Conn->Query($sql);
+
+ $group_id = $this->Application->ConfigValue('User_NewGroup');
+
+ $sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
+ $this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
+ }
+ }
+
+ /**
+ * Login user if possible, if not then redirect to corresponding template
+ *
+ * @param kEvent $event
+ */
+ function autoLoginUser(&$event)
+ {
+ $object =& $event->getObject();
+ $this->Application->SetVar('u_id', $object->GetID() );
+
+ if($object->GetDBField('Status') == STATUS_ACTIVE)
+ {
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
+
+ $this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
+ $this->Application->SetVar('password', $object->GetDBField('Password_plain') );
+
+ $event->CallSubEvent('OnLogin');
+ }
+ }
+
+
+ /**
+ * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
+ *
+ * @param kEvent $event
+ */
+ function OnSubstituteSubscriber(&$event)
+ {
+ $ret = false;
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
+ if($items_info)
+ {
+ list($id, $field_values) = each($items_info);
+ $user_email = $field_values['Email'];
+ if($user_email)
+ {
+ // check if is subscriber
+ $verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
+ $verify_user->Load($user_email, 'Email');
+ if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
+ {
+ $items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
+ $this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
+ $ret = true;
+ }
+ }
+ }
+
+ if( isset($event->MasterEvent) )
+ {
+ $event->MasterEvent->setEventParam('is_subscriber_only', $ret);
+ }
+ else
+ {
+ $event->setEventParam('is_subscriber_only', $ret);
+ }
+ }
+
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ * @return bool
+ */
+ function isSubscriberOnly(&$event)
+ {
+ $event->CallSubEvent('OnSubstituteSubscriber');
+ $is_subscriber = false;
+ if( $event->getEventParam('is_subscriber_only') )
+ {
+ $is_subscriber = true;
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $this->OnUpdate($event);
+ if($event->status == erSUCCESS)
+ {
+ $this->OnAfterItemCreate($event);
+ $object->SendEmailEvents();
+ if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
+ }
+ }
+ return $is_subscriber;
+ }
+
+ /**
+ * Creates new user
+ *
+ * @param kEvent $event
+ */
+ function OnCreate(&$event)
+ {
+ if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
+
+ if( !$this->isSubscriberOnly($event) )
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->CheckStateField($event, 'State', 'Country');
+
+ parent::OnCreate($event);
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+
+ $this->Application->SetVar('u_id', $object->getID() );
+ $this->Application->setUnitOption('u', 'AutoLoad', true);
+
+ $this->setNextTemplate($event);
+
+ if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
+ {
+ $object->SendEmailEvents();
+ $this->autoLoginUser($event);
+ }
+ }
+ }
+
+ /**
+ * Set's new user status based on config options
+ *
+ * @param kEvent $event
+ */
+ function setUserStatus(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+
+ $new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
+ // 1 - Instant, 2 - Not Allowed, 3 - Pending
+
+ switch ($new_users_allowed)
+ {
+ case 1: // Instant
+ $object->SetDBField('Status', 1);
+ $next_template = $this->Application->GetVar('registration_confirm_template');
+ if($next_template) $event->redirect = $next_template;
+ break;
+
+ case 3: // Pending
+ $next_template = $this->Application->GetVar('registration_confirm_pending_template');
+ if($next_template) $event->redirect = $next_template;
+ $object->SetDBField('Status', 2);
+ break;
+
+ case 2: // Not Allowed
+ $object->SetDBField('Status', 0);
+ break;
+ }
+
+ /*if ($object->GetDBField('PaidMember') == 1) {
+ $this->Application->HandleEvent($add_to_cart, 'ord:OnAddToCart');
+ $event->redirect = 'in-commerce/checkout/shop_cart';
+ } */
+
+ }
+
+
+
+
+ /**
+ * Set's new unique resource id to user
+ *
+ * @param kEvent $event
+ */
+ function OnBeforeItemCreate(&$event)
+ {
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ $object =& $event->getObject();
+ if ($email_as_login) {
+ $object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
+ }
+
+ }
+
+ /**
+ * Set's new unique resource id to user
+ *
+ * @param kEvent $event
+ */
+ function OnAfterItemValidate(&$event)
+ {
+ $object =& $event->getObject();
+ $resource_id = $object->GetDBField('ResourceId');
+ if (!$resource_id)
+ {
+ $object->SetDBField('ResourceId', $this->Application->NextResourceId() );
+ }
+ }
+
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnRecommend(&$event){
+
+ $friend_email = $this->Application->GetVar('friend_email');
+ $friend_name = $this->Application->GetVar('friend_email');
+
+ if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
+ {
+
+ $send_params = array();
+ $send_params['to_email']=$friend_email;
+ $send_params['to_name']=$friend_name;
+
+ $user_id = $this->Application->GetVar('u_id');
+ $email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
+
+ if ($email_event->status == erSUCCESS){
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = $this->Application->GetVar('template_success');
+ }
+ else {
+// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+// $event->redirect = $this->Application->GetVar('template_fail');
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
+ $object->FieldErrors['Email']['pseudo'] = 'send_error';
+ $event->status = erFAIL;
+
+ }
+ }
+ else {
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
+ $object->FieldErrors['Email']['pseudo'] = 'invalid_email';
+ $event->status = erFAIL;
+ }
+
+
+ }
+
+ /**
+ * Saves address changes and mades no redirect
+ *
+ * @param kEvent $event
+ */
+ function OnUpdateAddress(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+
+ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
+ if($items_info)
+ {
+ list($id,$field_values) = each($items_info);
+ if($id > 0) $object->Load($id);
+ $object->SetFieldsFromHash($field_values);
+ $object->setID($id);
+ $object->Validate();
+ }
+
+ $event->redirect = false;
+ }
+
+ function OnSubscribeQuery(&$event){
+
+ $user_email = $this->Application->GetVar('subscriber_email');
+ if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
+
+ $this->Application->StoreVar('SubscriberEmail', $user_email);
+
+ if( $object->Load(array('Email'=>$user_email)) ){
+ $group_info = $this->GetGroupInfo($object->GetID());
+ if($group_info){
+ $event->redirect = $this->Application->GetVar('unsubscribe_template');
+ }
+ else {
+ $event->redirect = $this->Application->GetVar('subscribe_template');
+ }
+ }
+ else {
+ $event->redirect = $this->Application->GetVar('subscribe_template');
+ $this->Application->StoreVar('SubscriberEmail', $user_email);
+ }
+
+ }
+ else {
+
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
+ $object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
+ $event->status = erFAIL;
+
+ }
+
+
+ //subscribe_query_ok_template
+ }
+
+ function OnSubscribeUser(&$event){
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
+
+ $user_email = $this->Application->RecallVar('SubscriberEmail');
+
+ if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
+
+ if($object->Load(array('Email'=>$user_email))){
+
+ $group_info = $this->GetGroupInfo($object->GetID());
+
+ if ($group_info){
+ if ($event->getEventParam('no_unsubscribe')) return;
+
+ if ($group_info['PrimaryGroup']){
+ // delete user
+ $object->Delete();
+ }
+ else {
+ $this->RemoveSubscriberGroup($object->GetID());
+ }
+
+ $event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
+
+ }
+ else {
+ $this->AddSubscriberGroup($object->GetID(), 0);
+ $event->redirect = $this->Application->GetVar('subscribe_ok_template');
+ }
+
+
+ }
+ else {
+
+ $object->SetField('Email', $user_email);
+ $object->SetField('Login', $user_email);
+ $object->SetDBField('dob', 1);
+ $object->SetDBField('dob_date', 1);
+ $object->SetDBField('dob_time', 1);
+ $ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
+ $object->SetDBField('ip', $ip);
+
+ $this->Application->SetVar('IsSubscriber', 1);
+
+ if ($object->Create()) {
+
+ $this->AddSubscriberGroup($object->GetID(), 1);
+ $event->redirect = $this->Application->GetVar('subscribe_ok_template');
+ }
+
+ $this->Application->SetVar('IsSubscriber', 0);
+ }
+ }
+ else {
+ // error handling here
+ $event->redirect = $this->Application->GetVar('subscribe_fail_template');
+ }
+
+
+ }
+
+ function AddSubscriberGroup($user_id, $is_primary){
+
+ $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
+ $sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
+ $this->Conn->Query( sprintf($sql, $user_id, $group_id) );
+ $this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
+ $this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
+
+ }
+
+ function RemoveSubscriberGroup($user_id){
+
+ $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
+ $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
+ $this->Conn->Query($sql);
+ $this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
+ $this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
+
+ }
+
+ function GetGroupInfo($user_id){
+
+ $group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
+ WHERE PortalUserId='.$user_id.'
+ AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
+ return $group_info;
+
+ }
+
+ function OnForgotPassword(&$event){
+
+ $this->Application->setUnitOption('u', 'AutoLoad', false);
+ $user_object = &$this->Application->recallObject('u.forgot');
+ $user_current_object = &$this->Application->recallObject('u');
+
+ $username = $this->Application->GetVar('username');
+ $email = $this->Application->GetVar('email');
+ $found = false;
+ $allow_reset = true;
+
+ if( strlen($username) )
+ {
+ if( $user_object->Load(array('Login'=>$username)) )
+ $found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
+ }
+ else if( strlen($email) )
+ {
+ if( $user_object->Load(array('Email'=>$email)) )
+ $found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
+ }
+
+ if( $user_object->isLoaded() )
+ {
+ $PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
+ $PwRequestTime = $user_object->GetDBField('PwRequestTime');
+ $PassResetTime = $user_object->GetDBField('PassResetTime');
+ //$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
+ $MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
+
+ $allow_reset = (strlen($PwResetConfirm) ?
+ adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
+ adodb_mktime() > $PassResetTime + $MinPwResetDelay);
+ }
+
+ if($found && $allow_reset)
+ {
+ $this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
+ $this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
+
+ //$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
+
+ $event->redirect = $this->Application->GetVar('template_success');
+
+ }
+ else
+ {
+ if(!strlen($username) && !strlen($email))
+ {
+ $user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
+ $user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
+ }
+ else
+ {
+
+ if($allow_reset)
+ {
+ if( strlen($username) ){
+ $user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
+ $user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
+ }
+ if( strlen($email) ){
+ $user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
+ $user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
+ }
+ }
+ else
+ {
+ $user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
+ if( strlen($username) ){
+ $user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
+ }
+ if( strlen($email) ){
+ $user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
+ }
+ }
+
+ }
+
+ if($user_current_object->FieldErrors){
+ $event->redirect = false;
+ }
+ }
+
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnResetPassword(&$event){
+
+ $user_object = &$this->Application->recallObject('u.forgot');
+
+ if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
+
+ $this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
+ $event->redirect = $this->Application->GetVar('template_success');
+
+ $mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
+ $m_cat_id = $mod_object->GetDBField('RootCat');
+ $event->SetRedirectParam('pass', 'm');
+ //$event->SetRedirectParam('m_cat_id', $m_cat_id);
+ $this->Application->SetVar('m_cat_id', $m_cat_id);
+
+
+ }
+
+ }
+
+ function OnResetPasswordConfirmed(&$event){
+
+ $passed_key = $this->Application->GetVar('user_key');
+
+ $user_object = &$this->Application->recallObject('u.forgot');
+ $user_current_object = &$this->Application->recallObject('u');
+
+ if (strlen(trim($passed_key)) == 0) {
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = false;
+
+ $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
+ }
+
+
+ if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
+ {
+ $exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
+ $user_object->SetDBField("PwResetConfirm", '');
+ $user_object->SetDBField("PwRequestTime", 0);
+ if ( $exp_time > adodb_mktime() )
+ {
+ //$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
+ $newpw = makepassword4();
+
+ $this->Application->StoreVar('password', $newpw);
+
+ $user_object->SetDBField("Password",$newpw);
+ $user_object->SetDBField("PassResetTime", adodb_mktime());
+ $user_object->SetDBField("PwResetConfirm", '');
+ $user_object->SetDBField("PwRequestTime", 0);
+ $user_object->Update();
+
+ $this->Application->SetVar('ForgottenPassword', $newpw);
+
+ $email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
+ $email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
+
+ $this->Application->DeleteVar('ForgottenPassword');
+
+ if ($email_event_user->status == erSUCCESS){
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = $this->Application->GetVar('template_success');
+ }
+
+ $user_object->SetDBField("Password",md5($newpw));
+ $user_object->Update();
+
+ } else {
+ $user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
+ $event->redirect = false;
+
+ }
+ } else {
+ $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
+ $event->redirect = false;
+
+ }
+ }
+
+ function OnUpdate(&$event)
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->CheckStateField($event, 'State', 'Country');
+
+ parent::OnUpdate($event);
+
+ $this->setNextTemplate($event);
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function setNextTemplate(&$event)
+ {
+ if( !$this->Application->IsAdmin() )
+ {
+ $event->redirect_params['opener'] = 's';
+ $object =& $event->getObject();
+ if($object->GetDBField('Status') == STATUS_ACTIVE)
+ {
+ $next_template = $this->Application->GetVar('next_template');
+ if($next_template) $event->redirect = $next_template;
+ }
+ }
+ }
+
+
+
+ /**
+ * Delete users from groups if their membership is expired
+ *
+ * @param kEvent $event
+ */
+ function OnCheckExpiredMembership(&$event)
+ {
+ // send pre-expiration reminders: begin
+ $pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
+ $sql = 'SELECT PortalUserId, GroupId
+ FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
+
+ $skip_clause = $event->getEventParam('skip_clause');
+ if ($skip_clause) {
+ $sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
+ }
+
+ $records = $this->Conn->Query($sql);
+ if ($records) {
+ $conditions = Array();
+ foreach ($records as $record) {
+ $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
+ $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
+ $conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
+ }
+ $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
+ SET ExpirationReminderSent = 1
+ WHERE '.implode(' OR ', $conditions);
+ $this->Conn->Query($sql);
+ }
+ // send pre-expiration reminders: end
+
+ // remove users from groups with expired membership: begin
+ $sql = 'SELECT PortalUserId
+ FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
+ $user_ids = $this->Conn->GetCol($sql);
+ if ($user_ids) {
+ foreach ($user_ids as $id) {
+ $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
+ $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
+ }
+ }
+ $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
+ $this->Conn->Query($sql);
+ // remove users from groups with expired membership: end
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnRefreshForm(&$event)
+ {
+ $event->redirect = false;
+ $item_info = $this->Application->GetVar($event->Prefix_Special);
+ list($id, $fields) = each($item_info);
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $object->setID($id);
+ $object->IgnoreValidation = true;
+ $object->SetFieldsFromHash($fields);
+ }
+ }
+
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.50.2/kernel/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.50
\ No newline at end of property
+1.50.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.50.2/core/units/users/users_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.50.2/core/units/users/users_event_handler.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.50.2/core/units/users/users_event_handler.php (revision 4354)
@@ -1,844 +1,865 @@
-<?php
-
- class UsersEventHandler extends InpDBEventHandler
- {
-
- function OnSessionExpire()
- {
- if( $this->Application->IsAdmin() )
- {
- $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1';
- header('Location: '.$location);
- exit;
- }
- else
- {
- $http_query =& $this->Application->recallObject('HTTPQuery');
- $get = $http_query->getRedirectParams();
-
- $t = $this->Application->GetVar('t');
- $get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
- $this->Application->Redirect($t ? $t : 'index', $get);
- }
- }
-
- /**
- * Checks user data and logs it in if allowed
- *
- * @param kEvent $event
- */
- function OnLogin(&$event)
- {
- $this->Application->setUnitOption($event->Prefix, 'AutoLoad', false);
- $object =& $this->Application->recallObject('u');
-
- $password = $this->Application->GetVar('password');
- if(!$password)
- {
- $object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
- $event->status = erFAIL;
- return false;
- }
-
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
- $login_value = $this->Application->GetVar($submit_field);
-
- /*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
- $user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
-
- $sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
- $user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
-
- if($user_id)
- {
- $object->Load($user_id);
- if( $object->GetDBField('Status') == STATUS_ACTIVE )
- {
- $groups = $object->getMembershipGroups(true);
- if(!$groups) $groups = Array();
- if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
- $this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
-
- if( $this->Application->CheckPermission('LOGIN',0) )
- {
- $session =& $this->Application->recallObject('Session');
- $session->SetField('PortalUserId', $user_id);
- $session->SetField('GroupList', implode(',', $groups) );
- $this->Application->SetVar('u_id', $user_id);
- $this->Application->StoreVar('user_id', $user_id);
- $this->Application->setVisitField('PortalUserId', $user_id);
-
- $this_login = (int)$object->getPersistantVar('ThisLogin');
- $object->setPersistantVar('LastLogin', $this_login);
- $object->setPersistantVar('ThisLogin', adodb_mktime());
- }
- else
- {
- $object->Load(-2);
- $object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
- $event->status = erFAIL;
- }
-
- $next_template = $this->Application->GetVar('next_template');
- if($next_template) $event->redirect = $next_template;
- if ($this->Application->ConfigValue('UseJSRedirect')) {
- $event->SetRedirectParam('js_redirect', 1);
- }
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
- }
- else
- {
- $event->redirect = $this->Application->GetVar('pending_disabled_template');
- }
- }
- else
- {
- $object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
- $event->status = erFAIL;
- }
- }
-
- /**
- * Called when user logs in using old in-portal
- *
- * @param kEvent $event
- */
- function OnInpLogin(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
- }
-
- /**
- * Called when user logs in using old in-portal
- *
- * @param kEvent $event
- */
- function OnInpLogout(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LogoutUser');
- }
-
- function OnLogout(&$event)
- {
- $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
- $sync_manager->performAction('LogoutUser');
-
- $session =& $this->Application->recallObject('Session');
- $session->SetField('PortalUserId', -2);
- $this->Application->SetVar('u_id', -2);
- $this->Application->StoreVar('user_id', -2);
- $object =& $this->Application->recallObject('u');
- $object->Load(-2);
-
- $this->Application->DestroySession();
-
- $group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
- $session->SetField('GroupList', $group_list);
- $this->Application->StoreVar('UserGroups', $group_list);
-
- if ($this->Application->ConfigValue('UseJSRedirect')) {
- $event->SetRedirectParam('js_redirect', 1);
- }
- }
-
- /**
- * Prefill states dropdown with correct values
- *
- * @param kEvent $event
- * @access public
- */
- function OnPrepareStates(&$event)
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->PopulateStates($event, 'State', 'Country');
-
- $object =& $event->getObject();
-
- if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
- $object->setLogin();
- }
-
- /**
- * Redirects user after succesfull registration to confirmation template (on Front only)
- *
- * @param kEvent $event
- */
- function OnAfterItemCreate(&$event)
- {
- $is_subscriber = $this->Application->GetVar('IsSubscriber');
- if(!$is_subscriber)
- {
- $object =& $event->getObject();
-
- $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
- SET PrimaryGroup = 0
- WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
- $this->Conn->Query($sql);
-
- $group_id = $this->Application->ConfigValue('User_NewGroup');
-
- $sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
- $this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
- }
- }
-
- /**
- * Login user if possible, if not then redirect to corresponding template
- *
- * @param kEvent $event
- */
- function autoLoginUser(&$event)
- {
- $object =& $event->getObject();
- $this->Application->SetVar('u_id', $object->GetID() );
-
- if($object->GetDBField('Status') == STATUS_ACTIVE)
- {
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
-
- $this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
- $this->Application->SetVar('password', $object->GetDBField('Password_plain') );
-
- $event->CallSubEvent('OnLogin');
- }
- }
-
-
- /**
- * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
- *
- * @param kEvent $event
- */
- function OnSubstituteSubscriber(&$event)
- {
- $ret = false;
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
- if($items_info)
- {
- list($id, $field_values) = each($items_info);
- $user_email = $field_values['Email'];
- if($user_email)
- {
- // check if is subscriber
- $verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
- $verify_user->Load($user_email, 'Email');
- if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
- {
- $items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
- $this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
- $ret = true;
- }
- }
- }
-
- if( isset($event->MasterEvent) )
- {
- $event->MasterEvent->setEventParam('is_subscriber_only', $ret);
- }
- else
- {
- $event->setEventParam('is_subscriber_only', $ret);
- }
- }
-
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- * @return bool
- */
- function isSubscriberOnly(&$event)
- {
- $event->CallSubEvent('OnSubstituteSubscriber');
- $is_subscriber = false;
- if( $event->getEventParam('is_subscriber_only') )
- {
- $is_subscriber = true;
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $this->OnUpdate($event);
- if($event->status == erSUCCESS)
- {
- $this->OnAfterItemCreate($event);
- $object->SendEmailEvents();
- if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
- }
- }
- return $is_subscriber;
- }
-
- /**
- * Creates new user
- *
- * @param kEvent $event
- */
- function OnCreate(&$event)
- {
- if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
-
- if( !$this->isSubscriberOnly($event) )
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->CheckStateField($event, 'State', 'Country');
-
- parent::OnCreate($event);
-
- $object =& $event->getObject( Array('skip_autoload' => true) );
-
- $this->Application->SetVar('u_id', $object->getID() );
- $this->Application->setUnitOption('u', 'AutoLoad', true);
-
- $this->setNextTemplate($event);
-
- if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
- {
- $object->SendEmailEvents();
- $this->autoLoginUser($event);
- }
- }
- }
-
- /**
- * Set's new user status based on config options
- *
- * @param kEvent $event
- */
- function setUserStatus(&$event)
- {
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
-
- $new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
- // 1 - Instant, 2 - Not Allowed, 3 - Pending
-
- switch ($new_users_allowed)
- {
- case 1: // Instant
- $object->SetDBField('Status', 1);
- $next_template = $this->Application->GetVar('registration_confirm_template');
- if($next_template) $event->redirect = $next_template;
- break;
-
- case 3: // Pending
- $next_template = $this->Application->GetVar('registration_confirm_pending_template');
- if($next_template) $event->redirect = $next_template;
- $object->SetDBField('Status', 2);
- break;
-
- case 2: // Not Allowed
- $object->SetDBField('Status', 0);
- break;
- }
- }
-
-
-
-
- /**
- * Set's new unique resource id to user
- *
- * @param kEvent $event
- */
- function OnBeforeItemCreate(&$event)
- {
- $email_as_login = $this->Application->ConfigValue('Email_As_Login');
- $object =& $event->getObject();
- if ($email_as_login) {
- $object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
- }
-
- }
-
- /**
- * Set's new unique resource id to user
- *
- * @param kEvent $event
- */
- function OnAfterItemValidate(&$event)
- {
- $object =& $event->getObject();
- $resource_id = $object->GetDBField('ResourceId');
- if (!$resource_id)
- {
- $object->SetDBField('ResourceId', $this->Application->NextResourceId() );
- }
- }
-
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnRecommend(&$event){
-
- $friend_email = $this->Application->GetVar('friend_email');
- $friend_name = $this->Application->GetVar('friend_email');
-
- if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
- {
-
- $send_params = array();
- $send_params['to_email']=$friend_email;
- $send_params['to_name']=$friend_name;
-
- $user_id = $this->Application->GetVar('u_id');
- $email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
-
- if ($email_event->status == erSUCCESS){
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = $this->Application->GetVar('template_success');
- }
- else {
-// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
-// $event->redirect = $this->Application->GetVar('template_fail');
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
- $object->FieldErrors['Email']['pseudo'] = 'send_error';
- $event->status = erFAIL;
-
- }
- }
- else {
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
- $object->FieldErrors['Email']['pseudo'] = 'invalid_email';
- $event->status = erFAIL;
- }
-
-
- }
-
- /**
- * Saves address changes and mades no redirect
- *
- * @param kEvent $event
- */
- function OnUpdateAddress(&$event)
- {
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object =& $event->getObject();
-
- $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
- if($items_info)
- {
- list($id,$field_values) = each($items_info);
- if($id > 0) $object->Load($id);
- $object->SetFieldsFromHash($field_values);
- $object->setID($id);
- $object->Validate();
- }
-
- $event->redirect = false;
- }
-
- function OnSubscribeQuery(&$event){
-
- $user_email = $this->Application->GetVar('subscriber_email');
- if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
-
- $this->Application->StoreVar('SubscriberEmail', $user_email);
-
- if( $object->Load(array('Email'=>$user_email)) ){
- $group_info = $this->GetGroupInfo($object->GetID());
- if($group_info){
- $event->redirect = $this->Application->GetVar('unsubscribe_template');
- }
- else {
- $event->redirect = $this->Application->GetVar('subscribe_template');
- }
- }
- else {
- $event->redirect = $this->Application->GetVar('subscribe_template');
- $this->Application->StoreVar('SubscriberEmail', $user_email);
- }
-
- }
- else {
-
- $object =& $this->Application->recallObject('u');
- $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
- $object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
- $event->status = erFAIL;
-
- }
-
-
- //subscribe_query_ok_template
- }
-
- function OnSubscribeUser(&$event){
-
- $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
- $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
-
- $user_email = $this->Application->RecallVar('SubscriberEmail');
-
- if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
-
- if($object->Load(array('Email'=>$user_email))){
-
- $group_info = $this->GetGroupInfo($object->GetID());
-
- if ($group_info){
- if ($event->getEventParam('no_unsubscribe')) return;
-
- if ($group_info['PrimaryGroup']){
- // delete user
- $object->Delete();
- }
- else {
- $this->RemoveSubscriberGroup($object->GetID());
- }
-
- $event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
-
- }
- else {
- $this->AddSubscriberGroup($object->GetID(), 0);
- $event->redirect = $this->Application->GetVar('subscribe_ok_template');
- }
-
-
- }
- else {
-
- $object->SetField('Email', $user_email);
- $object->SetField('Login', $user_email);
- $object->SetDBField('dob', 1);
- $object->SetDBField('dob_date', 1);
- $object->SetDBField('dob_time', 1);
- $ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
- $object->SetDBField('ip', $ip);
-
- $this->Application->SetVar('IsSubscriber', 1);
-
- if ($object->Create()) {
-
- $this->AddSubscriberGroup($object->GetID(), 1);
- $event->redirect = $this->Application->GetVar('subscribe_ok_template');
- }
-
- $this->Application->SetVar('IsSubscriber', 0);
- }
- }
- else {
- // error handling here
- $event->redirect = $this->Application->GetVar('subscribe_fail_template');
- }
-
-
- }
-
- function AddSubscriberGroup($user_id, $is_primary){
-
- $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
- $sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
- $this->Conn->Query( sprintf($sql, $user_id, $group_id) );
- $this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
- $this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
-
- }
-
- function RemoveSubscriberGroup($user_id){
-
- $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
- $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
- $this->Conn->Query($sql);
- $this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
- $this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
-
- }
-
- function GetGroupInfo($user_id){
-
- $group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
- WHERE PortalUserId='.$user_id.'
- AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
- return $group_info;
-
- }
-
- function OnForgotPassword(&$event){
-
- $this->Application->setUnitOption('u', 'AutoLoad', false);
- $user_object = &$this->Application->recallObject('u.forgot');
- $user_current_object = &$this->Application->recallObject('u');
-
- $username = $this->Application->GetVar('username');
- $email = $this->Application->GetVar('email');
- $found = false;
- $allow_reset = true;
-
- if( strlen($username) )
- {
- if( $user_object->Load(array('Login'=>$username)) )
- $found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
- }
- else if( strlen($email) )
- {
- if( $user_object->Load(array('Email'=>$email)) )
- $found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
- }
-
- if( $user_object->isLoaded() )
- {
- $PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
- $PwRequestTime = $user_object->GetDBField('PwRequestTime');
- $PassResetTime = $user_object->GetDBField('PassResetTime');
- //$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
- $MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
-
- $allow_reset = (strlen($PwResetConfirm) ?
- adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
- adodb_mktime() > $PassResetTime + $MinPwResetDelay);
- }
-
- if($found && $allow_reset)
- {
- $this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
- $this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
-
- //$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
-
- $event->redirect = $this->Application->GetVar('template_success');
-
- }
- else
- {
- if(!strlen($username) && !strlen($email))
- {
- $user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
- $user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
- }
- else
- {
-
- if($allow_reset)
- {
- if( strlen($username) ){
- $user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
- $user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
- }
- if( strlen($email) ){
- $user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
- $user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
- }
- }
- else
- {
- $user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
- if( strlen($username) ){
- $user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
- }
- if( strlen($email) ){
- $user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
- }
- }
-
- }
-
- if($user_current_object->FieldErrors){
- $event->redirect = false;
- }
- }
-
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnResetPassword(&$event){
-
- $user_object = &$this->Application->recallObject('u.forgot');
-
- if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
-
- $this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
- $event->redirect = $this->Application->GetVar('template_success');
-
- $mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
- $m_cat_id = $mod_object->GetDBField('RootCat');
- $event->SetRedirectParam('pass', 'm');
- //$event->SetRedirectParam('m_cat_id', $m_cat_id);
- $this->Application->SetVar('m_cat_id', $m_cat_id);
-
-
- }
-
- }
-
- function OnResetPasswordConfirmed(&$event){
-
- $passed_key = $this->Application->GetVar('user_key');
-
- $user_object = &$this->Application->recallObject('u.forgot');
- $user_current_object = &$this->Application->recallObject('u');
-
- if (strlen(trim($passed_key)) == 0) {
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = false;
-
- $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
- }
-
-
- if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
- {
- $exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
- $user_object->SetDBField("PwResetConfirm", '');
- $user_object->SetDBField("PwRequestTime", 0);
- if ( $exp_time > adodb_mktime() )
- {
- //$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
- $newpw = makepassword4();
-
- $this->Application->StoreVar('password', $newpw);
-
- $user_object->SetDBField("Password",$newpw);
- $user_object->SetDBField("PassResetTime", adodb_mktime());
- $user_object->SetDBField("PwResetConfirm", '');
- $user_object->SetDBField("PwRequestTime", 0);
- $user_object->Update();
-
- $this->Application->SetVar('ForgottenPassword', $newpw);
-
- $email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
- $email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
-
- $this->Application->DeleteVar('ForgottenPassword');
-
- if ($email_event_user->status == erSUCCESS){
- $event->redirect_params = array('opener' => 's', 'pass' => 'all');
- $event->redirect = $this->Application->GetVar('template_success');
- }
-
- $user_object->SetDBField("Password",md5($newpw));
- $user_object->Update();
-
- } else {
- $user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
- $event->redirect = false;
-
- }
- } else {
- $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
- $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
- $event->redirect = false;
-
- }
- }
-
- function OnUpdate(&$event)
- {
- $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
- $cs_helper->CheckStateField($event, 'State', 'Country');
-
- parent::OnUpdate($event);
-
- $this->setNextTemplate($event);
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function setNextTemplate(&$event)
- {
- if( !$this->Application->IsAdmin() )
- {
- $event->redirect_params['opener'] = 's';
- $object =& $event->getObject();
- if($object->GetDBField('Status') == STATUS_ACTIVE)
- {
- $next_template = $this->Application->GetVar('next_template');
- if($next_template) $event->redirect = $next_template;
- }
- }
- }
-
-
-
- /**
- * Delete users from groups if their membership is expired
- *
- * @param kEvent $event
- */
- function OnCheckExpiredMembership(&$event)
- {
- // send pre-expiration reminders: begin
- $pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
- $sql = 'SELECT PortalUserId, GroupId
- FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
-
- $skip_clause = $event->getEventParam('skip_clause');
- if ($skip_clause) {
- $sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
- }
-
- $records = $this->Conn->Query($sql);
- if ($records) {
- $conditions = Array();
- foreach ($records as $record) {
- $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
- $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
- $conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
- }
- $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
- SET ExpirationReminderSent = 1
- WHERE '.implode(' OR ', $conditions);
- $this->Conn->Query($sql);
- }
- // send pre-expiration reminders: end
-
- // remove users from groups with expired membership: begin
- $sql = 'SELECT PortalUserId
- FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
- $user_ids = $this->Conn->GetCol($sql);
- if ($user_ids) {
- foreach ($user_ids as $id) {
- $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
- $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
- }
- }
- $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
- WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
- $this->Conn->Query($sql);
- // remove users from groups with expired membership: end
- }
-
- /**
- * Enter description here...
- *
- * @param kEvent $event
- */
- function OnRefreshForm(&$event)
- {
- $event->redirect = false;
- $item_info = $this->Application->GetVar($event->Prefix_Special);
- list($id, $fields) = each($item_info);
-
- $object =& $event->getObject( Array('skip_autoload' => true) );
- $object->setID($id);
- $object->IgnoreValidation = true;
- $object->SetFieldsFromHash($fields);
- }
- }
-
+<?php
+
+ class UsersEventHandler extends InpDBEventHandler
+ {
+
+ function OnSessionExpire()
+ {
+ if( $this->Application->IsAdmin() )
+ {
+ $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1';
+ header('Location: '.$location);
+ exit;
+ }
+ else
+ {
+ $http_query =& $this->Application->recallObject('HTTPQuery');
+ $get = $http_query->getRedirectParams();
+
+ $t = $this->Application->GetVar('t');
+ $get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
+ $this->Application->Redirect($t ? $t : 'index', $get);
+ }
+ }
+
+ /**
+ * Checks user data and logs it in if allowed
+ *
+ * @param kEvent $event
+ */
+ function OnLogin(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix, 'AutoLoad', false);
+ $object =& $this->Application->recallObject('u');
+
+ $password = $this->Application->GetVar('password');
+ if(!$password)
+ {
+ $object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
+ $event->status = erFAIL;
+ return false;
+ }
+
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
+ $login_value = $this->Application->GetVar($submit_field);
+
+ /*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
+ $user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
+
+ $sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
+ $user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
+
+ if($user_id)
+ {
+ $object->Load($user_id);
+ if( $object->GetDBField('Status') == STATUS_ACTIVE )
+ {
+ $groups = $object->getMembershipGroups(true);
+ if(!$groups) $groups = Array();
+ if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
+ $this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
+
+ if( $this->Application->CheckPermission('LOGIN',0) )
+ {
+ $session =& $this->Application->recallObject('Session');
+ $session->SetField('PortalUserId', $user_id);
+ $session->SetField('GroupList', implode(',', $groups) );
+ $this->Application->SetVar('u_id', $user_id);
+ $this->Application->StoreVar('user_id', $user_id);
+ $this->Application->setVisitField('PortalUserId', $user_id);
+
+ $this_login = (int)$object->getPersistantVar('ThisLogin');
+ $object->setPersistantVar('LastLogin', $this_login);
+ $object->setPersistantVar('ThisLogin', adodb_mktime());
+ }
+ else
+ {
+ $object->Load(-2);
+ $object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
+ $event->status = erFAIL;
+ }
+
+ $next_template = $this->Application->GetVar('next_template');
+ if ($next_template == '_ses_redirect') {
+ $location = $this->Application->BaseURL().$this->Application->RecallVar($next_template);
+ if( $this->Application->isDebugMode() && dbg_ConstOn('DBG_REDIRECT') )
+ {
+ $this->Application->Debugger->appendTrace();
+ echo "<b>Debug output above!!!</b> Proceed to redirect: <a href=\"$a_location\">$a_location</a><br>";
+ }
+ else {
+ header('Location: '.$location);
+ }
+ $session =& $this->Application->recallObject('Session');
+ $session->SaveData();
+ exit();
+ }
+
+ if($next_template) $event->redirect = $next_template;
+ if ($this->Application->ConfigValue('UseJSRedirect')) {
+ $event->SetRedirectParam('js_redirect', 1);
+ }
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
+ }
+ else
+ {
+ $event->redirect = $this->Application->GetVar('pending_disabled_template');
+ }
+ }
+ else
+ {
+ $object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
+ $event->status = erFAIL;
+ }
+ }
+
+ /**
+ * Called when user logs in using old in-portal
+ *
+ * @param kEvent $event
+ */
+ function OnInpLogin(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
+ }
+
+ /**
+ * Called when user logs in using old in-portal
+ *
+ * @param kEvent $event
+ */
+ function OnInpLogout(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LogoutUser');
+ }
+
+ function OnLogout(&$event)
+ {
+ $sync_manager =& $this->Application->recallObject('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
+ $sync_manager->performAction('LogoutUser');
+
+ $session =& $this->Application->recallObject('Session');
+ $session->SetField('PortalUserId', -2);
+ $this->Application->SetVar('u_id', -2);
+ $this->Application->StoreVar('user_id', -2);
+ $object =& $this->Application->recallObject('u');
+ $object->Load(-2);
+
+ $this->Application->DestroySession();
+
+ $group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
+ $session->SetField('GroupList', $group_list);
+ $this->Application->StoreVar('UserGroups', $group_list);
+
+ if ($this->Application->ConfigValue('UseJSRedirect')) {
+ $event->SetRedirectParam('js_redirect', 1);
+ }
+ }
+
+ /**
+ * Prefill states dropdown with correct values
+ *
+ * @param kEvent $event
+ * @access public
+ */
+ function OnPrepareStates(&$event)
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->PopulateStates($event, 'State', 'Country');
+
+ $object =& $event->getObject();
+
+ if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
+ $object->setLogin();
+ }
+
+ /**
+ * Redirects user after succesfull registration to confirmation template (on Front only)
+ *
+ * @param kEvent $event
+ */
+ function OnAfterItemCreate(&$event)
+ {
+ $is_subscriber = $this->Application->GetVar('IsSubscriber');
+ if(!$is_subscriber)
+ {
+ $object =& $event->getObject();
+
+ $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
+ SET PrimaryGroup = 0
+ WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
+ $this->Conn->Query($sql);
+
+ $group_id = $this->Application->ConfigValue('User_NewGroup');
+
+ $sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
+ $this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
+ }
+ }
+
+ /**
+ * Login user if possible, if not then redirect to corresponding template
+ *
+ * @param kEvent $event
+ */
+ function autoLoginUser(&$event)
+ {
+ $object =& $event->getObject();
+ $this->Application->SetVar('u_id', $object->GetID() );
+
+ if($object->GetDBField('Status') == STATUS_ACTIVE)
+ {
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
+
+ $this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
+ $this->Application->SetVar('password', $object->GetDBField('Password_plain') );
+
+ $event->CallSubEvent('OnLogin');
+ }
+ }
+
+
+ /**
+ * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
+ *
+ * @param kEvent $event
+ */
+ function OnSubstituteSubscriber(&$event)
+ {
+ $ret = false;
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
+ if($items_info)
+ {
+ list($id, $field_values) = each($items_info);
+ $user_email = $field_values['Email'];
+ if($user_email)
+ {
+ // check if is subscriber
+ $verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
+ $verify_user->Load($user_email, 'Email');
+ if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
+ {
+ $items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
+ $this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
+ $ret = true;
+ }
+ }
+ }
+
+ if( isset($event->MasterEvent) )
+ {
+ $event->MasterEvent->setEventParam('is_subscriber_only', $ret);
+ }
+ else
+ {
+ $event->setEventParam('is_subscriber_only', $ret);
+ }
+ }
+
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ * @return bool
+ */
+ function isSubscriberOnly(&$event)
+ {
+ $event->CallSubEvent('OnSubstituteSubscriber');
+ $is_subscriber = false;
+ if( $event->getEventParam('is_subscriber_only') )
+ {
+ $is_subscriber = true;
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $this->OnUpdate($event);
+ if($event->status == erSUCCESS)
+ {
+ $this->OnAfterItemCreate($event);
+ $object->SendEmailEvents();
+ if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
+ }
+ }
+ return $is_subscriber;
+ }
+
+ /**
+ * Creates new user
+ *
+ * @param kEvent $event
+ */
+ function OnCreate(&$event)
+ {
+ if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
+
+ if( !$this->isSubscriberOnly($event) )
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->CheckStateField($event, 'State', 'Country');
+
+ parent::OnCreate($event);
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+
+ $this->Application->SetVar('u_id', $object->getID() );
+ $this->Application->setUnitOption('u', 'AutoLoad', true);
+
+ $this->setNextTemplate($event);
+
+ if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
+ {
+ $object->SendEmailEvents();
+ $this->autoLoginUser($event);
+ }
+ }
+ }
+
+ /**
+ * Set's new user status based on config options
+ *
+ * @param kEvent $event
+ */
+ function setUserStatus(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+
+ $new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
+ // 1 - Instant, 2 - Not Allowed, 3 - Pending
+
+ switch ($new_users_allowed)
+ {
+ case 1: // Instant
+ $object->SetDBField('Status', 1);
+ $next_template = $this->Application->GetVar('registration_confirm_template');
+ if($next_template) $event->redirect = $next_template;
+ break;
+
+ case 3: // Pending
+ $next_template = $this->Application->GetVar('registration_confirm_pending_template');
+ if($next_template) $event->redirect = $next_template;
+ $object->SetDBField('Status', 2);
+ break;
+
+ case 2: // Not Allowed
+ $object->SetDBField('Status', 0);
+ break;
+ }
+
+ /*if ($object->GetDBField('PaidMember') == 1) {
+ $this->Application->HandleEvent($add_to_cart, 'ord:OnAddToCart');
+ $event->redirect = 'in-commerce/checkout/shop_cart';
+ } */
+
+ }
+
+
+
+
+ /**
+ * Set's new unique resource id to user
+ *
+ * @param kEvent $event
+ */
+ function OnBeforeItemCreate(&$event)
+ {
+ $email_as_login = $this->Application->ConfigValue('Email_As_Login');
+ $object =& $event->getObject();
+ if ($email_as_login) {
+ $object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
+ }
+
+ }
+
+ /**
+ * Set's new unique resource id to user
+ *
+ * @param kEvent $event
+ */
+ function OnAfterItemValidate(&$event)
+ {
+ $object =& $event->getObject();
+ $resource_id = $object->GetDBField('ResourceId');
+ if (!$resource_id)
+ {
+ $object->SetDBField('ResourceId', $this->Application->NextResourceId() );
+ }
+ }
+
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnRecommend(&$event){
+
+ $friend_email = $this->Application->GetVar('friend_email');
+ $friend_name = $this->Application->GetVar('friend_email');
+
+ if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
+ {
+
+ $send_params = array();
+ $send_params['to_email']=$friend_email;
+ $send_params['to_name']=$friend_name;
+
+ $user_id = $this->Application->GetVar('u_id');
+ $email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
+
+ if ($email_event->status == erSUCCESS){
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = $this->Application->GetVar('template_success');
+ }
+ else {
+// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+// $event->redirect = $this->Application->GetVar('template_fail');
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
+ $object->FieldErrors['Email']['pseudo'] = 'send_error';
+ $event->status = erFAIL;
+
+ }
+ }
+ else {
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
+ $object->FieldErrors['Email']['pseudo'] = 'invalid_email';
+ $event->status = erFAIL;
+ }
+
+
+ }
+
+ /**
+ * Saves address changes and mades no redirect
+ *
+ * @param kEvent $event
+ */
+ function OnUpdateAddress(&$event)
+ {
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object =& $event->getObject();
+
+ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
+ if($items_info)
+ {
+ list($id,$field_values) = each($items_info);
+ if($id > 0) $object->Load($id);
+ $object->SetFieldsFromHash($field_values);
+ $object->setID($id);
+ $object->Validate();
+ }
+
+ $event->redirect = false;
+ }
+
+ function OnSubscribeQuery(&$event){
+
+ $user_email = $this->Application->GetVar('subscriber_email');
+ if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
+
+ $this->Application->StoreVar('SubscriberEmail', $user_email);
+
+ if( $object->Load(array('Email'=>$user_email)) ){
+ $group_info = $this->GetGroupInfo($object->GetID());
+ if($group_info){
+ $event->redirect = $this->Application->GetVar('unsubscribe_template');
+ }
+ else {
+ $event->redirect = $this->Application->GetVar('subscribe_template');
+ }
+ }
+ else {
+ $event->redirect = $this->Application->GetVar('subscribe_template');
+ $this->Application->StoreVar('SubscriberEmail', $user_email);
+ }
+
+ }
+ else {
+
+ $object =& $this->Application->recallObject('u');
+ $object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
+ $object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
+ $event->status = erFAIL;
+
+ }
+
+
+ //subscribe_query_ok_template
+ }
+
+ function OnSubscribeUser(&$event){
+
+ $this->Application->setUnitOption($event->Prefix,'AutoLoad',false);
+ $object = &$this->Application->recallObject($this->Prefix.'.subscriber');
+
+ $user_email = $this->Application->RecallVar('SubscriberEmail');
+
+ if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
+
+ if($object->Load(array('Email'=>$user_email))){
+
+ $group_info = $this->GetGroupInfo($object->GetID());
+
+ if ($group_info){
+ if ($event->getEventParam('no_unsubscribe')) return;
+
+ if ($group_info['PrimaryGroup']){
+ // delete user
+ $object->Delete();
+ }
+ else {
+ $this->RemoveSubscriberGroup($object->GetID());
+ }
+
+ $event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
+
+ }
+ else {
+ $this->AddSubscriberGroup($object->GetID(), 0);
+ $event->redirect = $this->Application->GetVar('subscribe_ok_template');
+ }
+
+
+ }
+ else {
+
+ $object->SetField('Email', $user_email);
+ $object->SetField('Login', $user_email);
+ $object->SetDBField('dob', 1);
+ $object->SetDBField('dob_date', 1);
+ $object->SetDBField('dob_time', 1);
+ $ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
+ $object->SetDBField('ip', $ip);
+
+ $this->Application->SetVar('IsSubscriber', 1);
+
+ if ($object->Create()) {
+
+ $this->AddSubscriberGroup($object->GetID(), 1);
+ $event->redirect = $this->Application->GetVar('subscribe_ok_template');
+ }
+
+ $this->Application->SetVar('IsSubscriber', 0);
+ }
+ }
+ else {
+ // error handling here
+ $event->redirect = $this->Application->GetVar('subscribe_fail_template');
+ }
+
+
+ }
+
+ function AddSubscriberGroup($user_id, $is_primary){
+
+ $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
+ $sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
+ $this->Conn->Query( sprintf($sql, $user_id, $group_id) );
+ $this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
+ $this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
+
+ }
+
+ function RemoveSubscriberGroup($user_id){
+
+ $group_id = $this->Application->ConfigValue('User_SubscriberGroup');
+ $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
+ $this->Conn->Query($sql);
+ $this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
+ $this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
+
+ }
+
+ function GetGroupInfo($user_id){
+
+ $group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
+ WHERE PortalUserId='.$user_id.'
+ AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
+ return $group_info;
+
+ }
+
+ function OnForgotPassword(&$event){
+
+ $this->Application->setUnitOption('u', 'AutoLoad', false);
+ $user_object = &$this->Application->recallObject('u.forgot');
+ $user_current_object = &$this->Application->recallObject('u');
+
+ $username = $this->Application->GetVar('username');
+ $email = $this->Application->GetVar('email');
+ $found = false;
+ $allow_reset = true;
+
+ if( strlen($username) )
+ {
+ if( $user_object->Load(array('Login'=>$username)) )
+ $found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
+ }
+ else if( strlen($email) )
+ {
+ if( $user_object->Load(array('Email'=>$email)) )
+ $found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
+ }
+
+ if( $user_object->isLoaded() )
+ {
+ $PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
+ $PwRequestTime = $user_object->GetDBField('PwRequestTime');
+ $PassResetTime = $user_object->GetDBField('PassResetTime');
+ //$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
+ $MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
+
+ $allow_reset = (strlen($PwResetConfirm) ?
+ adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
+ adodb_mktime() > $PassResetTime + $MinPwResetDelay);
+ }
+
+ if($found && $allow_reset)
+ {
+ $this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
+ $this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
+
+ //$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
+
+ $event->redirect = $this->Application->GetVar('template_success');
+
+ }
+ else
+ {
+ if(!strlen($username) && !strlen($email))
+ {
+ $user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
+ $user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
+ }
+ else
+ {
+
+ if($allow_reset)
+ {
+ if( strlen($username) ){
+ $user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
+ $user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
+ }
+ if( strlen($email) ){
+ $user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
+ $user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
+ }
+ }
+ else
+ {
+ $user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
+ if( strlen($username) ){
+ $user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
+ }
+ if( strlen($email) ){
+ $user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
+ }
+ }
+
+ }
+
+ if($user_current_object->FieldErrors){
+ $event->redirect = false;
+ }
+ }
+
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnResetPassword(&$event){
+
+ $user_object = &$this->Application->recallObject('u.forgot');
+
+ if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
+
+ $this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
+ $event->redirect = $this->Application->GetVar('template_success');
+
+ $mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
+ $m_cat_id = $mod_object->GetDBField('RootCat');
+ $event->SetRedirectParam('pass', 'm');
+ //$event->SetRedirectParam('m_cat_id', $m_cat_id);
+ $this->Application->SetVar('m_cat_id', $m_cat_id);
+
+
+ }
+
+ }
+
+ function OnResetPasswordConfirmed(&$event){
+
+ $passed_key = $this->Application->GetVar('user_key');
+
+ $user_object = &$this->Application->recallObject('u.forgot');
+ $user_current_object = &$this->Application->recallObject('u');
+
+ if (strlen(trim($passed_key)) == 0) {
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = false;
+
+ $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
+ }
+
+
+ if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
+ {
+ $exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
+ $user_object->SetDBField("PwResetConfirm", '');
+ $user_object->SetDBField("PwRequestTime", 0);
+ if ( $exp_time > adodb_mktime() )
+ {
+ //$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
+ $newpw = makepassword4();
+
+ $this->Application->StoreVar('password', $newpw);
+
+ $user_object->SetDBField("Password",$newpw);
+ $user_object->SetDBField("PassResetTime", adodb_mktime());
+ $user_object->SetDBField("PwResetConfirm", '');
+ $user_object->SetDBField("PwRequestTime", 0);
+ $user_object->Update();
+
+ $this->Application->SetVar('ForgottenPassword', $newpw);
+
+ $email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
+ $email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
+
+ $this->Application->DeleteVar('ForgottenPassword');
+
+ if ($email_event_user->status == erSUCCESS){
+ $event->redirect_params = array('opener' => 's', 'pass' => 'all');
+ $event->redirect = $this->Application->GetVar('template_success');
+ }
+
+ $user_object->SetDBField("Password",md5($newpw));
+ $user_object->Update();
+
+ } else {
+ $user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
+ $event->redirect = false;
+
+ }
+ } else {
+ $user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
+ $user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
+ $event->redirect = false;
+
+ }
+ }
+
+ function OnUpdate(&$event)
+ {
+ $cs_helper =& $this->Application->recallObject('CountryStatesHelper');
+ $cs_helper->CheckStateField($event, 'State', 'Country');
+
+ parent::OnUpdate($event);
+
+ $this->setNextTemplate($event);
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function setNextTemplate(&$event)
+ {
+ if( !$this->Application->IsAdmin() )
+ {
+ $event->redirect_params['opener'] = 's';
+ $object =& $event->getObject();
+ if($object->GetDBField('Status') == STATUS_ACTIVE)
+ {
+ $next_template = $this->Application->GetVar('next_template');
+ if($next_template) $event->redirect = $next_template;
+ }
+ }
+ }
+
+
+
+ /**
+ * Delete users from groups if their membership is expired
+ *
+ * @param kEvent $event
+ */
+ function OnCheckExpiredMembership(&$event)
+ {
+ // send pre-expiration reminders: begin
+ $pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
+ $sql = 'SELECT PortalUserId, GroupId
+ FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
+
+ $skip_clause = $event->getEventParam('skip_clause');
+ if ($skip_clause) {
+ $sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
+ }
+
+ $records = $this->Conn->Query($sql);
+ if ($records) {
+ $conditions = Array();
+ foreach ($records as $record) {
+ $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
+ $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
+ $conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
+ }
+ $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
+ SET ExpirationReminderSent = 1
+ WHERE '.implode(' OR ', $conditions);
+ $this->Conn->Query($sql);
+ }
+ // send pre-expiration reminders: end
+
+ // remove users from groups with expired membership: begin
+ $sql = 'SELECT PortalUserId
+ FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
+ $user_ids = $this->Conn->GetCol($sql);
+ if ($user_ids) {
+ foreach ($user_ids as $id) {
+ $email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
+ $email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
+ }
+ }
+ $sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
+ WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
+ $this->Conn->Query($sql);
+ // remove users from groups with expired membership: end
+ }
+
+ /**
+ * Enter description here...
+ *
+ * @param kEvent $event
+ */
+ function OnRefreshForm(&$event)
+ {
+ $event->redirect = false;
+ $item_info = $this->Application->GetVar($event->Prefix_Special);
+ list($id, $fields) = each($item_info);
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $object->setID($id);
+ $object->IgnoreValidation = true;
+ $object->SetFieldsFromHash($fields);
+ }
+ }
+
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.50.2/core/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.50
\ No newline at end of property
+1.50.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.37.2/core/kernel/processors/main_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.37.2/core/kernel/processors/main_processor.php (revision 4353)
+++ branches/unlabeled/unlabeled-1.37.2/core/kernel/processors/main_processor.php (revision 4354)
@@ -1,864 +1,876 @@
-<?php
-
-class kMainTagProcessor extends TagProcessor {
-
- function Init($prefix,$special)
- {
- parent::Init($prefix,$special);
-
- $actions =& $this->Application->recallObject('kActions');
- $actions->Set('t', $this->Application->GetVar('t'));
- $actions->Set('sid', $this->Application->GetSID());
- $actions->Set('m_opener', $this->Application->GetVar('m_opener') );
-
- }
-
- /**
- * Used to handle calls where tag name
- * match with existing php function name
- *
- * @param Tag $tag
- * @return string
- */
- function ProcessTag(&$tag)
- {
- if ($tag->Tag=='include') $tag->Tag='MyInclude';
- return parent::ProcessTag($tag);
- }
-
- /**
- * Creates <base href ..> HTML tag for all templates
- * affects future css, js files and href params of links
- *
- * @return string
- * @access public
- */
- function Base_Ref()
- {
- $url = $this->Application->BaseURL().substr(THEMES_PATH,1).'/';
- return '<base href="'.$url.'" />';
- }
-
- /**
- * Returns base url for web-site
- *
- * @return string
- * @access public
- */
- function BaseURL()
- {
- return $this->Application->BaseURL();
- }
-
- function TemplatesBase($params)
- {
- return $this->Application->BaseURL().THEMES_PATH;
- }
-
- function ProjectBase($params)
- {
- return $this->Application->BaseURL();
- }
-
- /*function Base($params)
- {
- return $this->Application->BaseURL().$params['add'];
- }*/
-
- /**
- * Used to create link to any template.
- * use "pass" paramter if "t" tag to specify
- * prefix & special of object to be represented
- * in resulting url
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function T($params)
- {
- //by default link to current template
- $t = $this->SelectParam($params, 't,template');
- unset($params['t']);
- unset($params['template']);
- $prefix=isset($params['prefix']) ? $params['prefix'] : ''; unset($params['prefix']);
- $index_file = isset($params['index_file']) ? $params['index_file'] : null; unset($params['index_file']);
-
- return $this->Application->HREF($t, $prefix, $params, $index_file);
- }
-
- function Link($params)
- {
- if (isset($params['template'])) {
- $params['t'] = $params['template'];
- unset($params['template']);
- }
- if (!isset($params['pass']) && !isset($params['no_pass'])) $params['pass'] = 'm';
- if (isset($params['no_pass'])) unset($params['no_pass']);
-
- if( $this->Application->GetVar('admin') ) $params['admin'] = 1;
-
- return $this->T($params);
- }
-
- function Env($params)
- {
- $t = $params['template'];
- unset($params['template']);
- return $this->Application->BuildEnv($t, $params, 'm', null, false);
- }
-
- function FormAction($params)
- {
- return $this->Application->ProcessParsedTag('m', 't', Array( 'pass'=>'all,m' ) );
- }
-
- /*// NEEDS TEST
- function Config($params)
- {
- return $this->Application->ConfigOption($params['var']);
- }
-
- function Object($params)
- {
- $name = $params['name'];
- $method = $params['method'];
-
- $tmp =& $this->Application->recallObject($name);
- if ($tmp != null) {
- if (method_exists($tmp, $method))
- return $tmp->$method($params);
- else
- echo "Method $method does not exist in object ".get_class($tmp)." named $name<br>";
- }
- else
- echo "Object $name does not exist in the appliaction<br>";
- }*/
-
- /**
- * Tag, that always returns true.
- * For parser testing purposes
- *
- * @param Array $params
- * @return bool
- * @access public
- */
- function True($params)
- {
- return true;
- }
-
- /**
- * Tag, that always returns false.
- * For parser testing purposes
- *
- * @param Array $params
- * @return bool
- * @access public
- */
- function False($params)
- {
- return false;
- }
-
- /**
- * Returns block parameter by name
- *
- * @param Array $params
- * @return stirng
- * @access public
- */
- function Param($params)
- {
- //$parser =& $this->Application->recallObject('TemplateParser');
- $res = $this->Application->Parser->GetParam($params['name']);
- if ($res === false) $res = '';
- if (isset($params['plus']))
- $res += $params['plus'];
- return $res;
- }
-
- /**
- * Gets value of specified field from specified prefix_special and set it as parser param
- *
- * @param Array $params
- */
- /*function SetParam($params)
- {
- // <inp2:m_SetParam param="custom_name" src="cf:FieldName"/>
- list($prefix_special, $field_name) = explode(':', $params['src']);
-
- $object =& $this->Application->recallObject($prefix_special);
- $name = $this->SelectParam($params, 'param,name,var');
-
- $this->Application->Parser->SetParam($name, $object->GetField($field_name) );
- }*/
-
- /**
- * Compares block parameter with value specified
- *
- * @param Array $params
- * @return bool
- * @access public
- */
- function ParamEquals($params)
- {
- //$parser =& $this->Application->recallObject('TemplateParser');
- $name = $this->SelectParam($params, 'name,var,param');
- $value = $params['value'];
- return ($this->Application->Parser->GetParam($name) == $value);
- }
-
- /*function PHP_Self($params)
- {
- return $HTTP_SERVER_VARS['PHP_SELF'];
- }
- */
-
- /**
- * Returns session variable value by name
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function Recall($params)
- {
- $ret = $this->Application->RecallVar( $this->SelectParam($params,'name,var,param') );
- $ret = ($ret === false && isset($params['no_null'])) ? '' : $ret;
- if( getArrayValue($params,'special') || getArrayValue($params,'htmlchars')) $ret = htmlspecialchars($ret);
-
- if ( getArrayValue($params, 'urlencode') ) $ret = urlencode($ret);
-
- return $ret;
- }
-
- // bad style to store something from template to session !!! (by Alex)
- // Used here only to test how session works, nothing more
- function Store($params)
- {
- //echo"Store $params[name]<br>";
- $name = $params['name'];
- $value = $params['value'];
- $this->Application->StoreVar($name,$value);
- }
-
- /**
- * Sets application variable value(-s)
- *
- * @param Array $params
- * @access public
- */
- function Set($params)
- {
- foreach ($params as $param => $value) {
- $this->Application->SetVar($param, $value);
- }
- }
-
- /**
- * Increment application variable
- * specified by number specified
- *
- * @param Array $params
- * @access public
- */
- function Inc($params)
- {
- $this->Application->SetVar($params['param'], $this->Application->GetVar($params['param']) + $params['by']);
- }
-
- /**
- * Retrieves application variable
- * value by name
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function Get($params)
- {
- $ret = $this->Application->GetVar($this->SelectParam($params, 'name,var,param'), '');
- return getArrayValue($params, 'htmlchars') ? htmlspecialchars($ret) : $ret;
- }
-
- /**
- * Retrieves application constant
- * value by name
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function GetConst($params)
- {
- return defined($this->SelectParam($params, 'name,const')) ? constant($this->SelectParam($params, 'name,const,param')) : '';
- }
-
- /**
- * Retrieves configuration variable value by name
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function GetConfig($params)
- {
- $config_name = $this->SelectParam($params, 'name,var');
- $ret = $this->Application->ConfigValue($config_name);
- if( getArrayValue($params, 'escape') ) $ret = addslashes($ret);
- return $ret;
- }
-
- function ConfigEquals($params)
- {
- $option = $this->SelectParam($params, 'name,option,var');
- return $this->Application->ConfigValue($option) == getArrayValue($params, 'value');
- }
-
- /**
- * Creates all hidden fields
- * needed for kernel_form
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function DumpSystemInfo($params)
- {
- $actions =& $this->Application->recallObject('kActions');
- $actions->Set('t', $this->Application->GetVar('t') );
-
- $params = $actions->GetParams();
- $o='';
- foreach ($params AS $name => $val)
- {
- $o .= "<input type='hidden' name='$name' id='$name' value='$val'>\n";
- }
- return $o;
- }
-
- function GetFormHiddens($params)
- {
- $sid = $this->Application->GetSID();
- $t = $this->SelectParam($params, 'template,t');
- unset($params['template']);
- $env = $this->Application->BuildEnv($t, $params, 'm', null, false);
- $o = '';
- if ( $this->Application->RewriteURLs() )
- {
- $session =& $this->Application->recallObject('Session');
- if ($session->NeedQueryString()) {
- $o .= "<input type='hidden' name='sid' id='sid' value='$sid'>\n";
- }
- }
- else {
- $o .= "<input type='hidden' name='env' id='env' value='$env'>\n";
- }
- return $o;
- }
-
- function Odd_Even($params)
- {
- $odd = $params['odd'];
- $even = $params['even'];
- if (!isset($params['var'])) {
- $var = 'odd_even';
- }
- else {
- $var = $params['var'];
- }
-
- if ($this->Application->GetVar($var) == 'even') {
- if (!isset($params['readonly']) || !$params['readonly']) {
- $this->Application->SetVar($var, 'odd');
- }
- return $even;
- }
- else {
- if (!isset($params['readonly']) || !$params['readonly']) {
- $this->Application->SetVar($var, 'even');
- }
- return $odd;
- }
- }
-
- /**
- * Returns phrase translation by name
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function Phrase($params)
- {
- // m:phrase name="phrase_name" default="Tr-alala" updated="2004-01-29 12:49"
- if (array_key_exists('default', $params)) return $params['default']; //backward compatibility
- $translation = $this->Application->Phrase($this->SelectParam($params, 'label,name,title'));
- if (getArrayValue($params, 'escape')) {
- $translation = htmlspecialchars($translation);
- $translation = str_replace('\'', '&#39;', $translation);
- $translation = addslashes($translation);
- }
- return $translation;
- }
-
- // for tabs
- function is_active($params)
- {
- $test_templ = $this->SelectParam($params, 'templ,template,t');
- if ( !getArrayValue($params,'allow_empty') )
- {
- $if_true=getArrayValue($params,'true') ? $params['true'] : 1;
- $if_false=getArrayValue($params,'false') ? $params['false'] : 0;
- }
- else
- {
- $if_true=$params['true'];
- $if_false=$params['false'];
- }
-
- if ( preg_match("/^".str_replace('/', '\/', $test_templ)."/", $this->Application->GetVar('t'))) {
- return $if_true;
- }
- else {
- return $if_false;
- }
- }
-
- function IsNotActive($params)
- {
- return !$this->is_active($params);
- }
-
- function IsActive($params)
- {
- return $this->is_active($params);
- }
-
- function is_t_active($params)
- {
- return $this->is_active($params);
- }
-
- function CurrentTemplate($params)
- {
- return $this->is_active($params);
- }
-
- /**
- * Checks if session variable
- * specified by name value match
- * value passed as parameter
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function RecallEquals($params)
- {
- $name = $params['var'];
- $value = $params['value'];
- return ($this->Application->RecallVar($name) == $value);
- }
-
- /**
- * Checks if application variable
- * specified by name value match
- * value passed as parameter
- *
- * @param Array $params
- * @return bool
- * @access public
- */
- function GetEquals($params)
- {
- $name = $this->SelectParam($params, 'var,name,param');
- $value = $params['value'];
- if ($this->Application->GetVar($name) == $value) {
- return 1;
- }
- }
-
- /**
- * Includes template
- * and returns it's
- * parsed version
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function MyInclude($params)
- {
- $BlockParser =& $this->Application->makeClass('TemplateParser');
- $BlockParser->SetParams($params);
- $parser =& $this->Application->Parser;
- $this->Application->Parser =& $BlockParser;
-
- $t = $this->SelectParam($params, 't,template,block,name');
- $t = eregi_replace("\.tpl$", '', $t);
-
- $templates_cache =& $this->Application->recallObject('TemplatesCache');
-
- $res = $BlockParser->Parse( $templates_cache->GetTemplateBody($t), $t );
-
- if ( !$BlockParser->DataExists && (isset($params['data_exists']) || isset($params['block_no_data'])) ) {
- if ($block_no_data = getArrayValue($params, 'block_no_data')) {
- $res = $BlockParser->Parse(
- $templates_cache->GetTemplateBody($block_no_data, $silent),
- $t
- );
- }
- else {
- $res = '';
- }
- }
- $this->Application->Parser =& $parser;
- $this->Application->Parser->DataExists = $this->Application->Parser->DataExists || $BlockParser->DataExists;
- return $res;
- }
-
- /*function Kernel_Scripts($params)
- {
- return '<script type="text/javascript" src="'.PROTOCOL.SERVER_NAME.BASE_PATH.'/kernel3/js/grid.js"></script>';
- }*/
-
-
- /*function GetUserPermission($params)
- {
- // echo"GetUserPermission $params[name]";
- if ($this->Application->RecallVar('user_type') == 1)
- return 1;
- else {
- $perm_name = $params[name];
- $aPermissions = unserialize($this->Application->RecallVar('user_permissions'));
- if ($aPermissions)
- return $aPermissions[$perm_name];
- }
- }*/
-
-
- /**
- * Set's parser block param value
- *
- * @param Array $params
- * @access public
- */
- function AddParam($params)
- {
- $parser =& $this->Application->Parser; // recallObject('TemplateParser');
- foreach ($params as $param => $value) {
- $this->Application->SetVar($param, $value);
- $parser->SetParam($param, $value);
- $parser->AddParam('/\$'.$param.'/', $value);
- }
- }
-
- /*function ParseToVar($params)
- {
- $var = $params['var'];
- $tagdata = $params['tag'];
- $parser =& $this->Application->Parser; //recallObject('TemplateParser');
- $res = $this->Application->ProcessTag($tagdata);
-
- $parser->SetParam($var, $res);
- $parser->AddParam('/\$'.$var.'/', $res);
- return '';
- }*/
-
- /*function TagNotEmpty($params)
- {
- $tagdata = $params['tag'];
- $res = $this->Application->ProcessTag($tagdata);
- return $res != '';
- }*/
-
- /*function TagEmpty($params)
- {
- return !$this->TagNotEmpty($params);
- }*/
-
- /**
- * Parses block and returns result
- *
- * @param Array $params
- * @return string
- * @access public
- */
- function ParseBlock($params)
- {
- $parser =& $this->Application->Parser; // recallObject('TemplateParser');
- return $parser->ParseBlock($params);
- }
-
- function RenderElement($params)
- {
- return $this->ParseBlock($params);
- }
-
- /**
- * Checks if debug mode is on
- *
- * @return bool
- * @access public
- */
- function IsDebugMode()
- {
- return $this->Application->isDebugMode();
- }
-
- function MassParse($params)
- {
- $qty = $params['qty'];
- $block = $params['block'];
- $mode = $params['mode'];
-
- $o = '';
- if ($mode == 'func') {
- $func = create_function('$params', '
- $o = \'<tr>\';
- $o.= \'<td>a\'.$params[\'param1\'].\'</td>\';
- $o.= \'<td>a\'.$params[\'param2\'].\'</td>\';
- $o.= \'<td>a\'.$params[\'param3\'].\'</td>\';
- $o.= \'<td>a\'.$params[\'param4\'].\'</td>\';
- $o.= \'</tr>\';
- return $o;
- ');
- for ($i=1; $i<$qty; $i++) {
- $block_params['param1'] = rand(1, 10000);
- $block_params['param2'] = rand(1, 10000);
- $block_params['param3'] = rand(1, 10000);
- $block_params['param4'] = rand(1, 10000);
- $o .= $func($block_params);
- }
- return $o;
- }
-
- $block_params['name'] = $block;
-
- for ($i=0; $i<$qty; $i++) {
- $block_params['param1'] = rand(1, 10000);
- $block_params['param2'] = rand(1, 10000);
- $block_params['param3'] = rand(1, 10000);
- $block_params['param4'] = rand(1, 10000);
- $block_params['passed'] = $params['passed'];
- $block_params['prefix'] = 'm';
-
- $o.= $this->Application->ParseBlock($block_params, 1);
- }
- return $o;
- }
-
- function AfterScript($params)
- {
- $after_script = $this->Application->GetVar('after_script');
- if ( $after_script ) {
- return '<script type="text/javascript">'.$after_script.'</script>';
- }
- return '';
- }
-
- function LoggedIn($params)
- {
- return $this->Application->LoggedIn();
- }
-
- /**
- * Checks if user is logged in and if not redirects it to template passed
- *
- * @param Array $params
- */
- function RequireLogin($params)
- {
- if($permission_groups = getArrayValue($params, 'permissions'))
- {
- $permission_groups = explode('|', $permission_groups);
- $group_has_permission = false;
- foreach($permission_groups as $permission_group)
- {
- $permissions = explode(',', $permission_group);
- $has_permission = true;
- foreach($permissions as $permission)
- {
- $has_permission = $has_permission && $this->Application->CheckPermission($permission);
- }
- $group_has_permission = $group_has_permission || $has_permission;
-
- if($group_has_permission)
- {
- return;
- }
- }
-
- if( !$this->Application->LoggedIn() )
- {
- $t = $this->Application->GetVar('t');
- $this->Application->Redirect( $params['login_template'], Array('next_template'=>$t) );
- }
- else
- {
- $this->Application->Redirect( $params['no_permissions_template'] );
- }
- }
-
- $condition = getArrayValue($params,'condition');
- if(!$condition)
- {
- $condition = true;
- }
- else
- {
- if( substr($condition,0,1) == '!' )
- {
- $condition = !$this->Application->ConfigValue( substr($condition,1) );
- }
- else
- {
- $condition = $this->Application->ConfigValue($condition);
- }
- }
-
- $group = $this->SelectParam($params, 'group');
- $group_access = true;
- if ($group) {
- $conn =& $this->Application->DB;
- $group_id = $conn->GetOne('SELECT GroupId FROM '.TABLE_PREFIX.'PortalGroup WHERE Name = '.$conn->qstr($group));
- if ($group_id) {
- $groups = explode(',', $this->Application->RecallVar('UserGroups'));
- $group_access = in_array($group_id, $groups);
- }
- }
-
- if( (!$this->Application->LoggedIn() || !$group_access) && $condition )
- {
- $t = $this->Application->GetVar('t');
- $this->Application->Redirect( $params['login_template'], Array('next_template'=>$t) );
- }
- }
-
- /**
- * Checks if SSL is on and redirects to SSL URL if needed
- * If SSL_URL is not defined in config - the tag does not do anything
- * If for_logged_in_only="1" exits if user is not logged in.
- * If called without params forces https right away. If called with by_config="1" checks the
- * Require SSL setting from General Config and if it is ON forces https
- *
- * @param unknown_type $params
- */
- function CheckSSL($params)
- {
- $ssl = $this->Application->ConfigValue('SSL_URL');
- if (!$ssl) return; //SSL URL is not set - no way to require SSL
-
- $require = false;
-
- if ($params['mode'] == 'required') {
- $require = true;
- if (isset($params['for_logged_in_only']) && $params['for_logged_in_only'] && !$this->Application->LoggedIn()) {
- $require = false;
- }
-
- if (isset($params['condition'])) {
- if (!$this->Application->ConfigValue($params['condition'])) {
- $require = false;
- }
- }
- }
-
- $http_query =& $this->Application->recallObject('HTTPQuery');
- $pass = $http_query->getRedirectParams();
-
- if ($require) {
- if (PROTOCOL == 'https://') {
- $this->Application->SetVar('__KEEP_SSL__', 1);
- return;
- }
- $this->Application->Redirect('', array_merge_recursive2($pass, Array('__SSL__' => 1)));
- }
- else {
- if (PROTOCOL == 'https://' && $this->Application->ConfigValue('Force_HTTP_When_SSL_Not_Required')) {
- if ($this->Application->GetVar('__KEEP_SSL__')) return;
- $this->Application->Redirect('', array_merge_recursive2($pass, Array('__SSL__' => 0)));
- }
- }
- }
-
- function SaveReturnScript($params)
- {
- // admin/save_redirect.php?do=
- $url = str_replace($this->Application->BaseURL(), '', $this->T($params) );
- $url = explode('?', $url, 2);
- $url = 'save_redirect.php?'.$url[1].'&do='.$url[0];
-
- $this->Application->StoreVar('ReturnScript', $url);
- }
-
- function ConstOn($params)
- {
- $name = $this->SelectParam($params,'name,const');
- return $this->Application->isDebugMode() && dbg_ConstOn($name);
- }
-
- function SetDefaultCategory($params)
- {
- $module_name = $params['module'];
- $module =& $this->Application->recallObject('mod.'.$module_name);
- $this->Application->SetVar('m_cat_id', $module->GetDBField('RootCat') );
- }
-
- function ImportRedirect($params)
- {
- $import_id = $this->Application->GetVar('import_id');
- if ($import_id) {
- // redirect forward to step3 (import parameters coosing)
- $this->Application->StoreVar('ImportScriptID', $import_id);
-
- $sql = 'SELECT *
- FROM '.TABLE_PREFIX.'ImportScripts
- WHERE is_id = '.$import_id;
-
- $db =& $this->Application->GetADODBConnection();
- $is_params = $db->GetRow($sql);
-
- if ($is_params['is_type'] == 'db') {
- $this->Application->Redirect('', null, '', 'import/step3.php');
- }
- elseif ($is_params['is_type'] == 'csv') {
- $module = strtolower($is_params['is_Module']);
- $template = $module.'/import';
- $sql = 'SELECT Var
- FROM '.TABLE_PREFIX.'Modules
- WHERE LOWER(Name) = '.$db->qstr($module);
- $item_prefix = $db->GetOne($sql);
- $pass_params = Array('m_opener' => 'd', $item_prefix.'.import_id' => 0, $item_prefix.'.import_event' => 'OnNew', 'pass' => 'm,'.$item_prefix.'.import');
- $this->Application->Redirect($template, $pass_params);
- }
- }
- else {
- // redirect back to step2 (import type choosing)
- $this->Application->Redirect('', null, '', 'import/step2.php');
- }
- }
-
- function GetSectionTitle($params)
- {
- $params['name'] = replaceModuleSection($params['phrase']);
- return $this->Phrase($params);
- }
-
- function GetSectionIcon($params)
- {
- return replaceModuleSection($params['icon']);
- }
-
- function StoreSystemVars($params)
- {
- // save theese variables to session, because they are useful for most configuration templates
- $this->Application->LinkVar('module');
- $this->Application->LinkVar('section');
- }
-}
-
-
-?>
+<?php
+
+class kMainTagProcessor extends TagProcessor {
+
+ function Init($prefix,$special)
+ {
+ parent::Init($prefix,$special);
+
+ $actions =& $this->Application->recallObject('kActions');
+ $actions->Set('t', $this->Application->GetVar('t'));
+ $actions->Set('sid', $this->Application->GetSID());
+ $actions->Set('m_opener', $this->Application->GetVar('m_opener') );
+
+ }
+
+ /**
+ * Used to handle calls where tag name
+ * match with existing php function name
+ *
+ * @param Tag $tag
+ * @return string
+ */
+ function ProcessTag(&$tag)
+ {
+ if ($tag->Tag=='include') $tag->Tag='MyInclude';
+ return parent::ProcessTag($tag);
+ }
+
+ /**
+ * Creates <base href ..> HTML tag for all templates
+ * affects future css, js files and href params of links
+ *
+ * @return string
+ * @access public
+ */
+ function Base_Ref()
+ {
+ $url = $this->Application->BaseURL().substr(THEMES_PATH,1).'/';
+ return '<base href="'.$url.'" />';
+ }
+
+ /**
+ * Returns base url for web-site
+ *
+ * @return string
+ * @access public
+ */
+ function BaseURL()
+ {
+ return $this->Application->BaseURL();
+ }
+
+ function TemplatesBase($params)
+ {
+ return $this->Application->BaseURL().THEMES_PATH;
+ }
+
+ function ProjectBase($params)
+ {
+ return $this->Application->BaseURL();
+ }
+
+ /*function Base($params)
+ {
+ return $this->Application->BaseURL().$params['add'];
+ }*/
+
+ /**
+ * Used to create link to any template.
+ * use "pass" paramter if "t" tag to specify
+ * prefix & special of object to be represented
+ * in resulting url
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function T($params)
+ {
+ //by default link to current template
+ $t = $this->SelectParam($params, 't,template');
+ unset($params['t']);
+ unset($params['template']);
+ $prefix=isset($params['prefix']) ? $params['prefix'] : ''; unset($params['prefix']);
+ $index_file = isset($params['index_file']) ? $params['index_file'] : null; unset($params['index_file']);
+
+ return $this->Application->HREF($t, $prefix, $params, $index_file);
+ }
+
+ function Link($params)
+ {
+ if (isset($params['template'])) {
+ $params['t'] = $params['template'];
+ unset($params['template']);
+ }
+ if (!isset($params['pass']) && !isset($params['no_pass'])) $params['pass'] = 'm';
+ if (isset($params['no_pass'])) unset($params['no_pass']);
+
+ if( $this->Application->GetVar('admin') ) $params['admin'] = 1;
+
+ return $this->T($params);
+ }
+
+ function Env($params)
+ {
+ $t = $params['template'];
+ unset($params['template']);
+ return $this->Application->BuildEnv($t, $params, 'm', null, false);
+ }
+
+ function FormAction($params)
+ {
+ return $this->Application->ProcessParsedTag('m', 't', Array( 'pass'=>'all,m' ) );
+ }
+
+ /*// NEEDS TEST
+ function Config($params)
+ {
+ return $this->Application->ConfigOption($params['var']);
+ }
+
+ function Object($params)
+ {
+ $name = $params['name'];
+ $method = $params['method'];
+
+ $tmp =& $this->Application->recallObject($name);
+ if ($tmp != null) {
+ if (method_exists($tmp, $method))
+ return $tmp->$method($params);
+ else
+ echo "Method $method does not exist in object ".get_class($tmp)." named $name<br>";
+ }
+ else
+ echo "Object $name does not exist in the appliaction<br>";
+ }*/
+
+ /**
+ * Tag, that always returns true.
+ * For parser testing purposes
+ *
+ * @param Array $params
+ * @return bool
+ * @access public
+ */
+ function True($params)
+ {
+ return true;
+ }
+
+ /**
+ * Tag, that always returns false.
+ * For parser testing purposes
+ *
+ * @param Array $params
+ * @return bool
+ * @access public
+ */
+ function False($params)
+ {
+ return false;
+ }
+
+ /**
+ * Returns block parameter by name
+ *
+ * @param Array $params
+ * @return stirng
+ * @access public
+ */
+ function Param($params)
+ {
+ //$parser =& $this->Application->recallObject('TemplateParser');
+ $res = $this->Application->Parser->GetParam($params['name']);
+ if ($res === false) $res = '';
+ if (isset($params['plus']))
+ $res += $params['plus'];
+ return $res;
+ }
+
+ /**
+ * Gets value of specified field from specified prefix_special and set it as parser param
+ *
+ * @param Array $params
+ */
+ /*function SetParam($params)
+ {
+ // <inp2:m_SetParam param="custom_name" src="cf:FieldName"/>
+ list($prefix_special, $field_name) = explode(':', $params['src']);
+
+ $object =& $this->Application->recallObject($prefix_special);
+ $name = $this->SelectParam($params, 'param,name,var');
+
+ $this->Application->Parser->SetParam($name, $object->GetField($field_name) );
+ }*/
+
+ /**
+ * Compares block parameter with value specified
+ *
+ * @param Array $params
+ * @return bool
+ * @access public
+ */
+ function ParamEquals($params)
+ {
+ //$parser =& $this->Application->recallObject('TemplateParser');
+ $name = $this->SelectParam($params, 'name,var,param');
+ $value = $params['value'];
+ return ($this->Application->Parser->GetParam($name) == $value);
+ }
+
+ /*function PHP_Self($params)
+ {
+ return $HTTP_SERVER_VARS['PHP_SELF'];
+ }
+ */
+
+ /**
+ * Returns session variable value by name
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function Recall($params)
+ {
+ $ret = $this->Application->RecallVar( $this->SelectParam($params,'name,var,param') );
+ $ret = ($ret === false && isset($params['no_null'])) ? '' : $ret;
+ if( getArrayValue($params,'special') || getArrayValue($params,'htmlchars')) $ret = htmlspecialchars($ret);
+
+ if ( getArrayValue($params, 'urlencode') ) $ret = urlencode($ret);
+
+ return $ret;
+ }
+
+ // bad style to store something from template to session !!! (by Alex)
+ // Used here only to test how session works, nothing more
+ function Store($params)
+ {
+ //echo"Store $params[name]<br>";
+ $name = $params['name'];
+ $value = $params['value'];
+ $this->Application->StoreVar($name,$value);
+ }
+
+ /**
+ * Sets application variable value(-s)
+ *
+ * @param Array $params
+ * @access public
+ */
+ function Set($params)
+ {
+ foreach ($params as $param => $value) {
+ $this->Application->SetVar($param, $value);
+ }
+ }
+
+ /**
+ * Increment application variable
+ * specified by number specified
+ *
+ * @param Array $params
+ * @access public
+ */
+ function Inc($params)
+ {
+ $this->Application->SetVar($params['param'], $this->Application->GetVar($params['param']) + $params['by']);
+ }
+
+ /**
+ * Retrieves application variable
+ * value by name
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function Get($params)
+ {
+ $ret = $this->Application->GetVar($this->SelectParam($params, 'name,var,param'), '');
+ return getArrayValue($params, 'htmlchars') ? htmlspecialchars($ret) : $ret;
+ }
+
+ /**
+ * Retrieves application constant
+ * value by name
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function GetConst($params)
+ {
+ return defined($this->SelectParam($params, 'name,const')) ? constant($this->SelectParam($params, 'name,const,param')) : '';
+ }
+
+ /**
+ * Retrieves configuration variable value by name
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function GetConfig($params)
+ {
+ $config_name = $this->SelectParam($params, 'name,var');
+ $ret = $this->Application->ConfigValue($config_name);
+ if( getArrayValue($params, 'escape') ) $ret = addslashes($ret);
+ return $ret;
+ }
+
+ function ConfigEquals($params)
+ {
+ $option = $this->SelectParam($params, 'name,option,var');
+ return $this->Application->ConfigValue($option) == getArrayValue($params, 'value');
+ }
+
+ /**
+ * Creates all hidden fields
+ * needed for kernel_form
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function DumpSystemInfo($params)
+ {
+ $actions =& $this->Application->recallObject('kActions');
+ $actions->Set('t', $this->Application->GetVar('t') );
+
+ $params = $actions->GetParams();
+ $o='';
+ foreach ($params AS $name => $val)
+ {
+ $o .= "<input type='hidden' name='$name' id='$name' value='$val'>\n";
+ }
+ return $o;
+ }
+
+ function GetFormHiddens($params)
+ {
+ $sid = $this->Application->GetSID();
+ $t = $this->SelectParam($params, 'template,t');
+ unset($params['template']);
+ $env = $this->Application->BuildEnv($t, $params, 'm', null, false);
+ $o = '';
+ if ( $this->Application->RewriteURLs() )
+ {
+ $session =& $this->Application->recallObject('Session');
+ if ($session->NeedQueryString()) {
+ $o .= "<input type='hidden' name='sid' id='sid' value='$sid'>\n";
+ }
+ }
+ else {
+ $o .= "<input type='hidden' name='env' id='env' value='$env'>\n";
+ }
+ return $o;
+ }
+
+ function Odd_Even($params)
+ {
+ $odd = $params['odd'];
+ $even = $params['even'];
+ if (!isset($params['var'])) {
+ $var = 'odd_even';
+ }
+ else {
+ $var = $params['var'];
+ }
+
+ if ($this->Application->GetVar($var) == 'even') {
+ if (!isset($params['readonly']) || !$params['readonly']) {
+ $this->Application->SetVar($var, 'odd');
+ }
+ return $even;
+ }
+ else {
+ if (!isset($params['readonly']) || !$params['readonly']) {
+ $this->Application->SetVar($var, 'even');
+ }
+ return $odd;
+ }
+ }
+
+ /**
+ * Returns phrase translation by name
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function Phrase($params)
+ {
+ // m:phrase name="phrase_name" default="Tr-alala" updated="2004-01-29 12:49"
+ if (array_key_exists('default', $params)) return $params['default']; //backward compatibility
+ $translation = $this->Application->Phrase($this->SelectParam($params, 'label,name,title'));
+ if (getArrayValue($params, 'escape')) {
+ $translation = htmlspecialchars($translation);
+ $translation = str_replace('\'', '&#39;', $translation);
+ $translation = addslashes($translation);
+ }
+ return $translation;
+ }
+
+ // for tabs
+ function is_active($params)
+ {
+ $test_templ = $this->SelectParam($params, 'templ,template,t');
+ if ( !getArrayValue($params,'allow_empty') )
+ {
+ $if_true=getArrayValue($params,'true') ? $params['true'] : 1;
+ $if_false=getArrayValue($params,'false') ? $params['false'] : 0;
+ }
+ else
+ {
+ $if_true=$params['true'];
+ $if_false=$params['false'];
+ }
+
+ if ( preg_match("/^".str_replace('/', '\/', $test_templ)."/", $this->Application->GetVar('t'))) {
+ return $if_true;
+ }
+ else {
+ return $if_false;
+ }
+ }
+
+ function IsNotActive($params)
+ {
+ return !$this->is_active($params);
+ }
+
+ function IsActive($params)
+ {
+ return $this->is_active($params);
+ }
+
+ function is_t_active($params)
+ {
+ return $this->is_active($params);
+ }
+
+ function CurrentTemplate($params)
+ {
+ return $this->is_active($params);
+ }
+
+ /**
+ * Checks if session variable
+ * specified by name value match
+ * value passed as parameter
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function RecallEquals($params)
+ {
+ $name = $params['var'];
+ $value = $params['value'];
+ return ($this->Application->RecallVar($name) == $value);
+ }
+
+ /**
+ * Checks if application variable
+ * specified by name value match
+ * value passed as parameter
+ *
+ * @param Array $params
+ * @return bool
+ * @access public
+ */
+ function GetEquals($params)
+ {
+ $name = $this->SelectParam($params, 'var,name,param');
+ $value = $params['value'];
+ if ($this->Application->GetVar($name) == $value) {
+ return 1;
+ }
+ }
+
+ /**
+ * Includes template
+ * and returns it's
+ * parsed version
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function MyInclude($params)
+ {
+ $BlockParser =& $this->Application->makeClass('TemplateParser');
+ $BlockParser->SetParams($params);
+ $parser =& $this->Application->Parser;
+ $this->Application->Parser =& $BlockParser;
+
+ $t = $this->SelectParam($params, 't,template,block,name');
+ $t = eregi_replace("\.tpl$", '', $t);
+
+ $templates_cache =& $this->Application->recallObject('TemplatesCache');
+
+ $res = $BlockParser->Parse( $templates_cache->GetTemplateBody($t), $t );
+
+ if ( !$BlockParser->DataExists && (isset($params['data_exists']) || isset($params['block_no_data'])) ) {
+ if ($block_no_data = getArrayValue($params, 'block_no_data')) {
+ $res = $BlockParser->Parse(
+ $templates_cache->GetTemplateBody($block_no_data, $silent),
+ $t
+ );
+ }
+ else {
+ $res = '';
+ }
+ }
+ $this->Application->Parser =& $parser;
+ $this->Application->Parser->DataExists = $this->Application->Parser->DataExists || $BlockParser->DataExists;
+ return $res;
+ }
+
+ /*function Kernel_Scripts($params)
+ {
+ return '<script type="text/javascript" src="'.PROTOCOL.SERVER_NAME.BASE_PATH.'/kernel3/js/grid.js"></script>';
+ }*/
+
+
+ /*function GetUserPermission($params)
+ {
+ // echo"GetUserPermission $params[name]";
+ if ($this->Application->RecallVar('user_type') == 1)
+ return 1;
+ else {
+ $perm_name = $params[name];
+ $aPermissions = unserialize($this->Application->RecallVar('user_permissions'));
+ if ($aPermissions)
+ return $aPermissions[$perm_name];
+ }
+ }*/
+
+
+ /**
+ * Set's parser block param value
+ *
+ * @param Array $params
+ * @access public
+ */
+ function AddParam($params)
+ {
+ $parser =& $this->Application->Parser; // recallObject('TemplateParser');
+ foreach ($params as $param => $value) {
+ $this->Application->SetVar($param, $value);
+ $parser->SetParam($param, $value);
+ $parser->AddParam('/\$'.$param.'/', $value);
+ }
+ }
+
+ /*function ParseToVar($params)
+ {
+ $var = $params['var'];
+ $tagdata = $params['tag'];
+ $parser =& $this->Application->Parser; //recallObject('TemplateParser');
+ $res = $this->Application->ProcessTag($tagdata);
+
+ $parser->SetParam($var, $res);
+ $parser->AddParam('/\$'.$var.'/', $res);
+ return '';
+ }*/
+
+ /*function TagNotEmpty($params)
+ {
+ $tagdata = $params['tag'];
+ $res = $this->Application->ProcessTag($tagdata);
+ return $res != '';
+ }*/
+
+ /*function TagEmpty($params)
+ {
+ return !$this->TagNotEmpty($params);
+ }*/
+
+ /**
+ * Parses block and returns result
+ *
+ * @param Array $params
+ * @return string
+ * @access public
+ */
+ function ParseBlock($params)
+ {
+ $parser =& $this->Application->Parser; // recallObject('TemplateParser');
+ return $parser->ParseBlock($params);
+ }
+
+ function RenderElement($params)
+ {
+ return $this->ParseBlock($params);
+ }
+
+ /**
+ * Checks if debug mode is on
+ *
+ * @return bool
+ * @access public
+ */
+ function IsDebugMode()
+ {
+ return $this->Application->isDebugMode();
+ }
+
+ function MassParse($params)
+ {
+ $qty = $params['qty'];
+ $block = $params['block'];
+ $mode = $params['mode'];
+
+ $o = '';
+ if ($mode == 'func') {
+ $func = create_function('$params', '
+ $o = \'<tr>\';
+ $o.= \'<td>a\'.$params[\'param1\'].\'</td>\';
+ $o.= \'<td>a\'.$params[\'param2\'].\'</td>\';
+ $o.= \'<td>a\'.$params[\'param3\'].\'</td>\';
+ $o.= \'<td>a\'.$params[\'param4\'].\'</td>\';
+ $o.= \'</tr>\';
+ return $o;
+ ');
+ for ($i=1; $i<$qty; $i++) {
+ $block_params['param1'] = rand(1, 10000);
+ $block_params['param2'] = rand(1, 10000);
+ $block_params['param3'] = rand(1, 10000);
+ $block_params['param4'] = rand(1, 10000);
+ $o .= $func($block_params);
+ }
+ return $o;
+ }
+
+ $block_params['name'] = $block;
+
+ for ($i=0; $i<$qty; $i++) {
+ $block_params['param1'] = rand(1, 10000);
+ $block_params['param2'] = rand(1, 10000);
+ $block_params['param3'] = rand(1, 10000);
+ $block_params['param4'] = rand(1, 10000);
+ $block_params['passed'] = $params['passed'];
+ $block_params['prefix'] = 'm';
+
+ $o.= $this->Application->ParseBlock($block_params, 1);
+ }
+ return $o;
+ }
+
+ function AfterScript($params)
+ {
+ $after_script = $this->Application->GetVar('after_script');
+ if ( $after_script ) {
+ return '<script type="text/javascript">'.$after_script.'</script>';
+ }
+ return '';
+ }
+
+ function LoggedIn($params)
+ {
+ return $this->Application->LoggedIn();
+ }
+
+ /**
+ * Checks if user is logged in and if not redirects it to template passed
+ *
+ * @param Array $params
+ */
+ function RequireLogin($params)
+ {
+ $t = $this->Application->GetVar('t');
+ if ($next_t = getArrayValue($params, 'next_template')) {
+ $t = $next_t;
+ }
+
+ if($permission_groups = getArrayValue($params, 'permissions'))
+ {
+ $permission_groups = explode('|', $permission_groups);
+ $group_has_permission = false;
+ foreach($permission_groups as $permission_group)
+ {
+ $permissions = explode(',', $permission_group);
+ $has_permission = true;
+ foreach($permissions as $permission)
+ {
+ $has_permission = $has_permission && $this->Application->CheckPermission($permission);
+ }
+ $group_has_permission = $group_has_permission || $has_permission;
+
+ if($group_has_permission)
+ {
+ return;
+ }
+ }
+
+ if( !$this->Application->LoggedIn() )
+ {
+ $this->Application->Redirect( $params['login_template'], Array('next_template'=>$t) );
+ }
+ else
+ {
+ $this->Application->Redirect( $params['no_permissions_template'] );
+ }
+ }
+
+ $condition = getArrayValue($params,'condition');
+ if(!$condition)
+ {
+ $condition = true;
+ }
+ else
+ {
+ if( substr($condition,0,1) == '!' )
+ {
+ $condition = !$this->Application->ConfigValue( substr($condition,1) );
+ }
+ else
+ {
+ $condition = $this->Application->ConfigValue($condition);
+ }
+ }
+
+ $group = $this->SelectParam($params, 'group');
+ $group_access = true;
+ if ($group) {
+ $conn =& $this->Application->DB;
+ $group_id = $conn->GetOne('SELECT GroupId FROM '.TABLE_PREFIX.'PortalGroup WHERE Name = '.$conn->qstr($group));
+ if ($group_id) {
+ $groups = explode(',', $this->Application->RecallVar('UserGroups'));
+ $group_access = in_array($group_id, $groups);
+ }
+ }
+
+ if( (!$this->Application->LoggedIn() || !$group_access) && $condition )
+ {
+ if ( $this->Application->LoggedIn() && !$group_access) {
+ $this->Application->Redirect( $params['no_group_perm_template'], Array('next_template'=>$t) );
+ }
+ $this->Application->Redirect( $params['login_template'], Array('next_template'=>$t) );
+ }
+ }
+
+ /**
+ * Checks if SSL is on and redirects to SSL URL if needed
+ * If SSL_URL is not defined in config - the tag does not do anything
+ * If for_logged_in_only="1" exits if user is not logged in.
+ * If called without params forces https right away. If called with by_config="1" checks the
+ * Require SSL setting from General Config and if it is ON forces https
+ *
+ * @param unknown_type $params
+ */
+ function CheckSSL($params)
+ {
+ $ssl = $this->Application->ConfigValue('SSL_URL');
+ if (!$ssl) return; //SSL URL is not set - no way to require SSL
+
+ $require = false;
+
+ if ($params['mode'] == 'required') {
+ $require = true;
+ if (isset($params['for_logged_in_only']) && $params['for_logged_in_only'] && !$this->Application->LoggedIn()) {
+ $require = false;
+ }
+
+ if (isset($params['condition'])) {
+ if (!$this->Application->ConfigValue($params['condition'])) {
+ $require = false;
+ }
+ }
+ }
+
+ $http_query =& $this->Application->recallObject('HTTPQuery');
+ $pass = $http_query->getRedirectParams();
+
+ if ($require) {
+ if (PROTOCOL == 'https://') {
+ $this->Application->SetVar('__KEEP_SSL__', 1);
+ return;
+ }
+ $this->Application->Redirect('', array_merge_recursive2($pass, Array('__SSL__' => 1)));
+ }
+ else {
+ if (PROTOCOL == 'https://' && $this->Application->ConfigValue('Force_HTTP_When_SSL_Not_Required')) {
+ if ($this->Application->GetVar('__KEEP_SSL__')) return;
+ $this->Application->Redirect('', array_merge_recursive2($pass, Array('__SSL__' => 0)));
+ }
+ }
+ }
+
+ function SaveReturnScript($params)
+ {
+ // admin/save_redirect.php?do=
+ $url = str_replace($this->Application->BaseURL(), '', $this->T($params) );
+ $url = explode('?', $url, 2);
+ $url = 'save_redirect.php?'.$url[1].'&do='.$url[0];
+
+ $this->Application->StoreVar('ReturnScript', $url);
+ }
+
+ function ConstOn($params)
+ {
+ $name = $this->SelectParam($params,'name,const');
+ return $this->Application->isDebugMode() && dbg_ConstOn($name);
+ }
+
+ function SetDefaultCategory($params)
+ {
+ $module_name = $params['module'];
+ $module =& $this->Application->recallObject('mod.'.$module_name);
+ $this->Application->SetVar('m_cat_id', $module->GetDBField('RootCat') );
+ }
+
+ function ImportRedirect($params)
+ {
+ $import_id = $this->Application->GetVar('import_id');
+ if ($import_id) {
+ // redirect forward to step3 (import parameters coosing)
+ $this->Application->StoreVar('ImportScriptID', $import_id);
+
+ $sql = 'SELECT *
+ FROM '.TABLE_PREFIX.'ImportScripts
+ WHERE is_id = '.$import_id;
+
+ $db =& $this->Application->GetADODBConnection();
+ $is_params = $db->GetRow($sql);
+
+ if ($is_params['is_type'] == 'db') {
+ $this->Application->Redirect('', null, '', 'import/step3.php');
+ }
+ elseif ($is_params['is_type'] == 'csv') {
+ $module = strtolower($is_params['is_Module']);
+ $template = $module.'/import';
+ $sql = 'SELECT Var
+ FROM '.TABLE_PREFIX.'Modules
+ WHERE LOWER(Name) = '.$db->qstr($module);
+ $item_prefix = $db->GetOne($sql);
+ $pass_params = Array('m_opener' => 'd', $item_prefix.'.import_id' => 0, $item_prefix.'.import_event' => 'OnNew', 'pass' => 'm,'.$item_prefix.'.import');
+ $this->Application->Redirect($template, $pass_params);
+ }
+ }
+ else {
+ // redirect back to step2 (import type choosing)
+ $this->Application->Redirect('', null, '', 'import/step2.php');
+ }
+ }
+
+ function GetSectionTitle($params)
+ {
+ $params['name'] = replaceModuleSection($params['phrase']);
+ return $this->Phrase($params);
+ }
+
+ function GetSectionIcon($params)
+ {
+ return replaceModuleSection($params['icon']);
+ }
+
+ function StoreSystemVars($params)
+ {
+ // save theese variables to session, because they are useful for most configuration templates
+ $this->Application->LinkVar('module');
+ $this->Application->LinkVar('section');
+ }
+
+ function XMLTemplate($params)
+ {
+ define('DBG_SKIP_REPORTING', 1);
+ header('Content-type: text/xml');
+ }
+}
+
+
+?>
Property changes on: branches/unlabeled/unlabeled-1.37.2/core/kernel/processors/main_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.37
\ No newline at end of property
+1.37.2.1
\ No newline at end of property

Event Timeline