Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Wed, Jul 16, 7:19 AM

in-portal

This file is larger than 256 KB, so syntax highlighting was skipped.
Index: trunk/kernel/units/users/users_event_handler.php
===================================================================
--- trunk/kernel/units/users/users_event_handler.php (revision 3249)
+++ trunk/kernel/units/users/users_event_handler.php (revision 3250)
@@ -1,805 +1,805 @@
<?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
{
- $unset_vars = Array(ENV_VAR_NAME, 'rewrite', 'url', 'Action');
+ $unset_vars = Array(ENV_VAR_NAME, 'rewrite', '_mod_rw_url_', 'Action');
$http_query =& $this->Application->recallObject('HTTPQuery');
$get = $http_query->Get;
foreach ($unset_vars as $var_name)
{
if( isset($get[$var_name]) ) unset( $get[$var_name] );
}
$t = $this->Application->GetVar('t');
$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);
}
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;
$event->SetRedirectParam('js_redirect', 1);
}
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)
{
}
function OnLogout(&$event)
{
$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);
$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();
$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) ?
mktime() > $PwRequestTime + $MinPwResetDelay :
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 > 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", time());
$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;
}
}
}
function OnCheckExpiredMembership(&$event)
{
$sql = 'SELECT PortalUserId FROM '.TABLE_PREFIX.'UserGroup
WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.mktime();
$user_ids = $this->Conn->GetCol($sql);
if(is_array($user_ids) && count($user_ids) > 0)
{
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 < '.mktime();
$this->Conn->Query($sql);
$pre_expiration = mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
$sql = 'SELECT PortalUserId, GroupId FROM '.TABLE_PREFIX.'UserGroup
WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.$pre_expiration.'
AND ExpirationReminderSent = 0';
$res = $this->Conn->Query($sql);
if(is_array($res) && count($res) > 0)
{
$conditions = Array();
foreach($res 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);
}
}
/**
* 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: trunk/kernel/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.40
\ No newline at end of property
+1.41
\ No newline at end of property
Index: trunk/kernel/units/general/cat_dbitem.php
===================================================================
--- trunk/kernel/units/general/cat_dbitem.php (revision 3249)
+++ trunk/kernel/units/general/cat_dbitem.php (revision 3250)
@@ -1,235 +1,260 @@
<?php
class kCatDBItem extends kDBItem {
var $CustomFields = Array();
function Init($prefix, $special, $event_params = null)
{
parent::Init($prefix, $special, $event_params);
$item_type = $this->Application->getUnitOption($this->Prefix, 'ItemType');
$sql = 'SELECT CustomFieldId, FieldName FROM '.TABLE_PREFIX.'CustomField WHERE Type = %s';
$this->CustomFields = $this->Conn->GetCol( sprintf($sql, $item_type), 'FieldName' );
}
function Create()
{
if (!$this->Validate()) return false;
$this->checkFilename();
$this->SetDBField('ResourceId', $this->Application->NextResourceId());
$this->SetDBField('Modified', mktime());
$this->SetDBField('CreatedById', $this->Application->GetVar('u_id'));
$this->generateFilename();
$ret = parent::Create();
if($ret)
{
if ( kTempTablesHandler::IsTempTable($this->TableName) ) {
$table = kTempTablesHandler::GetTempName(TABLE_PREFIX.'CategoryItems');
}
else {
$table = TABLE_PREFIX.'CategoryItems';
}
$cat_id = $this->Application->GetVar('m_cat_id');
$query = 'INSERT INTO '.$table.' (CategoryId,ItemResourceId,PrimaryCat)
VALUES ('.$cat_id.','.$this->GetField('ResourceId').',1)';
$this->Conn->Query($query);
}
return $ret;
}
function Update($id=null)
{
$this->checkFilename();
$this->VirtualFields['ResourceId'] = true;
$this->SetDBField('Modified', mktime());
$this->SetDBField('ModifiedById', $this->Application->GetVar('u_id'));
$this->generateFilename();
return parent::Update($id);
}
function checkFilename()
{
if( !$this->GetDBField('AutomaticFilename') )
{
$filename = $this->GetDBField('Filename');
$this->SetDBField('Filename', $this->stripDisallowed($filename) );
}
}
function Copy($cat_id=null)
{
if (!isset($cat_id)) $cat_id = $this->Application->GetVar('m_cat_id');
$this->NameCopy($cat_id);
return $this->Create($cat_id);
}
function NameCopy($master=null, $foreign_key=null)
{
$title_field = $this->Application->getUnitOption($this->Prefix, 'TitleField');
if (!$title_field) return;
$new_name = $this->GetDBField($title_field);
$cat_id = $this->Application->GetVar('m_cat_id');
$original_checked = false;
do {
if ( preg_match('/Copy ([0-9]*) *of (.*)/', $new_name, $regs) ) {
$new_name = 'Copy '.( (int)$regs[1] + 1 ).' of '.$regs[2];
}
elseif ($original_checked) {
$new_name = 'Copy of '.$new_name;
}
$query = 'SELECT '.$title_field.' FROM '.$this->TableName.'
LEFT JOIN '.TABLE_PREFIX.'CategoryItems ON
('.TABLE_PREFIX.'CategoryItems.ItemResourceId = '.$this->TableName.'.ResourceId)
WHERE ('.TABLE_PREFIX.'CategoryItems.CategoryId = '.$cat_id.') AND '.
$title_field.' = '.$this->Conn->qstr($new_name);
$res = $this->Conn->GetOne($query);
$original_checked = true;
} while ($res !== false);
$this->SetDBField($title_field, $new_name);
}
function MoveToCat($cat_id=null)
{
// $this->NameCopy();
$cat_id = $this->Application->GetVar('m_cat_id');
// check if the product already exists in destination cat
$query = 'SELECT PrimaryCat FROM '.TABLE_PREFIX.'CategoryItems
WHERE CategoryId = '.$cat_id.' AND ItemResourceId = '.$this->GetDBField('ResourceId');
// if it's not found is_primary will be FALSE, if it's found but not primary it will be int 0
$is_primary = $this->Conn->GetOne($query);
$exists = $is_primary !== false;
if ($exists) { // if the Product already exists in destination category
if ($is_primary) return; // do nothing when we paste to primary
// if it's not primary - delete it from destination category,
// as we will move it from current primary below
$query = 'DELETE FROM '.TABLE_PREFIX.'CategoryItems
WHERE ItemResourceId = '.$this->GetDBField('ResourceId').' AND CategoryId = '.$cat_id;
$this->Conn->Query($query);
}
$query = 'UPDATE '.TABLE_PREFIX.'CategoryItems SET CategoryId = '.$cat_id.
' WHERE ItemResourceId = '.$this->GetDBField('ResourceId').' AND PrimaryCat = 1';
$this->Conn->Query($query);
$this->Update();
}
// We need to delete CategoryItems record when deleting product
function Delete($id=null)
{
if( isset($id) ) {
$this->setID($id);
}
$this->Load($this->GetID());
$ret = parent::Delete();
if ($ret) {
$query = 'DELETE FROM '.TABLE_PREFIX.'CategoryItems WHERE ItemResourceId = '.$this->GetDBField('ResourceId');
$this->Conn->Query($query);
}
return $ret;
}
/**
* Deletes item from categories
*
* @param Array $delete_category_ids
* @author Alex
*/
function DeleteFromCategories($delete_category_ids)
{
$id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); // because item was loaded before by ResourceId
$ci_table = $this->Application->getUnitOption('ci', 'TableName');
$resource_id = $this->GetDBField('ResourceId');
$item_cats_sql = 'SELECT CategoryId FROM %s WHERE ItemResourceId = %s';
$delete_category_items_sql = 'DELETE FROM %s WHERE ItemResourceId = %s AND CategoryId IN (%s)';
$category_ids = $this->Conn->GetCol( sprintf($item_cats_sql, $ci_table, $resource_id) );
$cats_left = array_diff($category_ids, $delete_category_ids);
if(!$cats_left)
{
$sql = 'SELECT %s FROM %s WHERE ResourceId = %s';
$ids = $this->Conn->GetCol( sprintf($sql, $id_field, $this->TableName, $resource_id) );
$temp =& $this->Application->recallObject($this->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
$temp->DeleteItems($this->Prefix, $this->Special, $ids);
}
else
{
$this->Conn->Query( sprintf($delete_category_items_sql, $ci_table, $resource_id, implode(',', $delete_category_ids) ) );
$sql = 'SELECT CategoryId FROM %s WHERE PrimaryCat = 1 AND ItemResourceId = %s';
$primary_cat_id = $this->Conn->GetCol( sprintf($sql, $ci_table, $resource_id) );
if( count($primary_cat_id) == 0 )
{
$sql = 'UPDATE %s SET PrimaryCat = 1 WHERE (CategoryId = %s) AND (ItemResourceId = %s)';
$this->Conn->Query( sprintf($sql, $ci_table, reset($cats_left), $resource_id ) );
}
}
}
function SetCustomField($field, $value)
{
$cf_id = getArrayValue($this->CustomFields, $field);
if(!$cf_id) return false;
$data_table = TABLE_PREFIX.'CustomMetaData';
$sql = 'SELECT CustomDataId FROM '.$data_table.' WHERE CustomFieldId = %s AND ResourceId = %s';
$data_id = (int)$this->Conn->GetOne( sprintf($sql, $cf_id, $this->GetDBField('ResourceId') ) );
$lang_id = $this->Application->GetVar('lang.current_id');
$sql = 'REPLACE INTO '.$data_table.'(CustomDataId,ResourceId,CustomFieldId,Value,l'.$lang_id.'_Value) VALUES (%1$s,%2$s,%3$s,%4$s,%4$s)';
$this->Conn->Query( sprintf($sql, $data_id, $this->GetDBField('ResourceId'), $cf_id, $this->Conn->qstr($value) ) );
}
/**
* replace not allowed symbols with "_" chars + remove duplicate "_" chars in result
*
* @param string $string
* @return string
*/
function stripDisallowed($string)
{
$not_allowed = Array( ' ', '\\', '/', ':', '*', '?', '"', '<', '>', '|',
'~', '!', '@', '#', '$', '%', '^', '&', '(', ')',
'+', '=', '-', '{', '}', ']', '[', "'", ';', '.', ',');
$string = str_replace($not_allowed, '_', $string);
$string = preg_replace('/(_+)/', '_', $string);
-
- while( preg_match('/(.*)_([\d]+)$/', $string, $rets) )
- {
- $string = $rets[1];
- }
+ $string = $this->checkAutoFilename($string);
return $string;
}
+ function checkAutoFilename($filename)
+ {
+ if(!$filename || $this->GetID() == 0 ) return $filename;
+
+ $sql = 'SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE Filename = '.$this->Conn->qstr($filename);
+ $found_item_id = $this->Conn->GetOne($sql);
+ $has_page = preg_match('/(.*)_([\d]+)([a-z]*)$/', $filename, $rets);
+ if( ($found_item_id != $this->GetID()) || $has_page ) // other category has same filename as ours OR we have filename, that ends with _number
+ {
+ $append = $found_item_id ? 'a' : '';
+ if($has_page)
+ {
+ $filename = $rets[1].'_'.$rets[2];
+ $append = $rets[3] ? $rets[3] : 'a';
+ }
+
+ $sql = 'SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE (Filename = %s) AND ('.$this->IDField.' != '.$this->GetID().')';
+ while ( $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($filename.$append)) ) > 0 )
+ {
+ if (substr($append, -1) == 'z') $append .= 'a';
+ $append = substr($append, 0, strlen($append) - 1) . chr( ord( substr($append, -1) ) + 1 );
+ }
+
+ return $filename.$append;
+ }
+
+ return $filename;
+ }
+
/**
* Generate item's filename based on it's title field value
*
* @return string
*/
function generateFilename()
{
if ( !$this->GetDBField('AutomaticFilename') && $this->GetDBField('Filename') ) return false;
$title_field = $this->Application->getUnitOption($this->Prefix, 'TitleField');
$name = $this->stripDisallowed( $this->GetDBField($title_field) );
if ( $name != $this->GetDBField('Filename') ) $this->SetDBField('Filename', $name);
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/general/cat_dbitem.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.13
\ No newline at end of property
+1.14
\ No newline at end of property
Index: trunk/kernel/units/general/inp1_parser.php
===================================================================
--- trunk/kernel/units/general/inp1_parser.php (revision 3249)
+++ trunk/kernel/units/general/inp1_parser.php (revision 3250)
@@ -1,194 +1,194 @@
<?php
class Inp1Parser extends kBase {
var $InportalInited = false;
function Parse($tname, $template_body)
{
global $objTemplate, $var_list, $var_list_update;
if ( !$this->InportalInited) {
//$save_t = $this->Application->GetVar('t');
$this->InitInPortal();
$var_list['t'] = $this->cutTPL($var_list['t']);
if($var_list['t'] != $this->Application->GetVar('t'))
{
$get = $_GET;
- unset($get['env'], $get['Action'], $get['url'], $get['rewrite']);
+ unset($get['env'], $get['Action'], $get['_mod_rw_url_'], $get['rewrite']);
$this->Application->StoreVar('K4_Template_Referer', $this->Application->GetVar('t') );
$this->Application->Redirect($var_list['t'], $get);
}
}
$var_list['t'] = $this->cutTPL($var_list['t']);
if ($var_list['t'] != $this->Application->GetVar('t')) {
//$var_list['t'] = rtrim($var_list['t'],'.tpl');
$t = $var_list['t'];
$this->Application->SetVar('t', $t);
$template_cache =& $this->Application->recallObject('TemplatesCache');
$template_body = $this->Application->Parser->Parse( $template_cache->GetTemplateBody($t), $t, 0 );
}
else {
$template_body = $objTemplate->ParseTemplateFromBuffer($tname, $template_body);
}
return $template_body;
}
function cutTPL($tname)
{
if( substr($tname,-4) == '.tpl' )
{
return substr($tname, 0, strlen($tname)-4 );
}
return $tname;
}
function InitInPortal()
{
$this->InportalInited = true;
/*global $pathtoroot, $FrontEnd, $indexURL, $rootURL, $secureURL, $var_list, $CurrentTheme,
$objThemes, $objConfig, $m_var_list, $timeout, $objLanguages, $objLanguageCache,
$TemplateRoot, $objTemplate, $html, $objSession, $Errors, $objCatList, $objUsers,
$env, $mod_prefix, $ExtraVars, $timestart, $timeend, $timeout, $sqlcount, $totalsql,
$template_path, $modules_loaded, $mod_root_cats, $objModules, $objItemTypes;*/
global $sec, $usec, $timestart, $pathtoroot, $FrontEnd, $indexURL, $kernel_version, $FormError,
$FormValues, $ItemTables, $KeywordIgnore, $debuglevel,
$LogLevel, $LogFile, $rq_value, $rq_name, $dbg_constMap, $dbg_constValue, $dbg_constName,
$debugger, $g_LogFile, $LogData, $Errors,
$g_DebugMode, $totalsql, $sqlcount, $objConfig, $ItemTypePrefixes, $ItemTagFiles, $objModules,
$objSystemCache, $objBanList, $objItemTypes, $objThemes, $objLanguages, $objImageList, $objFavorites,
$objUsers, $objGroups, $DownloadId, $objPermissions, $objPermCache, $m_var_list, $objCatList,
$objCustomFieldList, $objCustomDataList, $objCountCache, $CRLF, $objMessageList, $objEmailQueue,
$ExtraVars, $adodbConnection, $sql, $rs, $mod_prefix, $modules_loaded, $name,
$template_path, $mod_root_cats, $value, $mod, $ItemTypes,
$ParserFiles, $SessionQueryString, $var_list, $objSession,
$orderByClause, $TemplateRoot, $ip, $UseSession, $Action, $CookieTest, $sessionId,
$var_list_update, $CurrentTheme, $UserID, $objCurrentUser, $objLanguageCache,
$folder_name, $objLinkList, $tag_override, $timeZones, $siteZone, $serverZone,
$lastExpire, $diffZone, $date, $nowDate, $lastExpireDate, $SearchPerformed,
$TotalMessagesSent, $ado, $adminDir, $rootURL, $secureURL, $html, $timeout,
$pathchar, $objTemplate, $objTopicList, $objArticleList, $objPostingList, $objCensorList,
$objSmileys, $objPMList;
$pathtoroot = $this->Application->IsAdmin() ? '../' : './';
$pathtoroot = realpath($pathtoroot)."/";
if (!file_exists($pathtoroot."config.php")) {
echo "In-Portal is probably not installed, or configuration file is missing.<br>";
echo "Please use the installation script to fix the problem.<br><br>";
echo "<a href='admin/install.php'>Go to installation script</a><br><br>";
flush();
die();
}
//ob_start();
$FrontEnd=1;
$indexURL="../../index.php"; //Set to relative URL from the theme directory
/* initalize the in-portal system */
include_once(FULL_PATH."/kernel/startup.php");
$rootURL="http://".ThisDomain().$objConfig->Get("Site_Path");
//$secureURL = "https://".ThisDomain().$objConfig->Get("Site_Path");
$secureURL = $rootURL;
$html= '';
if( !$var_list['t'] ) $var_list['t'] = 'index';
if( !isset($CurrentTheme) ) $CurrentTheme = null;
$theme_id = defined('DBG_FORCE_THEME') && DBG_FORCE_THEME ? DBG_FORCE_THEME : $m_var_list['theme'];
if( !is_object($CurrentTheme) ) $CurrentTheme = $objThemes->GetItem($theme_id);
if(is_object($CurrentTheme))
{
if(!$CurrentTheme->Get("Enabled"))
{
$CurrentTheme = $objThemes->GetItem($objThemes->GetPrimaryTheme());
}
if((int)$CurrentTheme->Get("ThemeId")>0)
{
$timeout = $CurrentTheme->Get("CacheTimeout");
$objLanguageCache->LoadTemplateCache($var_list["t"],$timeout,$CurrentTheme->Get("ThemeId"));
$objLanguageCache->LoadCachedVars($objSession->Get("Language"));
$TemplateRoot = $CurrentTheme->ThemeDirectory()."/";
$objTemplate = new clsTemplateList($TemplateRoot);
//$html = $objTemplate->ParseTemplate($var_list["t"]);
}
else
{
echo "No Primary Theme Selected";
die();
}
}
else
{
echo "No Primary Theme Selected\n";
die();
}
if(is_object($objSession))
{
$k4_referer = $objSession->GetVariable('K4_Template_Referer');
if($k4_referer)
{
$_local_t = $k4_referer;
$this->Application->RemoveVar('K4_Template_Referer');
}
$objSession->SetVariable("Template_Referer", $_local_t);
}
if($objTemplate->ErrorNo == -1)
{
$html = $objTemplate->ParseTemplate('error_template');
}
//$html = replacePngTags($html);
LogEntry("Output Start\n");
$html .= "<!-- Page Execution Time: ".( isset($ptime) ? $ptime : 0 )." -->";
if( IsDebugMode() )
{
if($Action) $debugger->setHTMLByIndex(1,'Front Action: <b>'.$Action.'</b>','append');
//$html = '<a href="javascript:toggleDebugLayer();">Show Debugger</a><br>'.$html;
}
else
{
// header("Content-length: ".strlen($html));
}
// header("Connection-Type: Keep-Alive");
// echo $html;
LogEntry("Output End\n");
if( isset($template) && $template->ErrorNo != 0 )
{
print "\n(".$objTemplate->ErrorNo.") ".$objTemplate->ErrorStr."\n";
}
LogEntry("Output Complete\n");
$objLanguageCache->SaveTemplateCache();
LogEntry("Templates Cached\n");
//if($objSession->SessionEnabled())
// $objSession->SaveSessionData();
//echo "Cookie: <PRE>"; print_r($_COOKIE); echo "</PRE><br>\n";
//ob_end_flush();
$timeend = getmicrotime();
$diff = $timeend - $timestart;
LogEntry("\nTotal Queries Executed: $sqlcount in $totalsql seconds\n");
LogEntry("\nPage Execution Time: $diff seconds\n", true);
if($LogFile)
fclose($LogFile);
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/general/inp1_parser.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.11
\ No newline at end of property
+1.12
\ No newline at end of property
Index: trunk/kernel/include/category.php
===================================================================
--- trunk/kernel/include/category.php (revision 3249)
+++ trunk/kernel/include/category.php (revision 3250)
@@ -1,2492 +1,2482 @@
<?php
define('TYPE_CATEGORY', 0);
$DownloadId=0;
RegisterPrefix("clsCategory","cat","kernel/include/category.php");
class clsCategory extends clsItem
{
var $Permissions;
function clsCategory($CategoryId=NULL)
{
global $objSession;
$this->clsItem(TRUE);
$this->tablename = GetTablePrefix()."Category";
$this->type=1;
$this->BasePermission ="CATEGORY";
$this->id_field = "CategoryId";
$this->TagPrefix = "cat";
$this->debuglevel=0;
/* keyword highlighting */
$this->OpenTagVar = "Category_Highlight_OpenTag";
$this->CloseTagVar = "Category_Highlight_CloseTag";
if($CategoryId!=NULL)
{
$this->LoadFromDatabase($CategoryId);
$this->Permissions = new clsPermList($CategoryId,$objSession->Get("GroupId"));
}
else
{
$this->Permissions = new clsPermList();
}
}
function StripDisallowed($string)
{
$not_allowed = Array( ' ', '\\', '/', ':', '*', '?', '"', '<', '>', '|',
'~', '!', '@', '#', '$', '%', '^', '&', '(', ')',
'+', '=', '-', '{', '}', ']', '[', "'", ';', '.', ',');
$string = str_replace($not_allowed, '_', $string);
$string = preg_replace('/(_+)/', '_', $string);
$string = $this->checkAutoFilename($string);
return $string;
}
function checkAutoFilename($filename)
{
global $m_var_list;
if(!$filename || $this->UniqueId() == 0 ) return $filename;
$db =& GetADODBConnection();
-
- $sql = 'SELECT Filename FROM '.$this->tablename.' WHERE CategoryId = '.$this->UniqueId();
- $db_filename = $db->GetOne($sql);
-
- $check = true;
-// $check = $db_filename != $filename;
- if($check)
+ $sql = 'SELECT CategoryId FROM '.$this->tablename.' WHERE (Filename = '.$db->qstr($filename).') AND (ParentId = '.$m_var_list['cat'].')';
+ $category_id = $db->GetOne($sql);
+ $has_page = preg_match('/(.*)_([\d]+)([a-z]*)$/', $filename, $rets);
+ if( ($category_id != $this->UniqueId()) || $has_page ) // other category has same filename as ours OR we have filename, that ends with _number
{
- // 2. filename was changed (manually or automatically)
- $sql = 'SELECT CategoryId FROM '.$this->tablename.' WHERE (Filename = '.$db->qstr($filename).') AND (ParentId = '.$m_var_list['cat'].')';
- $category_id = $db->GetOne($sql);
- $has_page = preg_match('/(.*)_([\d]+)([a-z]*)$/', $filename, $rets);
- if( ($category_id != $this->UniqueId()) || $has_page ) // other category has same filename as ours OR we have filename, that ends with _number
+ $append = $category_id ? 'a' : '';
+ if($has_page)
+ {
+ $filename = $rets[1].'_'.$rets[2];
+ $append = $rets[3] ? $rets[3] : 'a';
+ }
+
+ $sql = 'SELECT CategoryId FROM '.$this->tablename.' WHERE (Filename = %s) AND (CategoryId != '.$this->UniqueId().') AND (ParentId = '.$m_var_list['cat'].')';
+ while ( $db->GetOne( sprintf($sql, $db->qstr($filename.$append)) ) > 0 )
{
- $append = $category_id ? 'a' : '';
- if($has_page)
- {
- $filename = $rets[1].'_'.$rets[2];
- $append = $rets[3] ? $rets[3] : 'a';
- }
-
- $sql = 'SELECT CategoryId FROM '.$this->tablename.' WHERE (Filename = %s) AND (CategoryId != '.$this->UniqueId().') AND (ParentId = '.$m_var_list['cat'].')';
- while ( $db->GetOne( sprintf($sql, $db->qstr($filename.$append)) ) > 0 )
- {
- if (substr($append, -1) == 'z') $append .= 'a';
- $append = substr($append, 0, strlen($append) - 1) . chr( ord( substr($append, -1) ) + 1 );
- }
-
- return $filename.$append;
+ if (substr($append, -1) == 'z') $append .= 'a';
+ $append = substr($append, 0, strlen($append) - 1) . chr( ord( substr($append, -1) ) + 1 );
}
+
+ return $filename.$append;
}
return $filename;
}
function GenerateFilename()
{
if ( !$this->Get('AutomaticFilename') && $this->Get('Filename') ) return false;
$name = $this->StripDisallowed( $this->Get('Name') );
if ( $name != $this->Get('Filename') ) $this->Set('Filename', $name);
}
function ClearCacheData()
{
/*$env = "':m".$this->Get("CategoryId")."%'";
DeleteTagCache("m_list_cats","",$env); */
DeleteTagCache("m_itemcount","Category%");
DeleteModuleTagCache('kernel');
}
function DetectChanges($name, $value)
{
global $objSession;
//print_pre($_POST);
if ($this->Data[$name] != $value) {
//echo "$name Modified tt ".$this->Data[$name]." tt $value<br>";
if (!stristr($name, 'Modif') && !stristr($name, 'Created')) {
if ($objSession->GetVariable("HasChanges") != 1) {
$objSession->SetVariable("HasChanges", 2);
}
}
}
}
function Delete()
{
global $CatDeleteList;
if(!is_array($CatDeleteList))
$CatDeleteList = array();
if($this->UsingTempTable()==FALSE)
{
$this->Permissions->Delete_CatPerms($this->Get("CategoryId"));
// TODO: find way to delete specific category cache only
/*$sql = "DELETE FROM ".GetTablePrefix()."CountCache WHERE CategoryId=".$this->Get("CategoryId");
$this->adodbConnection->Execute($sql);*/
$CatDeleteList[] = $this->Get("CategoryId");
if($this->Get("CreatedById")>0)
$this->SendUserEventMail("CATEGORY.DELETE",$this->Get("CreatedById"));
$this->SendAdminEventMail("CATEGORY.DELETE");
parent::Delete();
$this->ClearCacheData();
}
else
{
parent::Delete();
}
}
function Update($UpdatedBy=NULL)
{
parent::Update($UpdatedBy);
$this->GenerateFilename();
parent::Update($UpdatedBy);
if ($this->tablename == GetTablePrefix().'Category') $this->ClearCacheData();
}
function Create()
{
if( (int)$this->Get('CreatedOn') == 0 ) $this->Set('CreatedOn', date('U') );
parent::Create();
$this->GenerateFilename();
parent::Update();
if ($this->tablename == GetTablePrefix().'Category') $this->ClearCacheData();
}
function SetParentId($value)
{
//Before we set a parent verify that propsed parent is not our child.
//Otherwise it will cause recursion.
$id = $this->Get("CategoryId");
$path = $this->Get("ParentPath");
$sql = sprintf("SELECT CategoryId From ".GetTablePrefix()."Category WHERE ParentPath LIKE '$path%' AND CategoryId = %d ORDER BY ParentPath",$value);
$rs = $this->adodbConnection->SelectLimit($sql,1,0);
if(!$rs->EOF)
{
return;
}
$this->Set("ParentId",$value);
}
function Approve()
{
global $objSession;
if($this->Get("CreatedById")>0)
$this->SendUserEventMail("CATEGORY.APPROVE",$this->Get("CreatedById"));
$this->SendAdminEventMail("CATEGORY.APPROVE");
$this->Set("Status", 1);
$this->Update();
}
function Deny()
{
global $objSession;
if($this->Get("CreatedById")>0)
$this->SendUserEventMail("CATEGORY.DENY",$this->Get("CreatedById"));
$this->SendAdminEventMail("CATEGORY.DENY");
$this->Set("Status", 0);
$this->Update();
}
function IsEditorsPick()
{
return $this->Is("EditorsPick");
}
function SetEditorsPick($value)
{
$this->Set("EditorsPick", $value);
}
function GetSubCats($limit=NULL, $target_template=NULL, $separator=NULL, $anchor=NULL, $ending=NULL, $class=NULL)
{
global $m_var_list, $m_var_list_update, $var_list, $var_list_update;
$sql = "SELECT CategoryId, Name from ".GetTablePrefix()."Category where ParentId=".$this->Get("CategoryId")." AND Status=1 ORDER BY Priority";
if(isset($limit))
{
$rs = $this->adodbConnection->SelectLimit($sql, $limit, 0);
}
else
{
$rs = $this->adodbConnection->Execute($sql);
}
$count=1;
$class_name = is_null($class)? "catsub" : $class;
while($rs && !$rs->EOF)
{
$var_list_update["t"] = !is_null($target_template)? $target_template : $var_list["t"];
$m_var_list_update["cat"] = $rs->fields["CategoryId"];
$m_var_list_update["p"] = "1";
$cat_name = $rs->fields['Name'];
if (!is_null($anchor))
$ret .= "<a class=\"$class_name\" href=\"". HREF_Wrapper() . "\">$cat_name</a>";
else
$ret .= "<span=\"$class_name\">$cat_name</span>";
$rs->MoveNext();
if(!$rs->EOF)
{
$ret.= is_null($separator)? ", " : $separator;
}
}
if(strlen($ret))
$ret .= is_null($ending)? " ..." : $ending;
unset($var_list_update["t"], $m_var_list_update["cat"], $m_var_list_update["p"]);
return $ret;
}
function Validate()
{
global $objSession;
$dataValid = true;
if(!isset($this->m_Type))
{
$Errors->AddError("error.fieldIsRequired",'Type',"","","clsCategory","Validate");
$dataValid = false;
}
if(!isset($this->m_Name))
{
$Errors->AddError("error.fieldIsRequired",'Name',"","","clsCategory","Validate");
$dataValid = false;
}
if(!isset($this->m_Description))
{
$Errors->AddError("error.fieldIsRequired",'Description',"","","clsCategory","Validate");
$dataValid = false;
}
if(!isset($this->m_Visible))
{
$Errors->AddError("error.fieldIsRequired",'Visible',"","","clsCategory","Validate");
$dataValid = false;
}
if(!isset($this->m_CreatedById))
{
$Errors->AddError("error.fieldIsRequired",'CreatedBy',"","","clsCategory","Validate");
$dataValid = false;
}
return $dataValid;
}
function UpdateCachedPath()
{
if( $this->UsingTempTable() == true) return ;
$Id = $this->Get('CategoryId');
$Id2 = $Id;
$path_parts = Array();
$nav_parts = Array();
$named_parts = Array();
do
{
$rs = $this->adodbConnection->Execute('SELECT ParentId, Name, Filename FROM '.$this->tablename.' WHERE CategoryId = '.$Id2);
$path_parts[] = $Id2;
$nav_parts[] = $rs->fields['Name'];
$named_parts[] = $rs->fields['Filename'];
$Id2 = ($rs && !$rs->EOF) ? $rs->fields['ParentId'] : '0';
}while ($Id2 != '0');
$parent_path = '|'.implode('|', array_reverse($path_parts) ).'|';
$nav_bar = implode('>', array_reverse($nav_parts) );
$named_path = implode('/', array_reverse($named_parts) );
if($this->Get('ParentPath') != $parent_path || $this->Get('CachedNavbar') != $nav_bar || $this->Get('NamedParentPath') != $named_path )
{
$this->Set('ParentPath', $parent_path);
$this->Set('CachedNavbar', $nav_bar);
$this->Set('NamedParentPath', $named_path);
$this->Update();
}
}
function GetCachedNavBar()
{
$res = $this->Get("CachedNavbar");
if(!strlen($res))
{
$this->UpdateCachedPath();
$res = $this->Get("CachedNavbar");
}
return $res;
}
function Increment_Count()
{
$this->Increment("CachedDescendantCatsQty");
}
function Decrement_Count()
{
$this->Decrement("CachedDescendantCatsQty");
$this->Update();
}
function LoadFromDatabase($Id)
{
global $objSession, $Errors, $objConfig;
if($Id==0)
return FALSE;
if(!isset($Id))
{
$Errors->AddError("error.AppError",NULL,'Internal error: LoadFromDatabase id',"",get_class($this),"LoadFromDatabase");
return false;
}
$sql = sprintf("SELECT * FROM ".$this->tablename." WHERE CategoryId = '%s'",$Id);
$result = $this->adodbConnection->Execute($sql);
if ($result === false)
{
$Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"LoadFromDatabase");
return false;
}
$data = $result->fields;
if(is_array($data))
{
$this->SetFromArray($data);
$this->Clean();
}
else
return false;
return true;
}
function SetNewItem()
{
global $objConfig;
$value = $this->Get("CreatedOn");
$cutoff = adodb_date("U") - ($objConfig->Get("Category_DaysNew") * 86400);
$this->IsNew = FALSE;
if($value>$cutoff)
$this->IsNew = TRUE;
return $this->IsNew;
}
function LoadFromResourceId($Id)
{
global $objSession, $Errors;
if(!isset($Id))
{
$Errors->AddError("error.AppError",NULL,'Internal error: LoadFromDatabase id',"",get_class($this),"LoadFromResourceId");
return false;
}
$sql = sprintf("SELECT * FROM ".$this->tablename." WHERE ResourceId = '%s'",$Id);
$result = $this->adodbConnection->Execute($sql);
if ($result === false)
{
$Errors->AddError("error.DatabaseError",NULL,$adodbConnection->ErrorMsg(),"",get_class($this),"LoadFromResourceId");
return false;
}
$data = $result->fields;
if(is_array($data))
$this->SetFromArray($data);
else
return false;
return true;
}
function GetParentField($fieldname,$skipvalue,$default)
{
/* this function moves up the category tree until a value for $field other than
$skipvalue is returned. if no matches are made, then $default is returned */
$path = $this->Get("ParentPath");
$path = substr($path,1,-1); //strip off the first & last tokens
$aPath = explode("|",$path);
$aPath = array_slice($aPath,0,-1);
$ParentPath = implode("|",$aPath);
$sql = "SELECT $fieldname FROM ".GetTablePrefix()."Category WHERE $fieldname != '$skipvalue' AND ParentPath LIKE '$ParentPath' ORDER BY ParentPath DESC";
$rs = $this->adodbConnection->execute($sql);
if($rs && !$rs->EOF)
{
$ret = $rs->fields[$fieldname];
}
else
{
$ret = $default;
}
$update = "UPDATE ".$this->tablename." SET $fieldname='$ret' WHERE CategoryId=".$this->Get("CategoryId");
$this->adodbConnection->execute($update);
return $ret;
}
function GetCustomField($fieldName)
{
global $objSession, $Errors;
if(!isset($this->m_CategoryId))
{
$Errors->AddError("error.appError","Get field is required in order to set custom field values","","",get_class($this),"GetCustomField");
return false;
}
return GetCustomFieldValue($this->m_CategoryId,"category",$fieldName);
}
function SetCustomField($fieldName, $value)
{
global $objSession, $Errors;
if(!isset($this->m_CategoryId))
{
$Errors->AddError("error.appError","Set field is required in order to set custom field values","","",get_class($this),"SetCustomField");
return false;
}
return SetCustomFieldValue($this->m_CategoryId,"category",$fieldName,$value);
}
function LoadPermissions($first=1)
{
/* load all permissions for group on this category */
$this->Permissions->CatId=$this->Get("CategoryId");
if($this->Permissions->NumItems()==0)
{
$cats = explode("|",substr($this->Get("ParentPath"),1,-1));
if(is_array($cats))
{
$cats = array_reverse($cats);
$cats[] = 0;
foreach($cats as $catid)
{
$this->Permissions->LoadCategory($catid);
}
}
}
if($this->Permissions->NumItems()==0)
{
if($first==1)
{
$this->Permissions->GroupId=NULL;
$this->LoadPermissions(0);
}
}
}
function PermissionObject()
{
return $this->Permissions;
}
function PermissionItemObject($PermissionName)
{
$p = $this->Permissions->GetPermByName($PermissionName);
return $p;
}
function HasPermission($PermissionName,$GroupID)
{
global $objSession;
$perm = $this->PermissionValue($PermissionName,$GroupID);
// echo "Permission $PermissionName for $GroupID is $perm in ".$this->Get("CategoryId")."<br>\n";
if(!$perm)
{
$perm=$objSession->HasSystemPermission("ROOT");
}
return ($perm==1);
}
function PermissionValue($PermissionName,$GroupID)
{
//$this->LoadPermissions();
$ret=NULL;
//echo "Looping though ".count($this->Permissions)." permissions Looking for $PermissionName of $GroupID<br>\n";
if($this->Permissions->GroupId != $GroupID)
{
$this->Permissions->Clear();
$this->Permissions->GroupId = $GroupID;
}
$this->Permissions->CatId=$this->Get("CategoryId");
$ret = $this->Permissions->GetPermissionValue($PermissionName);
if($ret == NULL)
{
$cats = explode("|",substr($this->Get("ParentPath"),1,-1));
if(is_array($cats))
{
$cats = array_reverse($cats);
$cats[] = 0;
foreach($cats as $catid)
{
$this->Permissions->LoadCategory($catid);
$ret = $this->Permissions->GetPermissionValue($PermissionName);
if(is_numeric($ret))
break;
}
}
}
return $ret;
}
function SetPermission($PermName,$GroupID,$Value,$Type=0)
{
global $objSession, $objPermissions, $objGroups;
if($this->Permissions->GroupId != $GroupID)
{
$this->Permissions->Clear();
$this->Permissions->GroupId = $GroupID;
}
if($objSession->HasSystemPermission("GRANT"))
{
$current = $this->PermissionValue($PermName,$GroupID);
if($current == NULL)
{
$this->Permissions->Add_Permission($this->Get("CategoryId"),$GroupId,$PermName,$Value,$Type);
}
else
{
$p = $this->Permissions->GetPermByName($PermName);
if($p->Inherited==FALSE)
{
$p->Set("PermissionValue",$Value);
$p->Update();
}
else
$this->Permissions->Add_Permission($this->Get("CategoryId"),$GroupId,$PermName,$Value,$Type);
}
if($PermName == "CATEGORY.VIEW")
{
$Groups = $objGroups->GetAllGroupList();
$ViewList = $this->Permissions->GetGroupPermList($this,"CATEGORY.VIEW",$Groups);
$this->SetViewPerms("CATEGORY.VIEW",$ViewList,$Groups);
$this->Update();
}
}
}
function SetViewPerms($PermName,$acl,$allgroups)
{
global $objPermCache;
$dacl = array();
if(!is_array($allgroups))
{
global $objGroups;
$allgroups = $objGroups->GetAllGroupList();
}
for($i=0;$i<count($allgroups);$i++)
{
$g = $allgroups[$i];
if(!in_array($g,$acl))
$dacl[] = $g;
}
if(count($acl)<count($dacl))
{
$aval = implode(",",$acl);
$dval = "";
}
else
{
$dval = implode(",",$dacl);
$aval = "";
}
if(strlen($aval)==0 && strlen($dval)==0)
{
$aval = implode(",",$allgroups);
}
$PermId = $this->Permissions->GetPermId($PermName);
$pc = $objPermCache->GetPerm($this->Get("CategoryId"),$PermId);
if(is_object($pc))
{
$pc->Set("ACL",$aval);
$pc->Set("DACL",$dval);
$pc->Update();
}
else
$objPermCache->AddPermCache($this->Get("CategoryId"),$PermId,$aval,$dval);
//$this->Update();
}
function GetACL($PermName)
{
global $objPermCache;
$ret = "";
$PermId = $this->Permissions->GetPermId($PermName);
$pc = $objPermCache->GetPerm($this->Get("CategoryId"),$PermId);
if(is_object($pc))
{
$ret = $this->Get("ACL");
}
return $ret;
}
function UpdateACL()
{
global $objGroups, $objPermCache;
$glist = $objGroups->GetAllGroupList();
$ViewList = $this->Permissions->GetGroupPermList($this,"CATEGORY.VIEW",$glist);
$perms = $this->Permissions->GetAllViewPermGroups($this,$glist);
//echo "<PRE>";print_r($perms); echo "</PRE>";
foreach($perms as $PermName => $l)
{
$this->SetViewPerms($PermName,$l,$glist);
}
}
function Cat_Link()
{
global $m_var_list_update;
$m_var_list_update["cat"] = $this->Get("CategoryId");
$ret = HREF_Wrapper();
unset($m_var_list_update["cat"]);
return $ret;
}
function Parent_Link()
{
global $m_var_list_update;
$m_var_list_update["cat"] = $this->Get("ParentId");
$ret = HREF_Wrapper();
unset($m_var_list_update["cat"]);
return $ret;
}
function Admin_Parent_Link($page=NULL)
{
global $m_var_list_update;
if(!strlen($page))
$page = $_SERVER["PHP_SELF"];
$m_var_list_update["cat"] = $this->Get("ParentId");
$ret = $page."?env=".BuildEnv();
unset($m_var_list_update["cat"]);
return $ret;
}
function StatusIcon()
{
global $imagesURL;
$ret = $imagesURL."/itemicons/";
switch($this->Get("Status"))
{
case STATUS_DISABLED:
$ret .= "icon16_cat_disabled.gif";
break;
case STATUS_PENDING:
$ret .= "icon16_cat_pending.gif";
break;
case STATUS_ACTIVE:
$img = "icon16_cat.gif";
if($this->IsPopItem())
$img = "icon16_cat_pop.gif";
if($this->IsHotItem())
$img = "icon16_cat_hot.gif";
if($this->IsNewItem())
$img = "icon16_cat_new.gif";
if($this->Is("EditorsPick"))
$img = "icon16_car_pick.gif";
$ret .= $img;
break;
}
return $ret;
}
function SubCatCount()
{
$ret = $this->Get("CachedDescendantCatsQty");
$sql = "SELECT COUNT(*) as SubCount FROM ".$this->tablename." WHERE ParentPath LIKE '".$this->Get("ParentPath")."%' AND CategoryId !=".$this->Get("CategoryId");
$rs = $this->adodbConnection->Execute($sql);
if($rs && !$rs->EOF)
{
$val = $rs->fields["SubCount"];
if($val != $this->Get("CachedDescendantCatsQty"))
{
$this->Set("CachedDescendantCatsQty",$val);
$this->Update();
}
$ret = $this->Get("CachedDescendantCatsQty");
}
return $ret;
}
function GetSubCatIds()
{
$sql = "SELECT CategoryId FROM ".$this->tablename." WHERE ParentPath LIKE '".$this->Get("ParentPath")."%' AND CategoryId !=".$this->Get("CategoryId");
$rs = $this->adodbConnection->Execute($sql);
$ret = array();
while($rs && !$rs->EOF)
{
$ret[] = $rs->fields["CategoryId"];
$rs->MoveNext();
}
return $ret;
}
function GetParentIds()
{
$Parents = array();
$ParentPath = $this->Get("ParentPath");
if(strlen($ParentPath))
{
$ParentPath = substr($ParentPath,1,-1);
$Parents = explode("|",$ParentPath);
}
return $Parents;
}
function ItemCount($ItemType="")
{
global $objItemTypes,$objCatList,$objCountCache;
if(!is_numeric($ItemType))
{
$TypeId = $objItemTypes->GetItemTypeValue($ItemType);
}
else
$TypeId = (int)$ItemType;
//$path = $this->Get("ParentPath");
//$path = substr($path,1,-1);
//$path = str_replace("|",",",$path);
$path = implode(",",$this->GetSubCatIds());
if(strlen($path))
{
$path = $this->Get("CategoryId").",".$path;
}
else
$path = $this->Get("CategoryId");
$res = TableCount(GetTablePrefix()."CategoryItems","CategoryId IN ($path)",FALSE);
return $res;
}
function ParseObject($element)
{
global $objConfig, $objCatList, $rootURL, $var_list, $var_list_update, $m_var_list_update, $objItemTypes,$objCountCache, $objUsers;
$extra_attribs = ExtraAttributes($element->attributes);
//print_r($element);
if(strtolower($element->name)==$this->TagPrefix)
{
$field = strtolower( $element->GetAttributeByName('_field') );
switch($field)
{
case 'filename':
$ret = $this->Get('Filename');
break;
case 'm_language':
$ret = language( $element->GetAttributeByName('_Phrase') );
break;
case 'parentcategorylink':
$m_var_list_update['cat'] = $this->Get('ParentId');
$m_var_list_update['p'] = 1;
$ret = str_replace('advanced_view.php','browse.php',$_SERVER['PHP_SELF']).'?env='.BuildEnv();
unset($m_var_list_update['cat']);
unset($m_var_list_update['p']);
return $ret;
break;
case 'primarycategory':
$ret = $this->Get('CachedNavbar');
if($ret) // category not in root
{
$ret = explode('>',$ret);
array_pop($ret);
$ret = implode('>',$ret);
}
$ret = prompt_language($objConfig->Get("Root_Name")).($ret ? '>' : '').$ret;
break;
case "name":
case "Name":
/*
@field:cat.name
@description:Category name
*/
$ret = $this->HighlightField("Name");
break;
case "description":
/*
@field:cat.description
@description:Category Description
*/
$ret = ($this->Get("Description"));
$ret = $this->HighlightText($ret);
break;
case "cachednavbar":
/*
@field:cat.cachednavbar
@description: Category cached navbar
*/
$ret = $this->HighlightField("CachedNavbar");
if(!strlen($ret))
{
$this->UpdateCachedPath();
$ret = $this->HighlightField("CachedNavbar");
}
break;
case "image":
/*
@field:cat.image
@description:Return an image associated with the category
@attrib:_default:bool:If true, will return the default image if the requested image does not exist
@attrib:_name::Return the image with this name
@attrib:_thumbnail:bool:If true, return the thumbnail version of the image
@attrib:_imagetag:bool:If true, returns a complete image tag. exta html attributes are passed to the image tag
*/
$default = $element->GetAttributeByName('_primary');
$name = $element->GetAttributeByName('_name');
if(strlen($name))
{
$img = $this->GetImageByName($name);
}
else
{
if($default)
$img = $this->GetDefaultImage();
}
if($img)
{
if( $element->GetAttributeByName('_thumbnail') )
{
$url = $img->parsetag("thumb_url");
}
else
$url = $img->parsetag("image_url");
}
else
{
$url = $element->GetAttributeByName('_defaulturl');
}
if( $element->GetAttributeByName('_imagetag') )
{
if(strlen($url))
{
$ret = "<IMG src=\"$url\" $extra_attribs >";
}
else
$ret = "";
}
else
$ret = $url;
break;
case "createdby":
/*
@field:cat.createdby
@description:parse a user field of the user that created the category
@attrib:_usertag::User field to return (defaults to login ID)
*/
$field = $element->GetAttributeByName('_usertag');
if(!strlen($field))
{
$field = "user_login";
}
$userId = $this->Get("CreatedById");
if (!empty($userId) && ($userId > 0))
{
$u =& $objUsers->GetItem($userId);
if (is_object($u))
{
$ret = $u->parsetag($field);
}
}
else
$ret = " ";
break;
case "custom":
/*
@field:cat.custom
@description:Returns a custom field
@attrib:_customfield::field name to return
@attrib:_default::default value
*/
$field = $element->GetAttributeByName('_customfield');
$default = $element->GetAttributeByName('_default');
$ret = $this->GetCustomFieldValue($field,$default);
break;
case "catsubcats":
/*
@field:cat.catsubcats
@description:Returns a list of subcats of current category
@attrib:_limit:int:Number of categories to return
@attrib:_separator::Separator between categories
@attrib:_anchor:bool:Make an anchor (only if template is not specified)
@attrib:_TargetTemplate:tpl:Target template
@attrib:_Ending::Add special text at the end of subcategory list
@attrib:_Class::Specify stly sheet class for anchors (if used) or "span" object
*/
$limit = ((int)$element->attributes["_limit"]>0)? $element->attributes["_limit"] : NULL;
$separator = $element->attributes["_separator"];
$anchor = (int)($element->attributes["_anchor"])? 1 : NULL;
$templ = $element->GetAttributeByName("_TargetTemplate");
$template = !empty($templ)? $templ : NULL;
$ending = strlen($element->attributes["_ending"])? $element->attributes["_ending"] : NULL;
$class = strlen($element->attributes["_class"])? $element->attributes["_class"] : NULL;
$ret = $this->GetSubCats($limit, $template, $separator, $anchor, $ending, $class);
break;
case "date":
/*
@field:cat.date
@description:Returns the date/time the category was created
@attrib:_tz:bool:Convert the date to the user's local time
@attrib:_part::Returns part of the date. The following options are available: month,day,year,time_24hr,time_12hr
*/
$d = $this->Get("CreatedOn");
if( $element->GetAttributeByName('_tz') )
{
$d = GetLocalTime($d,$objSession->Get("tz"));
}
$part = strtolower( $element->GetAttributeByName('_part') );
if(strlen($part))
{
$ret = ExtractDatePart($part,$d);
}
else
{
if(!is_numeric($d))
{
$ret = "";
}
else
$ret = LangDate($d);
}
break;
case "link":
/*
@field:cat.link
@description:Returns a URL setting the category to the current category
@attrib:_template:tpl:Template URL should point to
@attrib:_mod_template:tpl:Template INSIDE a module to which the category belongs URL should point to
*/
if ( strlen( $element->GetAttributeByName('_mod_template') ) ){
//will prefix the template with module template root path depending on category
$ids = $this->GetParentIds();
$tpath = GetModuleArray("template");
$roots = GetModuleArray("rootcat");
// get template path of module, by searching for moudle name
// in this categories first parent category
// and then using found moudle name as a key for module template paths array
$path = $tpath[array_search ($ids[0], $roots)];
$module_templates = explode(',', $element->GetAttributeByName('_mod_template'));
$m_templates = Array();
foreach($module_templates as $module_t)
{
$module_t = explode(':', $module_t);
if( isset($module_t[1]) )
{
$m_templates[$module_t[0]] = $module_t[1];
}
else
{
$m_templates['default'] = $module_t[0];
}
}
$db =& GetADODBConnection();
$sql = 'SELECT Name FROM '.GetTablePrefix().'Modules WHERE RootCat = '.$ids[0];
$module = $db->GetOne($sql);
if( isset($m_templates[$module]) )
{
$target_template = $m_templates[$module];
}
else
{
$target_template = $m_templates['default'];
}
$t = $path . $target_template;
}
else
{
$t = $element->GetAttributeByName('_template');
}
$url_params = Array();
if(strlen($t))
{
$var_list_update["t"] = $t;
}
else
{
$var_list_update["t"] = $var_list["t"];
}
$m_var_list_update["cat"] = $this->Get("CategoryId");
if( $element->GetAttributeByName('reset') ) $url_params['reset'] = 1;
$ret = HREF_Wrapper('', $url_params);
unset($m_var_list_update["cat"], $var_list_update["t"]);
break;
case "adminlink":
$m_var_list_update["cat"] = $this->Get("CategoryId");
$m_var_list_update["p"] = 1;
$ret = $_SERVER["PHP_SELF"]."?env=" . BuildEnv();
unset($m_var_list_update["cat"]);
unset($m_var_list_update["p"]);
return $ret;
break;
case "customlink":
$t = $this->GetCustomFieldValue("indextemplate","");
if(strlen($t))
{
$var_list_update["t"] = $t;
}
else
{
$var_list_update["t"] = $var_list["t"];
}
$m_var_list_update["cat"] = $this->Get("CategoryId");
$ret = HREF_Wrapper();
unset($m_var_list_update["cat"], $var_list_update["t"]);
break;
case "link_selector":
$m_var_list_update["cat"] = $this->Get("CategoryId");
$ret = $_SERVER["PHP_SELF"]."?env=" . BuildEnv();
$tmp = GetVar('Selector'); if($tmp) $ret .= '&Selector='.$tmp;
$tmp = GetVar('new'); if($tmp) $ret .= '&new='.$tmp;
$tmp = GetVar('destform'); if($tmp) $ret .= '&destform='.$tmp;
unset($m_var_list_update["cat"]);
return $ret;
break;
case "admin_icon":
if( $element->GetAttributeByName('fulltag') )
{
$ret = "<IMG $extra_attribs SRC=\"".$this->StatusIcon()."\">";
}
else
$ret = $this->StatusIcon();
break;
case "subcats":
/*
@field:cat.subcats
@description: Loads category's subcategories into a list and renders using the m_list_cats global tag
@attrib:_subcattemplate:tpl:Template used to render subcategory list elements
@attrib: _columns:int: Numver of columns to display the categories in (defaults to 1)
@attrib: _maxlistcount:int: Maximum number of categories to list
@attrib: _FirstItemTemplate:tpl: Template used for the first category listed
@attrib: _LastItemTemplate:tpl: Template used for the last category listed
@attrib: _NoTable:bool: If set to 1, the categories will not be listed in a table. If a table is used, all HTML attributes are passed to the TABLE tag
*/
$attr = array();
$attr["_catid"] = $this->Get("CategoryId");
$attr["_itemtemplate"] = $element->GetAttributeByName('_subcattemplate');
if( $element->GetAttributeByName('_notable') )
$attr["_notable"]=1;
$ret = m_list_cats($attr);
break;
case "subcatcount":
/*
@field:cat.subcatcount
@description:returns number of subcategories
*/
$GroupOnly = $element->GetAttributeByName('_grouponly') ? 1 : 0;
$txt = "<inp:m_itemcount _CatId=\"".$this->Get("CategoryId")."\" _SubCats=\"1\" ";
$txt .="_CategoryCount=\"1\" _ItemType=\"1\" _GroupOnly=\"$GroupOnly\" />";
$tag = new clsHtmlTag($txt);
$ret = $tag->Execute();
break;
case "itemcount":
/*
@field:cat.itemcount
@description:returns the number of items in the category
@attrib:_itemtype::name of item type to count, or all items if not set
*/
$typestr = $element->GetAttributeByName('_itemtype');
if(strlen($typestr))
{
$type = $objItemTypes->GetTypeByName($typestr);
if(is_object($type))
{
$ForceUpdate = 1;
$TypeId = $type->Get("ItemType");
$GroupOnly = $element->GetAttributeByName('_grouponly') ? 1 : 0;
$txt = "<inp:m_itemcount _CatId=\"".$this->Get("CategoryId")."\" _SubCats=\"1\" ";
$txt .=" _ListType=\"category\" _CountCurrent=\"1\" _ForceUpdate=\"$ForceUpdate\" _ItemType=\"$TypeId\" _GroupOnly=\"$GroupOnly\" />";
$tag = new clsHtmlTag($txt);
$ret = $tag->Execute();
//echo "Category parseobject: $ret<br>";
}
else
$ret = "";
}
else
{
$ret = (int)$objCountCache->GetCatListTotal($this->Get("CategoryId"));
}
break;
case "totalitems":
/*
@field:cat.totalitems
@description:returns the number of items in the category and all subcategories
*/
$ret = $this->ItemCount();
break;
case 'modified':
$ret = '';
$date = $this->Get('Modified');
if(!$date) $date = $this->Get('CreatedOn');
if( $element->GetAttributeByName('_tz') )
{
$date = GetLocalTime($date,$objSession->Get("tz"));
}
$part = strtolower($element->GetAttributeByName('_part') );
if(strlen($part))
{
$ret = ExtractDatePart($part,$date);
}
else
{
$ret = ($date <= 0) ? '' : LangDate($date);
}
break;
case "itemdate":
/*
@field:cat.itemdate
@description:Returns the date the cache count was last updated
@attrib:_itemtype:Item name to check
@attrib:_tz:bool:Convert the date to the user's local time
@attrib:_part::Returns part of the date. The following options are available: month,day,year,time_24hr,time_12hr
*/
$typestr = $element->GetAttributeByName('_itemtype');
$type = $objItemTypes->GetTypeByName($typestr);
if(is_object($type))
{
$TypeId = $type->Get("ItemType");
$cc = $objCountCache->GetCountObject(1,$TypeId,$this->get("CategoryId"),0);
if(is_object($cc))
{
$date = $cc->Get("LastUpdate");
}
else
$date = "";
//$date = $this->GetCacheCountDate($TypeId);
if( $element->GetAttributeByName('_tz') )
{
$date = GetLocalTime($date,$objSession->Get("tz"));
}
$part = strtolower($element->GetAttributeByName('_part') );
if(strlen($part))
{
$ret = ExtractDatePart($part,$date);
}
else
{
if($date<=0)
{
$ret = "";
}
else
$ret = LangDate($date);
}
}
else
$ret = "";
break;
case "new":
/*
@field:cat.new
@description:returns text if category's status is "new"
@attrib:_label:lang: Text to return if status is new
*/
if($this->IsNewItem())
{
$ret = $element->GetAttributeByName('_label');
if(!strlen($ret))
$ret = "lu_new";
$ret = language($ret);
}
else
$ret = "";
break;
case "pick":
/*
@field:cat.pick
@description:returns text if article's status is "hot"
@attrib:_label:lang: Text to return if status is "hot"
*/
if($this->Get("EditorsPick")==1)
{
$ret = $element->GetAttributeByName('_label');
if(!strlen($ret))
$ret = "lu_pick";
$ret = language($ret);
}
else
$ret = "";
break;
case "parsetag":
/*
@field:cat.parsetag
@description:returns a tag output with this categoriy set as a current category
@attrib:_tag:: tag name
*/
$tag = new clsHtmlTag();
$tag->name = $element->GetAttributeByName('_tag');
$tag->attributes = $element->attributes;
$tag->attributes["_catid"] = $this->Get("CategoryId");
$ret = $tag->Execute();
break;
/*
@field:cat.relevance
@description:Displays the category relevance in search results
@attrib:_displaymode:: How the relevance should be displayed<br>
<UL>
<LI>"Numerical": Show the decimal value
<LI>"Bar": Show the HTML representing the relevance. Returns two HTML cells &lg;td&lt; with specified background colors
<LI>"Graphical":Show image representing the relevance
</UL>
@attrib:_onimage::Zero relevance image shown in graphical display mode. Also used as prefix to build other images (i.e. prefix+"_"+percentage+".file_extension"
@attrib:_OffBackGroundColor::Off background color of HTML cell in bar display mode
@attrib:_OnBackGroundColor::On background color of HTML cell in bar display mode
*/
}
if( !isset($ret) ) $ret = parent::ParseObject($element);
}
return $ret;
}
function parsetag($tag)
{
global $objConfig,$objUsers, $m_var_list, $m_var_list_update;
if(is_object($tag))
{
$tagname = $tag->name;
}
else
$tagname = $tag;
switch($tagname)
{
case "cat_id":
return $this->Get("CategoryId");
break;
case "cat_parent":
return $this->Get("ParentId");
break;
case "cat_fullpath":
return $this->Get("CachedNavbar");
break;
case "cat_name":
return $this->Get("Name");
break;
case "cat_desc":
return $this->Get("Description");
break;
case "cat_priority":
if($this->Get("Priority")!=0)
{
return (int)$this->Get("Priority");
}
else
return "";
break;
case "cat_pick":
if ($this->Get("EditorsPick"))
return "pick";
break;
case "cat_status":
return $this->Get("Status");
break;
case "cat_Pending":
return $this->Get("Name");
break;
case "cat_pop":
if($this->IsPopItem())
return "pop";
break;
case "cat_new":
if($this->IsNewItem())
return "new";
break;
case "cat_hot":
if($this->IsHotItem())
return "hot";
break;
case "cat_metakeywords":
return $this->Get("MetaKeywords");
break;
case "cat_metadesc":
return $this->Get("MetaDescription");
break;
case "cat_createdby":
return $objUsers->GetUserName($this->Get("CreatedById"));
break;
case "cat_resourceid":
return $this->Get("ResourceId");
break;
case "cat_sub_cats":
return $this->GetSubCats($objConfig->Get("SubCat_ListCount"));
break;
case "cat_link":
return $this->Cat_Link();
break;
case "subcat_count":
return $this->SubCatCount();
break;
case "cat_itemcount":
return (int)$this->GetTotalItemCount();
break;
case "cat_link_admin":
$m_var_list_update["cat"] = $this->Get("CategoryId");
$m_var_list_update["p"] = 1;
$ret = $_SERVER["PHP_SELF"]."?env=" . BuildEnv();
unset($m_var_list_update["cat"]);
unset($m_var_list_update["p"]);
return $ret;
break;
case "cat_admin_icon":
$ret = $this->StatusIcon();
return $ret;
break;
case "cat_link_selector":
$m_var_list_update["cat"] = $this->Get("CategoryId");
$ret = $_SERVER["PHP_SELF"]."?env=" . BuildEnv();
unset($m_var_list_update["cat"]);
return $ret;
break;
case "cat_link_edit":
$m_var_list_update["id"] = $this->Get("CategoryId");
$ret = "addcategory.php?env=" . BuildEnv();
unset($m_var_list_update["id"]);
return $ret;
break;
case "cat_date":
return LangDate($this->Get("CreatedOn"));
break;
case "cat_num_cats":
return $this->Get("CachedDescendantCatsQty");
break;
case "cell_back":
if ($m_var_list_update["cat_cell"]=="#cccccc")
{
$m_var_list_update["cat_cell"]="#ffffff";
return "#ffffff";
}
else
{
$m_var_list_update["cat_cell"]="#cccccc";
return "#cccccc";
}
break;
default:
return "Undefined:$tagname";
}
}
function ParentNames()
{
global $objCatList;
if(strlen($this->Get("CachedNavbar"))==0)
{
$nav = "";
//echo "Rebuilding Navbar..<br>\n";
if(strlen($this->Get("ParentPath"))==0)
{
$this->UpdateCachedPath();
}
$cats = explode("|",substr($this->Get("ParentPath"),1,-1));
foreach($cats as $catid)
{
$cat =& $objCatList->GetCategory($catid);
if(is_object($cat))
{
if(strlen($cat->Get("Name")))
$names[] = $cat->Get("Name");
}
}
$nav = implode(">", $names);
$this->Set("CachedNavbar",$nav);
$this->Update();
}
$res = explode(">",$this->Get("CachedNavbar"));
return $res;
}
// not used anywhere
/* function UpdateCacheCounts()
{
global $objItemTypes;
$CatId = $this->Get("CategoryId");
if($CatId>0)
{
//echo "Updating count for ".$this->Get("CachedNavbar")."<br>\n";
UpdateCategoryCount(0,$CatId);
}
}*/
/**
* @return void
* @param int $date
* @desc Set Modified field for category & all it's parent categories
*/
function SetLastUpdate($date)
{
$parents = $this->Get('ParentPath');
$parents = substr($parents, 1, strlen($parents) - 2 );
$parents = explode('|', $parents);
$db =&GetADODBConnection();
$sql = 'UPDATE '.$this->tablename.' SET Modified = '.$date.' WHERE CategoryId IN ('.implode(',', $parents).')';
$db->Execute($sql);
}
}
class clsCatList extends clsItemList //clsItemCollection
{
//var $Page; // no need because clsItemList class used instead of clsItemCollection
//var $PerPageVar;
function clsCatList()
{
global $m_var_list;
$this->clsItemCollection();
$this->classname="clsCategory";
$this->AdminSearchFields = array("Name","Description");
$this->Page = (int)$m_var_list["p"];
$this->PerPageVar = "Perpage_Category";
$this->SourceTable = GetTablePrefix()."Category";
$this->BasePermission="CATEGORY";
$this->DefaultPerPage = 20;
}
function SaveNewPage()
{
global $m_var_list;
$m_var_list["p"] = $this->Page;
}
function GetCountSQL($PermName,$CatId=NULL, $GroupId=NULL, $AdditonalWhere="")
{
global $objSession, $objPermissions, $objCatList;
$ltable = $this->SourceTable;
$acl = $objSession->GetACLClause();
$cattable = GetTablePrefix()."CategoryItems";
$CategoryTable = GetTablePrefix()."Category";
$ptable = GetTablePrefix()."PermCache";
$VIEW = $objPermissions->GetPermId($PermName);
$sql = "SELECT count(*) as CacheVal FROM $ltable ";
$sql .="INNER JOIN $ptable ON ($ltable.CategoryId=$ptable.CategoryId) ";
$sql .="WHERE ($acl AND PermId=$VIEW AND $ltable.Status=1) ";
if(strlen($AdditonalWhere)>0)
{
$sql .= "AND (".$AdditonalWhere.")";
}
return $sql;
}
function CountCategories($attribs)
{
global $objSession;
$ParentWhere='';
$cat = getArrayValue($attribs,'_catid');
if(!is_numeric($cat))
{
$cat = $this->CurrentCategoryID();
}
if((int)$cat>0)
$c = $this->GetCategory($cat);
if( getArrayValue($attribs,'_subcats') && $cat>0)
{
$ParentWhere = "(ParentPath LIKE '".$c->Get("ParentPath")."%' AND ".$this->SourceTable.".CategoryId != $cat)";
}
if( getArrayValue($attribs,'_today') )
{
$today = mktime(0,0,0,date("m"),date("d"),date("Y"));
$TodayWhere = "(CreatedOn>=$today)";
}
else
{
$TodayWhere = '';
}
if( getArrayValue($attribs,'_grouponly') )
{
$GroupList = $objSession->Get("GroupList");
}
else
$GroupList = NULL;
$where = "";
if(strlen($ParentWhere))
{
$where = $ParentWhere;
}
if(strlen($TodayWhere))
{
if(strlen($where))
$where .=" AND ";
$where .= $TodayWhere;
}
$sql = $this->GetCountSQL("CATEGORY.VIEW",$cat,$GroupList,$where);
// echo "SQL: ".$sql."<BR>";
$rs = $this->adodbConnection->Execute($sql);
if($rs && !$rs->EOF)
{
$ret = $rs->fields["CacheVal"];
}
else
$ret = 0;
return $ret;
}
function CurrentCategoryID()
{
global $m_var_list;
return (int)$m_var_list["cat"];
}
function NumCategories()
{
return $this->NumItems();
}
function &CurrentCat()
{
//return $this->GetCategory($this->CurrentCategoryID());
return $this->GetItem($this->CurrentCategoryID());
}
function &GetCategory($CatID)
{
return $this->GetItem($CatID);
}
function GetByResource($ResId)
{
return $this->GetItemByField("ResourceId",$ResId);
}
function QueryOrderByClause($EditorsPick=FALSE,$Priority=FALSE,$UseTableName=FALSE)
{
global $objSession;
if($UseTableName)
{
$TableName = $this->SourceTable.".";
}
else
$TableName = "";
$Orders = array();
if($EditorsPick)
{
$Orders[] = $TableName."EditorsPick DESC";
}
if($Priority)
{
$Orders[] = $TableName."Priority DESC";
}
$FieldVar = "Category_Sortfield";
$OrderVar = "Category_Sortorder";
if(is_object($objSession))
{
if(strlen($objSession->GetPersistantVariable($FieldVar))>0)
{
$Orders[] = trim($TableName.$objSession->GetPersistantVariable($FieldVar) . " ".
$objSession->GetPersistantVariable($OrderVar));
}
}
$FieldVar = "Category_Sortfield2";
$OrderVar = "Category_Sortorder2";
if(is_object($objSession))
{
if(strlen($objSession->GetPersistantVariable($FieldVar))>0)
{
$Orders[] = trim($TableName.$objSession->GetPersistantVariable($FieldVar) . " ".
$objSession->GetPersistantVariable($OrderVar));
}
}
if(count($Orders)>0)
{
$OrderBy = "ORDER BY ".implode(", ",$Orders);
}
else
$OrderBy="";
return $OrderBy;
}
function LoadCategories($where="", $orderBy = "", $no_limit = true, $fix_method = 'set_first')
{
// load category list using $where clause
// apply ordering specified in $orderBy
// show all cats ($no_limit = true) or only from current page ($no_limit = false)
// in case if stored page is greather then page count issue page_fixing with
// method specified (see "FixInvalidPage" method for details)
$PerPage = $this->GetPerPage();
$this->QueryItemCount = TableCount($this->SourceTable,$where,0);
if($no_limit == false)
{
$this->FixInvalidPage($fix_method);
$Start = !empty($this->Page)? (($this->Page-1) * $PerPage) : 0;
$limit = "LIMIT ".$Start.",".$PerPage;
}
else
$limit = NULL;
return $this->Query_Category($where, $orderBy, $limit);
}
function Query_Category($whereClause="",$orderByClause="",$limit=NULL)
{
global $m_var_list, $objSession, $Errors, $objPermissions;
$GroupID = $objSession->Get("GroupID");
$resultset = array();
$table = $this->SourceTable;
$ptable = GetTablePrefix()."PermCache";
$CAT_VIEW = $objPermissions->GetPermId("CATEGORY.VIEW");
if(!$objSession->HasSystemPermission("ADMIN"))
{
$sql = "SELECT * FROM $table INNER JOIN $ptable ON ($ptable.CategoryId=$table.CategoryId)";
$acl_where = $objSession->GetACLClause();
if(strlen($whereClause))
{
$sql .= " WHERE ($acl_where) AND PermId=$CAT_VIEW AND ".$whereClause;
}
else
$sql .= " WHERE ($acl_where) AND PermId=$CAT_VIEW ";
}
else
{
$sql ="SELECT * FROM $table ".($whereClause ? "WHERE $whereClause" : '');
}
$sql .=" ".$orderByClause;
if(isset($limit) && strlen(trim($limit)))
$sql .= " ".$limit;
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql;
//echo "SQL: $sql<br>";
return $this->Query_item($sql);
}
function CountPending()
{
return TableCount($this->SourceTable,"Status=".STATUS_PENDING,0);
}
function GetPageLinkList($dest_template=NULL,$page="",$PagesToList=10,$HideEmpty=TRUE)
{
global $objConfig, $m_var_list_update, $var_list_update, $var_list;
// if(!strlen($page)) $page = GetIndexURL(2);
$PerPage = $this->GetPerPage();
$NumPages = ceil( $this->GetNumPages($PerPage) );
if($NumPages == 1 && $HideEmpty) return '';
if(strlen($dest_template))
{
$var_list_update["t"] = $dest_template;
}
else
$var_list_update["t"] = $var_list["t"];
$o = "";
if($this->Page>$NumPages)
$this->Page=$NumPages;
$StartPage = (int)$this->Page - ($PagesToList/2);
if($StartPage<1)
$StartPage=1;
$EndPage = $StartPage+($PagesToList-1);
if($EndPage>$NumPages)
{
$EndPage = $NumPages;
$StartPage = $EndPage-($PagesToList-1);
if($StartPage<1)
$StartPage=1;
}
$o = "";
if($StartPage>1)
{
$m_var_list_update["p"] = $this->Page-$PagesToList;
$prev_url = HREF_Wrapper();
$o .= "<A HREF=\"$prev_url\">&lt;&lt;</A>";
}
for($p=$StartPage;$p<=$EndPage;$p++)
{
if($p!=$this->Page)
{
$m_var_list_update["p"]=$p;
$href = HREF_Wrapper();
$o .= " <A HREF=\"$href\" >$p</A> ";
}
else
{
$o .= "$p";
}
}
if($EndPage<$NumPages && $EndPage>0)
{
$m_var_list_update["p"]=$this->Page+$PagesToList;
$next_url = HREF_Wrapper();
$o .= "<A HREF=\"$next_url\"> &gt;&gt;</A>";
}
unset($m_var_list_update,$var_list_update["t"] );
return $o;
}
function GetAdminPageLinkList($url)
{
global $objConfig, $m_var_list_update, $var_list_update, $var_list;
$PerPage = $this->GetPerPage();
$NumPages = ceil($this->GetNumPages($PerPage));
$o = "";
if($this->Page>1)
{
$m_var_list_update["p"]=$this->Page-1;
$prev_url = $url."?env=".BuildEnv();
unset($m_var_list_update["p"]);
$o .= "<A HREF=\"$prev_url\" class=\"NAV_URL\"><<</A>";
}
if($this->Page<$NumPages)
{
$m_var_list_update["p"]=$this->Page+1;
$next_url = $url."?env=".BuildEnv();
unset($m_var_list_update["p"]);
}
for($p=1;$p<=$NumPages;$p++)
{
if($p != $this->Page)
{
$m_var_list_update["p"]=$p;
$href = $url."?env=".BuildEnv();
unset($m_var_list_update["p"]);
$o .= " <A HREF=\"$href\" class=\"NAV_URL\">$p</A> ";
}
else
$o .= "<SPAN class=\"CURRENT_PAGE\">$p</SPAN>";
}
if($this->Page < $NumPages)
$o .= "<A HREF=\"$next_url\" class=\"NAV_URL\">>></A>";
return $o;
}
function Search_Category($orderByClause)
{
global $objSession, $objConfig, $Errors;
$PerPage = $this->GetPerPage();
$Start = ($this->Page-1) * $PerPage;
$objResults = new clsSearchResults("Category","clsCategory");
$this->Clear();
$this->Categories = $objResults->LoadSearchResults($Start,$PerPage);
return $this->Categories;
}
function GetSubCats($ParentCat)
{
return $this->Query_Category("ParentId=".$ParentCat,"");
}
function AllSubCats($ParentCat)
{
$c =& $this->GetCategory($ParentCat);
$sql = "SELECT * FROM ".$this->SourceTable." WHERE ParentPath LIKE '".$c->Get("ParentPath")."%'";
$rs = $this->adodbConnection->Execute($sql);
$subcats = array();
while($rs && !$rs->EOF)
{
if($rs->fields["CategoryId"]!=$ParentCat)
{
$subcats[] = $rs->fields["CategoryId"];
}
$rs->MoveNext();
}
if($ParentCat>0)
{
if($c->Get("CachedDescendantCatsQty")!=count($subcats))
{
$c->Set("CachedDescendantCatsQty",count($subcats));
}
}
return $subcats;
}
function cat_navbar($admin=0, $cat, $target_template, $separator = " > ", $LinkLeaf = FALSE,
$root = 0,$RootTemplate="",$modcat=0, $ModTemplate="", $LinkRoot = FALSE)
{
// draw category navigation bar (at top)
global $Errors, $var_list_update, $var_list, $m_var_list_update, $m_var_list, $objConfig;
$url_params = Array('reset' => 1);
if( GetVar('Selector') ) $url_params['Selector'] = GetVar('Selector');
if( GetVar('new') ) $url_params['new'] = GetVar('new');
if( GetVar('destform') ) $url_params['destform'] = GetVar('destform');
$nav = "";
$m_var_list_update["p"]=1;
if(strlen($target_template)==0)
$target_template = $var_list["t"];
if($cat == 0)
{
$cat_name = language($objConfig->Get("Root_Name"));
if ($LinkRoot)
{
$var_list_update["t"] = strlen($RootTemplate)? $RootTemplate : $target_template;
$nav = "<a class=\"navbar\" href=\"" . HREF_Wrapper('', $url_params) . "\">$cat_name</a>"; }
else
$nav = "<span class=\"NAV_CURRENT_ITEM\">$cat_name</span>";
}
else
{
$nav = array();
$c =& $this->GetCategory($cat);
$nav_unparsed = $c->Get("ParentPath");
if(strlen($nav_unparsed)==0)
{
$c->UpdateCachedPath();
$nav_unparsed = $c->Get("ParentPath");
}
//echo " Before $nav_unparsed ";
if($root)
{
$r =& $this->GetCategory($root);
$rpath = $r->Get("ParentPath");
$nav_unparsed = substr($nav_unparsed,strlen($rpath),-1);
$cat_name = $r->Get("Name");
$m_var_list_update["cat"] = $root;
if($cat == $catid && !$LinkLeaf)
{
$nav[] = "<span class=\"NAV_CURRENT_ITEM\" >".$cat_name."</span>"; //href=\"browse.php?env=". BuildEnv() ."\"
}
else
{
if ($admin == 1)
{
$nav[] = "<a class=\"control_link\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
}
else
{
if(strlen($RootTemplate))
{
$var_list_update["t"] = $RootTemplate;
}
else
{
$var_list_update["t"] = $target_template;
}
$nav[] = "<a class=\"navbar\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
}
}
}
else
{
$nav_unparsed = substr($nav_unparsed,1,-1);
$cat_name = language($objConfig->Get("Root_Name"));
$m_var_list_update["cat"] = 0;
if($cat == 0)
{
$nav[] = "<span class=\"NAV_CURRENT_ITEM\" >".$cat_name."</span>"; //href=\"browse.php?env=". BuildEnv() ."\"
}
else
{
if ($admin == 1)
{
$nav[] = "<a class=\"control_link\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
}
else
{
if(strlen($RootTemplate))
{
$var_list_update["t"] = $RootTemplate;
}
else
$var_list_update["t"] = $target_template;
$nav[] = "<a class=\"navbar\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
}
}
}
//echo " After $nav_unparsed <br>\n";
if(strlen($target_template)==0)
$target_template = $var_list["t"];
$cats = explode("|", $nav_unparsed);
foreach($cats as $catid)
{
if($catid)
{
$c =& $this->GetCategory($catid);
if(is_object($c))
{
$cat_name = $c->Get("Name");
$m_var_list_update["cat"] = $catid;
if($catid==$modcat && strlen($ModTemplate)>0)
{
$t = $ModTemplate;
}
else
$t = $target_template;
if($cat == $catid && !$LinkLeaf)
{
$nav[] = "<span class=\"NAV_CURRENT_ITEM\" >".$cat_name."</span>";
}
else
{
if ($admin == 1)
{
$nav[] = "<a class=\"control_link\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
}
else
{
$var_list_update["t"] = $t;
$nav[] = "<a class=\"navbar\" href=\"".HREF_Wrapper('', $url_params)."\">".$cat_name."</a>";
unset($var_list_update["t"]);
}
}
unset($m_var_list_update["cat"]);
}
}
}
$nav = implode($separator, $nav);
}
return $nav;
}
function &Add( $ParentId, $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot, $New, $Pop,
$Priority, $MetaKeywords,$MetaDesc, $auto_filename = 1, $filename = '')
{
global $objSession;
$UserId = $objSession->Get('UserId');
$d = new clsCategory(NULL);
$filename = $d->StripDisallowed($filename);
$d->tablename = $this->SourceTable;
if( $d->UsingTempTable() ) $d->Set('CategoryId', -1);
$d->idfield = 'CategoryId';
$d->Set(Array( 'ParentId', 'Name', 'Description', 'CreatedOn', 'EditorsPick', 'Status', 'HotItem',
'NewItem','PopItem', 'Priority', 'MetaKeywords', 'MetaDescription', 'CreatedById',
'AutomaticFilename', 'Filename'),
Array( $ParentId, $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot, $New,
$Pop, $Priority, $MetaKeywords,$MetaDesc, $UserId, $auto_filename, $filename) );
$d->Create();
if($Status == 1)
{
$d->SendUserEventMail("CATEGORY.ADD",$objSession->Get("PortalUserId"));
$d->SendAdminEventMail("CATEGORY.ADD");
}
else
{
$d->SendUserEventMail("CATEGORY.ADD.PENDING",$objSession->Get("PortalUserId"));
$d->SendAdminEventMail("CATEGORY.ADD.PENDING");
}
$d->UpdateCachedPath();
// RunUp($ParentId, 'Increment_Count');
return $d;
}
function &Edit_Category($CategoryId, $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot,
$NewItem, $Pop, $Priority, $MetaKeywords,$MetaDesc, $auto_filename = 1, $filename = '')
{
$d =& $this->GetCategory($CategoryId);
$filename = $d->StripDisallowed($filename);
$d->Set( Array( 'Name', 'Description', 'CreatedOn', 'EditorsPick', 'Status', 'HotItem',
'NewItem', 'PopItem', 'Priority', 'MetaKeywords','MetaDescription',
'AutomaticFilename', 'Filename'),
Array( $Name, $Description, $CreatedOn, $EditorsPick, $Status, $Hot, $NewItem,
$Pop, $Priority, $MetaKeywords,$MetaDesc, $auto_filename, $filename) );
$d->Update();
$d->UpdateCachedPath();
return $d;
}
function Move_Category($Id, $ParentTo)
{
global $objCatList;
$d =& $this->GetCategory($Id);
$oldparent = $d->Get("ParentId");
$ChildList = $d->GetSubCatIds();
/*
echo "Target Parent Id: $ParentTo <br>\n";
echo "<PRE>";print_r($ChildList); echo "</PRE>";
echo "Old Parent: $oldparent <br>\n";
echo "ID: $Id <br>\n";
*/
/* sanity checks */
if(!in_array($ParentTo,$ChildList) && $oldparent != $ParentTo && $oldparent != $Id &&
$Id != $ParentTo)
{
$d->Set("ParentId", $ParentTo);
$d->Set('Filename', '');
$d->Update();
$d->UpdateCachedPath();
RunUp($oldparent, "Decrement_Count");
RunUp($ParentTo, "Increment_Count");
RunDown($ParentTo, "UpdateCachedPath");
return TRUE;
}
else
{
global $Errors;
$Errors->AddAdminUserError("la_error_move_subcategory");
return FALSE;
}
die();
}
function Copy_CategoryTree($Id, $ParentTo)
{
global $PastedCatIds;
$new = $this->Copy_Category($Id, $ParentTo);
if($new)
{
$PastedCatIds[$Id] = $new;
$sql = "SELECT CategoryId from ".GetTablePrefix()."Category where ParentId=$Id";
$result = $this->adodbConnection->Execute($sql);
if ($result && !$result->EOF)
{
while(!$result->EOF)
{
$this->Copy_CategoryTree($result->fields["CategoryId"], $new);
$result->MoveNext();
}
}
}
return $new;
}
function Copy_Category($Id, $ParentTo)
{
global $objGroups;
$src = $this->GetCategory($Id);
$Children = $src->GetSubCatIds();
if($Id==$ParentTo || in_array($ParentTo,$Children))
{
/* sanity error here */
global $Errors;
$Errors->AddAdminUserError("la_error_copy_subcategory");
return 0;
}
$dest = $src;
$dest->Set("ParentId", $ParentTo);
if ($src->get("ParentId") == $ParentTo)
{
$OldName = $src->Get("Name");
if(substr($OldName,0,5)=="Copy ")
{
$parts = explode(" ",$OldName,4);
if($parts[2]=="of" && is_numeric($parts[1]))
{
$Name = $parts[3];
}
else
if($parts[1]=="of")
{
$Name = $parts[2]." ".$parts[3];
}
else
$Name = $OldName;
}
else
$Name = $OldName;
//echo "New Name: $Name<br>";
$dest->Set("Name", $Name);
$Names = CategoryNameCount($ParentTo,$Name);
//echo "Names Count: ".count($Names)."<br>";
if(count($Names)>0)
{
$NameCount = count($Names);
$found = FALSE;
$NewName = "Copy of $Name";
if(!in_array($NewName,$Names))
{
//echo "Matched on $NewName in:<br>\n";
$found = TRUE;
}
else
{
for($x=2;$x<$NameCount+2;$x++)
{
$NewName = "Copy ".$x." of ".$Name;
if(!in_array($NewName,$Names))
{
$found = TRUE;
break;
}
}
}
if(!$found)
{
$NameCount++;
$NewName = "Copy $NameCount of $Name";
}
//echo "New Name: $NewName<br>";
$dest->Set("Name",$NewName);
}
}
$dest->UnsetIdField();
$dest->Set("CachedDescendantCatsQty",0);
$dest->Set("ResourceId",NULL);
$dest->Set('Filename', '');
$dest->Create();
$dest->UpdateCachedPath();
$p = new clsPermList();
$p->Copy_Permissions($src->Get("CategoryId"),$dest->Get("CategoryId"));
$glist = $objGroups->GetAllGroupList();
$view = $p->GetGroupPermList($dest, "CATEGORY.VIEW", $glist);
$dest->SetViewPerms("CATEGORY.VIEW",$view,$glist);
RunUp($ParentTo, "Increment_Count");
return $dest->Get("CategoryId");
}
function Delete_Category($Id)
{
global $objSession;
$d =& $this->GetCategory($Id);
if(is_object($d))
{
if($d->Get("CategoryId")==$Id)
{
$d->SendUserEventMail("CATEGORY.DELETE",$objSession->Get("PortalUserId"));
$d->SendAdminEventMail("CATEGORY.DELETE");
$p =& $this->GetCategory($d->Get("ParentId"));
RunDown($d->Get("CategoryId"), "Delete");
RunUp($p->Get("CategoryId"), "Decrement_Count");
RunUp($d->Get("CategoryId"),"ClearCacheData");
}
}
}
function PasteFromClipboard($TargetCat)
{
global $objSession;
$clip = $objSession->GetVariable("ClipBoard");
if(strlen($clip))
{
$ClipBoard = ParseClipboard($clip);
$IsCopy = (substr($ClipBoard["command"],0,4)=="COPY") || ($ClipBoard["source"] == $TargetCat);
$item_ids = explode(",",$ClipBoard["ids"]);
for($i=0;$i<count($item_ids);$i++)
{
$ItemId = $item_ids[$i];
$item = $this->GetItem($item_ids[$i]);
if(!$IsCopy)
{
$this->Move_Category($ItemId, $TargetCat);
$clip = str_replace("CUT","COPY",$clip);
$objSession->SetVariable("ClipBoard",$clip);
}
else
{
$this->Copy_CategoryTree($ItemId,$TargetCat);
}
}
}
}
function NumChildren($ParentID)
{
$cat_filter = "m_cat_filter";
global $$cat_filter;
$filter = $$cat_filter;
$adodbConnection = &GetADODBConnection();
$sql = "SELECT COUNT(Name) as children from ".$this->SourceTable." where ParentId=" . $ParentID . $filter;
$result = $adodbConnection->Execute($sql);
return $result->fields["children"];
}
function UpdateMissingCacheData()
{
$rs = $this->adodbConnection->Execute("SELECT * FROM ".$this->SourceTable." WHERE ParentPath IS NULL or ParentPath=''");
while($rs && !$rs->EOF)
{
$c = new clsCategory(NULL);
$data = $rs->fields;
$c->SetFromArray($data);
$c->UpdateCachedPath();
$rs->MoveNext();
}
$rs = $this->adodbConnection->Execute("SELECT * FROM ".$this->SourceTable." WHERE CachedNavbar IS NULL or CachedNavBar=''");
while($rs && !$rs->EOF)
{
$c = new clsCategory(NULL);
$data = $rs->fields;
$c->SetFromArray($data);
$c->UpdateCachedPath();
$rs->MoveNext();
}
}
function CopyFromEditTable($idfield)
{
global $objGroups, $objSession, $objPermList;
$GLOBALS['_CopyFromEditTable']=1;
$objPermList = new clsPermList();
$edit_table = $objSession->GetEditTable($this->SourceTable);
$sql = "SELECT * FROM $edit_table";
$rs = $this->adodbConnection->Execute($sql);
$item_ids = Array();
while($rs && !$rs->EOF)
{
$data = $rs->fields;
$c = new $this->classname;
$c->SetFromArray($data);
$c->Dirty();
if($c->Get("CategoryId")>0)
{
$c->Update();
}
else
{
$c->UnsetIdField();
$c->Create();
$sql = "UPDATE ".GetTablePrefix()."Permissions SET CatId=".$c->Get("CategoryId")." WHERE CatId=-1";
$this->adodbConnection->Execute($sql);
}
$c->UpdateCachedPath();
$c->UpdateACL();
$c->SendUserEventMail("CATEGORY.MODIFY",$objSession->Get("PortalUserId"));
$c->SendAdminEventMail("CATEGORY.MODIFY");
$c->Related = new clsRelationshipList();
if(is_object($c->Related))
{
$r = $c->Related;
$r->CopyFromEditTable($c->Get("ResourceId"));
}
$item_ids[] = $c->UniqueId();
//RunDown($c->Get("CategoryId"),"UpdateCachedPath");
//RunDown($c->Get("CategoryId"),"UpdateACL");
unset($c);
unset($r);
$rs->MoveNext();
}
@$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table");
unset($GLOBALS['_CopyFromEditTable']);
return $item_ids;
//$this->UpdateMissingCacheData();
}
function PurgeEditTable($idfield)
{
parent::PurgeEditTable($idfield);
$sql = "DELETE FROM ".GetTablePrefix()."Permissions WHERE CatId=-1";
$this->adodbConnection->Execute($sql);
}
function GetExclusiveType($CatId)
{
global $objItemTypes, $objConfig;
$itemtype = NULL;
$c =& $this->GetItem($CatId);
$path = $c->Get("ParentPath");
foreach($objItemTypes->Items as $Type)
{
$RootVar = $Type->Get("ItemName")."_Root";
$RootId = $objConfig->Get($RootVar);
if((int)$RootId)
{
$rcat = $this->GetItem($RootId);
$rpath = $rcat->Get("ParentPath");
$p = substr($path,0,strlen($rpath));
//echo $rpath." vs. .$p [$path]<br>\n";
if($rpath==$p)
{
$itemtype = $Type;
break;
}
}
}
return $itemtype;
}
}
function RunUp($Id, $function, $Param=NULL)
{
global $objCatList;
$d = $objCatList->GetCategory($Id);
$ParentId = $d->Get("ParentId");
if ($ParentId == 0)
{
if($Param == NULL)
{
$d->$function();
}
else
{
$d->$function($Param);
}
}
else
{
RunUp($ParentId, $function, $Param);
if($Param == NULL)
{
$d->$function();
}
else
{
$d->$function($Param);
}
}
}
function RunDown($Id, $function, $Param=NULL)
{
global $objCatList;
$adodbConnection = &GetADODBConnection();
$sql = "select CategoryId from ".GetTablePrefix()."Category where ParentId='$Id'";
$rs = $adodbConnection->Execute($sql);
while($rs && !$rs->EOF)
{
RunDown($rs->fields["CategoryId"], $function, $Param);
$rs->MoveNext();
}
$d = $objCatList->GetCategory($Id);
if($Param == NULL)
{
$d->$function();
}
else
$d->$function($Param);
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/include/category.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.41
\ No newline at end of property
+1.42
\ No newline at end of property
Index: trunk/kernel/include/item.php
===================================================================
--- trunk/kernel/include/item.php (revision 3249)
+++ trunk/kernel/include/item.php (revision 3250)
@@ -1,1150 +1,1176 @@
<?php
class clsItem extends clsParsedItem
{
var $type;
var $Reviews;
var $Related;
var $Images;
var $PrimaryCat;
var $IsNew = FALSE;
var $IsHot = FALSE;
var $IsPop = FALSE;
var $Keywords;
var $OpenTagVar;
var $CloseTagVar;
var $AdminParser;
var $CustomFields;
var $FieldClass;
var $CustomLoaded=0;
var $ReviewSortOrder;
var $ReviewPerPageVar;
var $TitleField = '';
function clsItem($FullItem=FALSE)
{
$this->clsParsedItem();
if($FullItem==TRUE)
{
$this->Reviews = new clsItemReviewList();
$this->Related = new clsRelationshipList();
}
$this->Images = new clsImageList();
$this->CustomFields = array();
$this->FieldClass = new clsCustomFieldList();
}
function ClearCacheData()
{
DeleteModuleTagCache('kernel');
DeleteModuleTagCache('inlink');
DeleteModuleTagCache('innews');
DeleteModuleTagCache('inbulletin');
}
/* item reviews */
function &GetItemReviews($Page=1)
{
$res_id = $this->Get("ResourceId");
$this->Reviews->itemID=$res_id;
$this->Reviews->PerPageVar = $this->ReviewPerPageVar;
$this->Reviews->Page = $Page;
$this->Reviews->GetReviewList("Status=1",$this->ReviewSortOrder);
return $this->Reviews;
}
function ReviewCount($TodayOnly=FALSE)
{
if(is_numeric($this->Get("CachedReviewsQty")) && !$TodayOnly)
return (int)$this->Get("CachedReviewsQty");
$this->Reviews->itemID=$this->Get("ResourceId");
return (int)$this->Reviews->GetItemReviewCount($TodayOnly);
}
function ReviewsLoaded()
{
if($this->Reviews->itemID==$this->Get("ResourceId"))
{
return $this->Reviews->ItemCount();
}
else
return 0;
}
function &AddReview($createdBy,$reviewText,$isPending,$ip=NULL,$ForceIP=0, $Module="", $CreatedOn = 0)
{
$this->Reviews->itemID=$this->Get("ResourceId");
if($ip == NULL)
$ip = $_SERVER["REMOTE_ADDR"];
if(!$CreatedOn)
$CreatedOn = mktime(0,0,0,adodb_date("m"),adodb_date("d"),adodb_date("Y"));
$Status = 1;
if($isPending)
$Status = 2;
$AutoModule = GetModuleByAction(); // determine module name by action
if( $Module && ($AutoModule != $Module) ) $AutoModule = $Module;
$r = $this->Reviews->AddReview($CreatedOn,$reviewText,$Status,$ip,0,$this->Get("ResourceId"),$this->type,$createdBy,0,$AutoModule);
$this->Increment("CachedReviewsQty");
return $r;
}
function ReviewIPExists($ip)
{
return ip_exists($ip,$this->Get("ResourceId"),$this->Reviews->SourceTable);
}
function DeleteReview($reviewID)
{
$r = $this->Reviews->GetReview($reviewID);
if(is_object($r))
{
$r->Delete();
$this->Decrement("CachedReviewsQty");
}
}
function DeleteReviews()
{
$res_id = $this->Get("ResourceId");
if($res_id)
{
$sql = "DELETE FROM ".GetTablePrefix()."ItemReview WHERE ItemId=$res_id";
$this->adodbConnection->Execute($sql);
unset($this->Reviews);
$this->Reviews = new clsItemReviewList($res_id);
}
}
/* item custom fields */
function LoadCustomFields($force = null)
{
if((!is_null($force) || !$this->CustomLoaded) && $this->Get("ResourceId")>0)
{
$this->FieldClass = new clsCustomFieldList();
$this->FieldClass->Type = $this->type;
$this->FieldClass->LoadFieldsAndValues($this->Get("ResourceId"));
foreach($this->FieldClass->Items as $f)
{
if (strlen($f->Get("ValueList") && (($f->Get("ElementType") == "select") || ($f->Get("ElementType") == "radio"))))
{
if ($f->HasField('Value'))
{
$ValueList = explode(",", $f->Get("ValueList"));
if (is_array($ValueList))
{
foreach ($ValueList as $curr => $value)
{
$c_data = explode("=", $value);
if ($c_data[0] == $f->Get('Value'))
{
$this->CustomFields[$f->Get("FieldName")]['value'] = $f->Get('Value');
$this->CustomFields[$f->Get("FieldName")]['lang_value'] = language($c_data[1]);
}
}
}
else
{
$this->CustomFields[$f->Get("FieldName")]['value'] = $f->HasField('Value') ? $f->Get('Value') : '';
$this->CustomFields[$f->Get("FieldName")]['lang_value'] = null;
}
}
else
{
$this->CustomFields[$f->Get("FieldName")]['value'] = strlen($f->HasField('Value')) ? $f->Get('Value') : '';
$this->CustomFields[$f->Get("FieldName")]['lang_value'] = null;
}
}
else
{
$this->CustomFields[$f->Get("FieldName")]['value'] = strlen($f->HasField('Value')) ? $f->Get('Value') : '';
$this->CustomFields[$f->Get("FieldName")]['lang_value'] = null;
}
}
$this->CustomLoaded = 1;
}
}
function SetCustomField($fieldname,$value)
{
// echo "Setting CF [<b>$fieldname</b>] = [$value]<br>";
if(!$this->CustomLoaded)
$this->LoadCustomFields();
$this->CustomFields[$fieldname] = $value;
}
function SaveCustomFields()
{
//echo "Saving CFs<br>";
if(!(int)$this->Get("ResourceId"))
return TRUE;
if(!$this->CustomLoaded)
return TRUE;
$data = new clsCustomDataList();
$data->LoadResource($this->Get("ResourceId"));
foreach($this->FieldClass->Items as $f)
{
$value = $this->CustomFields[$f->Get("FieldName")];
$data->SetFieldValue($f->Get("CustomFieldId"),$this->Get("ResourceId"),$value);
}
$data->SaveData();
unset($data);
}
/*
function GetCustomFieldValue($fieldname,$default="")
{
if(!$this->CustomLoaded)
$this->LoadCustomFields();
$fieldname=strtolower($fieldname);
foreach($this->CustomFields as $k=>$v)
if(strtolower($k)==$fieldname)
return $v;
return $default;
if(isset($this->CustomFields[$fieldname]))
{
$ret = $this->CustomFields[$fieldname];
}
elseif(isset($this->CustomFields[$fieldname=strtolower($fieldname)]))
{
$ret = $this->CustomFields[$fieldname];
}
else
$ret = $default;
return $ret;
}
*/
function GetCustomFieldValue($fieldname, $default="", $ListValue = 0)
{
if(!$this->CustomLoaded)
$this->LoadCustomFields(null);
elseif (is_array($this->CustomFields) && empty($this->CustomFields))
$this->LoadCustomFields(1);
$fieldname = strtolower($fieldname);
foreach($this->CustomFields as $k => $v)
{
if(strtolower($k) == $fieldname)
{
return $ListValue? $v['lang_value'] : $v['value'];
}
}
return $default;
}
function DeleteCustomData()
{
$cdata = new clsCustomDataList();
$cdata->DeleteResource($this->Get("ResourceId"));
}
function Delete($RecordOnly=FALSE)
{
global $objFavorites;
if($RecordOnly==FALSE)
{
$this->DeleteReviews();
$this->DeleteRelations();
$this->DeleteCustomData();
if($this->NoResourceId==0)
{
if($this->UsingTempTable()==FALSE)
{
if(is_object($this->Images))
$this->Images->DeleteResource($this->Get("ResourceId"));
$objFavorites->DeleteItem($this->Get("ResourceId"));
}
}
}
parent::Delete();
}
/* item relationships */
function GetRelatedItems()
{
global $objConfig;
$where = "SourceId = ".$this->Get("ResourceId");
$where .= " OR (TargetId=".$this->Get("ResourceId")." AND Type=1)";
$orderBy = $objConfig->Get("Relation_Sortfield")." ".$objConfig->Get("Relation_Sortorder");
$orderBy = trim($orderBy);
$this->Related->Clear();
$res = $this->Related->LoadRelated($where,$orderBy);
return $res;
}
function &RelationObject()
{
return $this->Related;
}
function DeleteRelations()
{
$res_id = $this->Get("ResourceId");
if($res_id)
{
$sql = "DELETE FROM ".GetTablePrefix()."Relationship WHERE SourceId=$res_id OR TargetId=$res_id";
$this->adodbConnection->Execute($sql);
unset($this->Reviews);
$this->Related = new clsRelationshipList($res_id);
}
}
/* keyword highlighting for searches */
function HighlightField($field)
{
global $objConfig;
if(/*!strlen($OpenTag) || !strlen($CloseTag) ||*/ !is_array($this->Keywords))
{
//echo "Missing something<br>\n";
return $this->Get($field);
}
if(strlen($this->OpenTagVar))
$OpenTag = $objConfig->Get($this->OpenTagVar);
if(strlen($this->CloseTagVar))
$CloseTag = $objConfig->Get($this->CloseTagVar);
$k = array_merge($this->Keywords["required"],$this->Keywords["normal"]);
if(count($k))
{
$result = HighlightKeywords($k, $this->Get($field), $OpenTag, $CloseTag);
}
else
{
$result = $this->Get($field);
//echo "No Keywords<br>\n";
}
return $result;
}
function HighlightText($text)
{
global $objConfig;
if(strlen($this->OpenTagVar))
$OpenTag = $objConfig->Get($this->OpenTagVar);
if(strlen($this->CloseTagVar))
$CloseTag = $objConfig->Get($this->CloseTagVar);
if(!strlen($OpenTag) || !strlen($CloseTag) || !is_array($this->Keywords)) {
return $text;
}
$k = array_merge($this->Keywords["required"],$this->Keywords["normal"]);
if(count($k))
{
$result = HighlightKeywords($k,$text, $OpenTag, $CloseTag);
}
else
$result = $text;
return $result;
}
/* item status functions */
function Is($name)
{
$var = "m_" . $name;
return ( isset($this->$var) && $this->$var ) ? true : false;
}
function IsHotItem()
{
switch($this->Get("HotItem"))
{
case ALWAYS:
return TRUE;
break;
case NEVER:
return FALSE;
break;
case AUTO:
return $this->IsHot;
break;
}
}
function SetHotItem()
{
$this->IsHot = FALSE;
}
function IsNewItem()
{
switch($this->Get("NewItem"))
{
case ALWAYS:
return TRUE;
break;
case NEVER:
return FALSE;
break;
case AUTO:
return $this->IsNew;
break;
}
}
function SetNewItem()
{
$this->IsNew = FALSE;
}
function IsPopItem()
{
switch($this->Get("PopItem"))
{
case ALWAYS:
return TRUE;
break;
case NEVER:
return FALSE;
break;
case AUTO:
return $this->IsPop;
break;
}
}
function SetPopItem()
{
$this->IsPop = FALSE;
}
function SetFromArray($data, $dirty = false)
{
parent::SetFromArray($data, $dirty);
if(is_array($data))
{
if(array_key_exists("NewItem",$data))
{
$this->SetNewItem();
}
if(array_key_exists("HotItem",$data))
{
$this->SetHotItem();
}
if(array_key_exists("PopItem",$data))
{
$this->SetPopItem();
}
}
}
function Validate()
{
/* skeleton*/
return true;
}
function LoadFromDatabase($Id, $IdField = null) // custom IdField by Alex)
{
/* skeleton */
parent::LoadFromDatabase($Id, $IdField);
}
//Changes priority
function MoveDown()
{
$this->Decrement("Priority");
}
function MoveUp()
{
$this->Increment("Priority");
}
function CheckPermission($permissionName)
{
//Check permission and if needs approval set approval
global $objSession,$objCatList;
$perm = $this->BasePermission;
if(strlen($perm)>0)
$perm .= ".";
$perm .= $permissionName;
//get an instance of the forum category
$cat =& $objCatList->GetCategory($this->Get("CategoryId"));
if(!is_object($cat))
{
return FALSE;
}
else
{
return ($cat->HasPermission($perm,$objSession->Get("GroupId")));
}
}
function SubmitVote($voteRating, $voteNotes)
{
global $Errors;
global $REMOTE_ADDR;
//echo "Submitting vote<br>";
/* if($this->rating_ip_exists($REMOTE_ADDR))
{
// $Errors->AddError("error.already_voted","","","",get_class($this),"SubmitVote");
return false;
}*/
$vote = new clsItemRating(NULL);
$vote->Set("ItemId",$this->UniqueId());
$vote->Set("RatingValue",$voteRating);
if(!$vote->Create()) {
//echo "Submitting Failed<br>";
return false;
}
$NumVotes = (int)$this->Get('CachedVotesQty');
$CurrentRating = $this->Get('CachedRating');
$Rating = (($NumVotes * $CurrentRating) + $voteRating)/($NumVotes+1);
$this->Set("CachedRating",$Rating);
$this->Update();
$this->Increment("CachedVotesQty");
//echo "Submitting Done<br>";
}
function rating_ip_exists($ip)
{
$count = 0;
$id = $this->Get("ResourceId");
$sql = "SELECT count(*) as DupCount FROM ".GetTablePrefix()."ItemRating WHERE IPAddress='$ip' and ItemId=$id";
$adodbConnection = &GetADODBConnection();
$rs = $adodbConnection->Execute($sql);
if($rs)
{
$count = $rs->fields["DupCount"];
}
return ($count>0);
//return FALSE;
}
function PurgeRatings()
{
global $objConfig;
$expired=time()-86400*$objConfig->Get("Timeout_Rating");
$query="DELETE FROM ".GetTablePrefix()."ItemRating WHERE CreatedOn<$expired";
$this->adodbConnection->Execute($query);
}
function GetThumbnailImage()
{
if($this->Images->NumItems()==0)
$this->Images->GetResourceImages($this->Get("ResourceId"));
return $this->Images->GetResourceThumbnail($this->Get("ResourceId"));
}
function GetImage($number)
{
return $this->Images->GetImageByResource($this->Get("ResourceId"),$number);
}
function GetImageByName($name)
{
if(!is_object($this->Images))
$this->Images = new clsImageList();
return $this->Images->GetImageByName($this->Get("ResourceId"),$name);
}
function &GetDefaultImage()
{
return $this->Images->GetDefaultImage($this->Get("ResourceId"));
}
function &GetAvatarImage()
{
return $this->Images->GetAvatarImage($this->Get("ResourceId"));
}
function CreatePendingCopy()
{
$OrgId = $this->IdField();
$this->Dirty();
$this->Set("OrgId",$OrgId);
$this->UnsetIdField();
$this->Set("ResourceId",0);
$this->Set("Status",-2);
$this->Create();
}
function AddFavorite($PortalUserId=NULL)
{
global $objSession, $objFavorites;
$res = FALSE;
// user can be added to favorites, but they have no primary category :)
$category_id = method_exists($this, 'GetPrimaryCategory') ? $this->GetPrimaryCategory() : $GLOBALS['m_var_list']['cat'];
if( $objSession->HasCatPermission("FAVORITES", $category_id) )
{
if(!$PortalUserId)
$PortalUserId = $objSession->Get("PortalUserId");
if($PortalUserId==$objSession->Get("PortalUserId") || $objSession->HasSystemPermission("ADMIN"))
{
$objFavorites->AddFavorite($PortalUserId,$this->Get("ResourceId"), $this->type);
$res = TRUE;
}
}
return $res;
}
function DeleteFavorite($PortalUserId=NULL)
{
global $objSession, $objFavorites;
$res = FALSE;
// user can be added to favorites, but they have no primary category :)
$category_id = method_exists($this, 'GetPrimaryCategory') ? $this->GetPrimaryCategory() : $GLOBALS['m_var_list']['cat'];
if( $objSession->HasCatPermission("FAVORITES", $category_id) )
{
if(!$PortalUserId)
$PortalUserId = $objSession->Get("PortalUserId");
//echo $PortalUserId." ".$objSession->Get("PortalUserId");
if($PortalUserId==$objSession->Get("PortalUserId") || $objSession->HasSystemPermission("ADMIN"))
{
$objFavorites->DeleteFavorite($PortalUserId,$this->Get("ResourceId"));
$res = TRUE;
}
}
return $res;
}
function IsFavorite($PortalUserId=NULL, $cat_id=NULL)
{
global $objSession, $objFavorites;
$res = FALSE;
if($objSession->HasCatPermission("FAVORITES", $cat_id))
{
if(!$PortalUserId)
$PortalUserId = $objSession->Get("PortalUserId");
if($PortalUserId==$objSession->Get("PortalUserId") || $objSession->HasSystemPermission("ADMIN"))
{
$i = $objFavorites->GetFavoriteObject($PortalUserId,$this->Get("ResourceId"));
if(is_object($i))
{
$res = TRUE;
}
else
$res = FALSE;
}
}
return $res;
}
function CheckBanned()
{
global $objBanList;
$objBanList->LoadItemRules($this->type);
$found = FALSE;
$MatchedRule = 0;
foreach($objBanList->Items as $b)
{
$field = $b->Get("ItemField");
if($this->FieldExists($field))
{
$ThisValue = strtolower($this->Get($field));
$TestValue = strtolower($b->Get("ItemValue"));
switch($b->Get("ItemVerb"))
{
case 0: /* any */
$found = TRUE;
break;
case 1: /* is */
if($ThisValue==$TestValue)
$found = TRUE;
break;
case 2: /* is not */
if($ThisValue != $TestValue)
$found = TRUE;
break;
case 3: /* contains */
if(strstr($ThisValue,$TestValue))
$found = TRUE;
break;
case 4: /* not contains */
if(!strstr($ThisValue,$TestValue))
$found = TRUE;
break;
case 5: /* Greater Than */
if($TestValue > $ThisValue)
$found = TRUE;
break;
case 6: /* Less Than */
if($TestValue < $ThisValue)
$found = TRUE;
break;
case 7: /* exists */
if(strlen($ThisValue)>0)
$found = TRUE;
break;
case 8: /* unique */
if($this->ValueExists($field,$ThisValue))
$found = TRUE;
break;
}
}
if($found)
{
if($b->Get("RuleType")==0)
{
$MatchedRule = $b->Get("RuleId");
}
else
{
$MatchedRule = 0;
}
break;
}
}
return $MatchedRule;
}
} /* clsItem */
class clsCatItem extends clsItem
{
function clsCatItem($FullItem=FALSE)
{
$this->clsItem($FullItem);
}
function Delete($RecordOnly=FALSE)
{
global $objFavorites;
parent::Delete($RecordOnly);
if($RecordOnly==FALSE)
{
$this->RemoveFromAllCategories();
}
}
/* category membership functions */
function AssignPrimaryCategory($SourceTable)
{
$catid = 0;
$sql = "SELECT * FROM $SourceTable WHERE ItemResourceId=".$this->Get("ResourceId")." LIMIT 1";
$rs = $this->adodbConnection->Execute($sql);
if($rs && !$rs->EOF)
{
$catid = $rs->fields["CategoryId"];
$this->SetPrimaryCategory($catid,$SourceTable);
}
return $catid;
}
function GetPrimaryCategory($SourceTable = "")
{
if(is_numeric($this->PrimaryCat))
return $this->PrimaryCat;
$this->PrimaryCat="";
if( strlen($SourceTable) == 0 ) $SourceTable = GetTablePrefix()."CategoryItems";
$res_id = $this->HasField('ResourceId') ? $this->Get('ResourceId') : 0;
$sql = "SELECT * FROM $SourceTable WHERE ItemResourceId=".$res_id." AND PrimaryCat=1";
$rs = $this->adodbConnection->Execute($sql);
if($rs && !$rs->EOF)
{
$this->PrimaryCat=$rs->fields["CategoryId"];
return $this->PrimaryCat;
}
else
{
$this->AssignPrimaryCategory($SourceTable);
return $this->PrimaryCat;
}
}
function SetPrimaryCategory($CategoryId,$SourceTable = "")
{
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
$rs = $this->adodbConnection->Execute('SELECT * FROM '.$SourceTable.' WHERE CategoryId='.$CategoryId.' AND ItemResourceId='.$this->Get("ResourceId"));
$this->adodbConnection->Execute("UPDATE $SourceTable SET PrimaryCat=0 WHERE ItemResourceId=".$this->Get("ResourceId"));
$this->adodbConnection->Execute("UPDATE $SourceTable SET PrimaryCat=1 WHERE CategoryId=$CategoryId AND ItemResourceId=".$this->Get("ResourceId"));
$this->PrimaryCat=$CategoryId;
}
function CategoryMemberCount($SourceTable="")
{
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
$sql = "SELECT count(*) as CatCount FROM $SourceTable WHERE ItemResourceId=".$this->Get("ResourceId");
if($this->debuglevel)
echo $sql."<br>\n";
$rs = $this->adodbConnection->Execute($sql);
$count = 0;
if($rs && !$rs->EOF)
$count = $rs->fields["CatCount"];
return $count;
}
/**
* Return comma separated CategoryId list,
* where this item is member (will be shown there)
*
* @param string $SourceTable
* @return string
*/
function CategoryMemberList($SourceTable="")
{
$cats = array();
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
$sql = "SELECT * FROM $SourceTable WHERE ItemResourceId=".$this->Get("ResourceId");
if($this->debuglevel)
echo $sql."<br>\n";
$rs = $this->adodbConnection->Execute($sql);
while($rs && !$rs->EOF)
{
$cats[] = $rs->fields["CategoryId"];
$rs->MoveNext();
}
$catlist = implode(",",$cats);
return $catlist;
}
function AddToCategory($CatId,$SourceTable="",$PrimaryValue=NULL)
{
global $objSession, $objCatList;
if(!$SourceTable)
$SourceTable = GetTablePrefix()."CategoryItems";
if($this->type>0)
{
$Primary = 0;
if(is_numeric($PrimaryValue))
{
$Primary = $PrimaryValue;
if($Primary==1)
$this->PrimaryCat = $CatId;
}
else
{
if(!is_numeric($this->GetPrimaryCategory()))
{
$Primary =1;
$this->PrimaryCat = $CatId;
}
}
// check if not exists
$db =& $this->adodbConnection;
$sql = sprintf('SELECT * FROM %s WHERE CategoryId = %s AND ItemResourceId = %s', $SourceTable, (int)$CatId, $this->Get("ResourceId"));
$rs = $db->Execute($sql);
if (is_object($rs)) {
if($rs->RecordCount() == 0 )
{
$sql = "INSERT INTO $SourceTable (CategoryId,ItemResourceId, PrimaryCat) VALUES (".(int)$CatId.",'".$this->Get("ResourceId")."',$Primary)";
if($this->debuglevel)
echo $sql."<br>\n";
$this->adodbConnection->Execute($sql);
}
}
$c = $objCatList->GetCategory($CatId);
}
}
function RemoveFromCategory($CatId,$SourceTable="",$Force=0)
{
if(!is_numeric($CatId)) return;
global $objSession, $objCatList;
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
if($this->type>0)
{
$primary = $this->GetPrimaryCategory();
if(($primary==$CatId && $this->CategoryMemberCount($SourceTable)>1) || ($primary != $CatId) || $Force)
{
$sql = "DELETE FROM $SourceTable WHERE CategoryId=$CatId AND ItemResourceId=".$this->Get("ResourceId");
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."<br>\n";
$this->adodbConnection->Execute($sql);
$c = $objCatList->GetCategory($CatId);
$c->ClearCacheData();
}
}
}
function MoveToCategory($OldCatId,$NewCatId,$SourceTable="")
{
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
$sql = "UPDATE $SourceTable SET CategoryId=$NewCatId WHERE CategoryId=$OldCatId AND ItemResourceId=".$this->Get("ResourceId");
if($this->debuglevel)
echo $sql."<br>\n";
$this->adodbConnection->Execute($sql);
}
function DeleteCategoryItems($CatId,$SourceTable = "")
{
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
$CatCount = $this->CategoryMemberCount($SourceTable);
if($CatCount>1)
{
$this->RemoveFromCategory($CatId,$SourceTable);
$this->ClearCacheData();
}
else
{
$this->Delete();
$sql = "DELETE FROM $SourceTable WHERE CategoryId=$CatId AND ItemResourceId=".$this->Get("ResourceId");
if($this->debuglevel)
echo $sql."<br>\n";
$this->adodbConnection->Execute($sql);
}
}
function RemoveFromAllCategories($SourceTable = "")
{
if(strlen($SourceTable)==0)
$SourceTable = GetTablePrefix()."CategoryItems";
if($this->type>0)
{
$sql = "SELECT * FROM $SourceTable WHERE ItemResourceId=".$this->Get("ResourceId");
$rs = $this->adodbConnection->Execute($sql);
while ($rs && !$rs->EOF)
{
$CategoryId = $rs->fields["CategoryId"];
$rs->MoveNext();
}
$sql = "DELETE FROM $SourceTable WHERE ItemResourceId=".$this->Get("ResourceId");
if($this->debuglevel)
echo $sql."<br>\n";
$this->adodbConnection->Execute($sql);
}
}
function CopyToNewResource($TargetCat = NULL,$NameField="Name")
{
global $objSession;
$CatList = $this->CategoryMemberList();
$Cats = explode(",",$CatList);
//echo "Target: $TargetCat<br>";
$OldId = $this->Get("ResourceId");
$this->UnsetIdField();
$this->Dirty();
if(!is_numeric($this->Get("OrgId")))
$this->UnsetField("OrgId");
$this->UnsetField("ResourceId");
if(is_numeric($TargetCat) && strlen($NameField))
{
$OldName = $this->Get($NameField);
if(substr($OldName,0,5)=="Copy ")
{
$parts = explode(" ",$OldName,4);
if($parts[2]=="of" && is_numeric($parts[1]))
{
$Name = $parts[3];
}
else
if($parts[1]=="of")
{
$Name = $parts[2]." ".$parts[3];
}
else
$Name = $OldName;
}
else
$Name = $OldName;
$Names = CategoryItemNameCount($TargetCat,$this->tablename,$NameField,$Name);
if(count($Names)>0)
{
$NameCount = count($Names);
$found = FALSE;
$NewName = "Copy of $Name";
if(!in_array("Copy of $Name",$Names))
{
$found = TRUE;
}
else
{
for($x=2;$x<$NameCount+2;$x++)
{
$NewName = "Copy ".$x." of ".$Name;
if(!in_array($NewName,$Names))
{
$found = TRUE;
break;
}
}
}
if(!$found)
{
$NameCount++;
$NewName = "Copy $NameCount of $Name";
}
$this->Set($NameField,$NewName);
}
}
$this->Create();
// copy relationships
$NewId = $this->Get("ResourceId");
$reldata = new clsRelationshipList($TargetCat,$this->IdField());
$reldata->CopyToResource($OldId,$NewId);
// copy reviews
$rdata = new clsItemReviewList();
$rdata->CopyToItemId($OldId,$NewId);
unset($rdata);
// copy custom fields
$cdata = new clsCustomDataList();
$cdata->CopyResource($OldId,$NewId);
unset($cdata);
// copy images
if(is_object($this->Images))
$this->Images->CopyResource($OldId,$NewId);
$this->AddToCategory($TargetCat, '', 0); // insert (but with duplicate records check)
//echo "ok";
if(is_numeric($TargetCat))
{
if(is_array($Cats))
{
if(!in_array($TargetCat,$Cats))
{
$this->AddToCategory($TargetCat, 0); // insert
}
}
$this->SetPrimaryCategory($TargetCat); // 2 updates
}
}
function refreshLastUpdate($cat_id = null)
{
$db =& GetADODBConnection();
$prefix = GetTablePrefix();
// 1,2,3,4 - set lastupdate date to item's primary category as recent
// change date of all items in this category of same type as this item
// 1. get item category or use passed one
if(!isset($cat_id)) $cat_id = $this->GetPrimaryCategory();
if($cat_id == 0) return false;
// 2. get all item ResourceIds in that category
$sql = 'SELECT ItemResourceId FROM '.$prefix.'CategoryItems WHERE CategoryId = '.$cat_id;
$item_rids = $db->GetCol($sql);
if($item_rids)
{
$item_rids = implode(',',$item_rids);
// 2a. get LastUpdate date based on all item in $cat_id category
$sql = 'SELECT MAX(IF(Modified=0,CreatedOn,Modified)) FROM '.$this->tablename.' WHERE ResourceId IN ('.$item_rids.')';
$item_last_update = $db->GetOne($sql);
}
else
{
$item_last_update = 0;
}
// 3. get LastUpdate date based on all $cat_id subcategories
$sql = 'SELECT MAX(IF(Modified=0,CreatedOn,Modified)) FROM '.$prefix.'Category WHERE ParentId = '.$cat_id;
$cat_last_update = $db->GetOne($sql);
$last_update = max($item_last_update,$cat_last_update);
// 4. set $last_update date to $cat_id category
$sql = 'UPDATE '.$prefix.'Category SET Modified = '.$last_update.' WHERE CategoryId = '.$cat_id;
$db->Execute($sql);
// 5. get $cat_id parent CategoryId
$sql = 'SELECT ParentId FROM '.$prefix.'Category WHERE CategoryId = '.$cat_id;
if($cat_id > 0) $this->refreshLastUpdate( $db->GetOne($sql) );
}
function StripDisallowed($string)
{
$not_allowed = Array( ' ', '\\', '/', ':', '*', '?', '"', '<', '>', '|',
'~', '!', '@', '#', '$', '%', '^', '&', '(', ')',
'+', '=', '-', '{', '}', ']', '[', "'", ';', '.', ',');
$string = str_replace($not_allowed, '_', $string);
$string = preg_replace('/(_+)/', '_', $string);
+ $string = $this->checkAutoFilename($string);
- while( preg_match('/(.*)_([\d]+)$/', $string, $rets) )
+ return $string;
+ }
+
+ function checkAutoFilename($filename)
+ {
+ if(!$filename || $this->UniqueId() == 0 ) return $filename;
+ $db =& GetADODBConnection();
+
+ $sql = 'SELECT '.$this->IdField().' FROM '.$this->tablename.' WHERE Filename = '.$db->qstr($filename);
+ $found_item_id = $db->GetOne($sql);
+ $has_page = preg_match('/(.*)_([\d]+)([a-z]*)$/', $filename, $rets);
+ if( ($found_item_id != $this->UniqueId()) || $has_page ) // other category has same filename as ours OR we have filename, that ends with _number
{
- $string = $rets[1];
+ $append = $found_item_id ? 'a' : '';
+ if($has_page)
+ {
+ $filename = $rets[1].'_'.$rets[2];
+ $append = $rets[3] ? $rets[3] : 'a';
+ }
+
+ $sql = 'SELECT '.$this->IdField().' FROM '.$this->tablename.' WHERE (Filename = %s) AND ('.$this->IdField().' != '.$this->UniqueId().')';
+ while ( $db->GetOne( sprintf($sql, $db->qstr($filename.$append)) ) > 0 )
+ {
+ if (substr($append, -1) == 'z') $append .= 'a';
+ $append = substr($append, 0, strlen($append) - 1) . chr( ord( substr($append, -1) ) + 1 );
+ }
+
+ return $filename.$append;
}
-
- return $string;
+
+ return $filename;
}
function GenerateFilename()
{
if ( !$this->Get('AutomaticFilename') && $this->Get('Filename') ) return false;
$name = $this->StripDisallowed( $this->Get($this->TitleField) );
if ( $name != $this->Get('Filename') ) $this->Set('Filename', $name);
}
function Update($UpdatedBy = null)
{
$this->GenerateFilename();
parent::Update($UpdatedBy);
}
function Create()
{
$this->GenerateFilename();
parent::Create();
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/include/item.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.30
\ No newline at end of property
+1.31
\ No newline at end of property
Index: trunk/admin/install/langpacks/english.lang
===================================================================
--- trunk/admin/install/langpacks/english.lang (revision 3249)
+++ trunk/admin/install/langpacks/english.lang (revision 3250)
@@ -1,2127 +1,2132 @@
<LANGUAGES>
<LANGUAGE PackName="English"><DATEFORMAT>m/d/y</DATEFORMAT><TIMEFORMAT>g:i:s A</TIMEFORMAT><DECIMAL>.</DECIMAL><THOUSANDS>,</THOUSANDS><CHARSET>iso-8859-1</CHARSET><UNITSYSTEM>2</UNITSYSTEM>
<PHRASES>
<PHRASE Label=" lu_resetpw_confirm_text" Module="In-Portal" Type="0">WW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4gWW91IHdpbGwgcmVjZWl2ZSB5b3VyIG5ldyBwYXNzd29yZCBpbiB0aGUgZW1haWwgc2hvcnRseS4=</PHRASE>
<PHRASE Label="la_Active" Module="In-Portal" Type="1">QWN0aXZl</PHRASE>
<PHRASE Label="la_added" Module="In-Portal" Type="1">QWRkZWQ=</PHRASE>
<PHRASE Label="la_AddTo" Module="In-Portal" Type="1">QWRkIFRv</PHRASE>
<PHRASE Label="la_approve_description" Module="In-Portal" Type="1">QWN0aXZl</PHRASE>
<PHRASE Label="la_Article_Author" Module="In-Portal" Type="1">QXV0aG9y</PHRASE>
<PHRASE Label="la_Article_Date" Module="In-Portal" Type="1">RGF0ZQ==</PHRASE>
<PHRASE Label="la_Article_Excerpt" Module="In-Portal" Type="1">QXJ0aWNsZSBFeGNlcnB0</PHRASE>
<PHRASE Label="la_Article_Hits" Module="In-Portal" Type="1">SGl0cw==</PHRASE>
<PHRASE Label="la_Article_Rating" Module="In-Portal" Type="1">UmF0aW5n</PHRASE>
<PHRASE Label="la_article_reviewed" Module="In-Portal" Type="1">QXJ0aWNsZSByZXZpZXdlZA==</PHRASE>
<PHRASE Label="la_Article_Title" Module="In-Portal" Type="1">QXJ0aWNsZSBUaXRsZQ==</PHRASE>
<PHRASE Label="la_Auto" Module="In-Portal" Type="1">QXV0bw==</PHRASE>
<PHRASE Label="la_Background" Module="In-Portal" Type="1">QmFja2dyb3VuZA==</PHRASE>
<PHRASE Label="la_ban_email" Module="In-Portal" Type="1">QmFuIGVtYWlsIGFkZHJlc3M=</PHRASE>
<PHRASE Label="la_ban_ip" Module="In-Portal" Type="1">QmFuIElQIGFkZHJlc3M=</PHRASE>
<PHRASE Label="la_ban_login" Module="In-Portal" Type="1">QmFuIHVzZXIgbmFtZQ==</PHRASE>
<PHRASE Label="la_bb" Module="In-Portal" Type="1">SW1wb3J0ZWQ=</PHRASE>
<PHRASE Label="la_Borders" Module="In-Portal" Type="1">Qm9yZGVycw==</PHRASE>
<PHRASE Label="la_button_ok" Module="In-Portal" Type="1">T0s=</PHRASE>
<PHRASE Label="la_bytes" Module="In-Portal" Type="1">Ynl0ZXM=</PHRASE>
<PHRASE Label="la_by_theme" Module="In-Portal" Type="1">QnkgdGhlbWU=</PHRASE>
<PHRASE Label="la_Cancel" Module="In-Portal" Type="1">Q2FuY2Vs</PHRASE>
<PHRASE Label="la_category" Module="In-Portal" Type="1">Q2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_Category_Date" Module="In-Portal" Type="1">RGF0ZQ==</PHRASE>
<PHRASE Label="la_category_daysnew_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgZm9yIGEgY2F0LiB0byBiZSBORVc=</PHRASE>
<PHRASE Label="la_Category_Description" Module="In-Portal" Type="1">Q2F0ZWdvcnkgRGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="la_category_metadesc" Module="In-Portal" Type="1">RGVmYXVsdCBNRVRBIGRlc2NyaXB0aW9u</PHRASE>
<PHRASE Label="la_category_metakey" Module="In-Portal" Type="1">RGVmYXVsdCBNRVRBIEtleXdvcmRz</PHRASE>
<PHRASE Label="la_Category_Name" Module="In-Portal" Type="1">Q2F0ZWdvcnkgTmFtZQ==</PHRASE>
<PHRASE Label="la_category_perpage_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGNhdGVnb3JpZXMgcGVyIHBhZ2U=</PHRASE>
<PHRASE Label="la_category_perpage__short_prompt" Module="In-Portal" Type="1">Q2F0ZWdvcmllcyBQZXIgUGFnZSAoU2hvcnRsaXN0KQ==</PHRASE>
<PHRASE Label="la_Category_Pick" Module="In-Portal" Type="1">UGljaw==</PHRASE>
<PHRASE Label="la_Category_Pop" Module="In-Portal" Type="1">UG9wdWxhcml0eQ==</PHRASE>
<PHRASE Label="la_category_showpick_prompt" Module="In-Portal" Type="1">RGlzcGxheSBlZGl0b3IgUElDS3MgYWJvdmUgcmVndWxhciBjYXRlZ29yaWVz</PHRASE>
<PHRASE Label="la_category_sortfield2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_category_sortfield_prompt" Module="In-Portal" Type="1">T3JkZXIgY2F0ZWdvcmllcyBieQ==</PHRASE>
<PHRASE Label="la_Close" Module="In-Portal" Type="1">Q2xvc2U=</PHRASE>
<PHRASE Label="la_ColHeader_AltValue" Module="In-Portal" Type="1">QWx0IFZhbHVl</PHRASE>
<PHRASE Label="la_ColHeader_BadWord" Module="In-Portal" Type="1">Q2Vuc29yZWQgV29yZA==</PHRASE>
<PHRASE Label="la_ColHeader_CreatedOn" Module="In-Portal" Type="2">Q3JlYXRlZCBPbg==</PHRASE>
<PHRASE Label="la_ColHeader_Date" Module="In-Portal" Type="1">RGF0ZS9UaW1l</PHRASE>
<PHRASE Label="la_ColHeader_Enabled" Module="In-Portal" Type="1">U3RhdHVz</PHRASE>
<PHRASE Label="la_ColHeader_FieldLabel" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_ColHeader_FieldName" Module="In-Portal" Type="1">RmllbGQgTmFtZQ==</PHRASE>
<PHRASE Label="la_Colheader_GroupType" Module="In-Portal" Type="1">VHlwZQ==</PHRASE>
<PHRASE Label="la_ColHeader_Image" Module="In-Portal" Type="1">SW1hZ2U=</PHRASE>
<PHRASE Label="la_ColHeader_InheritFrom" Module="In-Portal" Type="1">SW5oZXJpdGVkIEZyb20=</PHRASE>
<PHRASE Label="la_ColHeader_Item" Module="In-Portal" Type="1">SXRlbQ==</PHRASE>
<PHRASE Label="la_Colheader_ItemField" Module="In-Portal" Type="1">SXRlbSBGaWVsZA==</PHRASE>
<PHRASE Label="la_ColHeader_ItemType" Module="In-Portal" Type="1">SXRlbSBUeXBl</PHRASE>
<PHRASE Label="la_Colheader_ItemValue" Module="In-Portal" Type="1">SXRlbSBWYWx1ZQ==</PHRASE>
<PHRASE Label="la_ColHeader_ItemVerb" Module="In-Portal" Type="1">Q29tcGFyaXNvbiBPcGVyYXRvcg==</PHRASE>
<PHRASE Label="la_ColHeader_Name" Module="In-Portal" Type="2">TGluayBOYW1l</PHRASE>
<PHRASE Label="la_ColHeader_PermAccess" Module="In-Portal" Type="1">QWNjZXNz</PHRASE>
<PHRASE Label="la_ColHeader_PermInherited" Module="In-Portal" Type="1">SW5oZXJpdGVk</PHRASE>
<PHRASE Label="la_ColHeader_Poster" Module="In-Portal" Type="1">UG9zdGVy</PHRASE>
<PHRASE Label="la_ColHeader_Preview" Module="In-Portal" Type="1">UHJldmlldw==</PHRASE>
<PHRASE Label="la_ColHeader_Replacement" Module="In-Portal" Type="1">UmVwbGFjZW1lbnQ=</PHRASE>
<PHRASE Label="la_ColHeader_Reply" Module="In-Portal" Type="1">UmVwbGllcw==</PHRASE>
<PHRASE Label="la_ColHeader_RuleType" Module="In-Portal" Type="1">UnVsZSBUeXBl</PHRASE>
<PHRASE Label="la_ColHeader_Status" Module="In-Portal" Type="1">U3RhdHVz</PHRASE>
<PHRASE Label="la_ColHeader_Topic" Module="In-Portal" Type="1">VG9waWM=</PHRASE>
<PHRASE Label="la_ColHeader_Url" Module="In-Portal" Type="1">VVJM</PHRASE>
<PHRASE Label="la_ColHeader_ValidationStatus" Module="In-Portal" Type="2">U3RhdHVz</PHRASE>
<PHRASE Label="la_ColHeader_ValidationTime" Module="In-Portal" Type="2">VmFsaWRhdGVkIE9u</PHRASE>
<PHRASE Label="la_ColHeader_Value" Module="In-Portal" Type="1">VmFsdWU=</PHRASE>
<PHRASE Label="la_ColHeader_Views" Module="In-Portal" Type="1">Vmlld3M=</PHRASE>
<PHRASE Label="la_col_Basedon" Module="In-Portal" Type="1">QmFzZWQgT24=</PHRASE>
<PHRASE Label="la_col_Description" Module="In-Portal" Type="1">RGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="la_col_Duration" Module="In-Portal" Type="1">RHVyYXRpb24=</PHRASE>
<PHRASE Label="la_col_DurationType" Module="In-Portal" Type="1">RHVyYXRpb24gVHlwZQ==</PHRASE>
<PHRASE Label="la_col_Label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_col_LastChanged" Module="In-Portal" Type="1">TGFzdCBDaGFuZ2Vk</PHRASE>
<PHRASE Label="la_col_LastCompiled" Module="In-Portal" Type="1">TGFzdCBDb21waWxlZA==</PHRASE>
<PHRASE Label="la_col_LinkUrl" Module="In-Portal" Type="1">TGluayBVUkw=</PHRASE>
<PHRASE Label="la_col_LocalName" Module="In-Portal" Type="1">TmFtZQ==</PHRASE>
<PHRASE Label="la_col_Module" Module="In-Portal" Type="1">TW9kdWxl</PHRASE>
<PHRASE Label="la_col_Name" Module="In-Portal" Type="1">TmFtZQ==</PHRASE>
<PHRASE Label="la_col_PackName" Module="In-Portal" Type="1">UGFjayBOYW1l</PHRASE>
<PHRASE Label="la_col_PhraseType" Module="In-Portal" Type="1">VHlwZQ==</PHRASE>
<PHRASE Label="la_col_PrimaryValue" Module="In-Portal" Type="1">UHJpbWFyeSBWYWx1ZQ==</PHRASE>
<PHRASE Label="la_col_SelectorName" Module="In-Portal" Type="1">U2VsZWN0b3I=</PHRASE>
<PHRASE Label="la_col_Status" Module="In-Portal" Type="1">U3RhdHVz</PHRASE>
<PHRASE Label="la_col_Translation" Module="In-Portal" Type="1">VmFsdWU=</PHRASE>
<PHRASE Label="la_col_Type" Module="In-Portal" Type="1">VHlwZQ==</PHRASE>
<PHRASE Label="la_col_VisitDate" Module="In-Portal" Type="1">VmlzaXQgRGF0ZQ==</PHRASE>
<PHRASE Label="la_col_VisitId" Module="In-Portal" Type="1">SUQ=</PHRASE>
<PHRASE Label="la_common_ascending" Module="In-Portal" Type="1">QXNjZW5kaW5n</PHRASE>
<PHRASE Label="la_common_CreatedOn" Module="In-Portal" Type="1">RGF0ZQ==</PHRASE>
<PHRASE Label="la_common_descending" Module="In-Portal" Type="1">RGVzY2VuZGluZw==</PHRASE>
<PHRASE Label="la_common_ReviewText" Module="In-Portal" Type="1">UmV2aWV3IFRleHQ=</PHRASE>
<PHRASE Label="la_configerror_review" Module="In-Portal" Type="1">UmV2aWV3IG5vdCBhZGRlZCBkdWUgdG8gYSBzeXN0ZW0gZXJyb3I=</PHRASE>
<PHRASE Label="la_config_backup_path" Module="In-Portal" Type="1">QmFja3VwIFBhdGg=</PHRASE>
<PHRASE Label="la_config_company" Module="In-Portal" Type="1">Q29tcGFueQ==</PHRASE>
+ <PHRASE Label="la_config_error_template" Module="In-Portal" Type="1">RmlsZSBub3QgZm91bmQgKDQwNCkgdGVtcGxhdGU=</PHRASE>
<PHRASE Label="la_config_first_day_of_week" Module="In-Portal" Type="1">Rmlyc3QgRGF5IE9mIFdlZWs=</PHRASE>
<PHRASE Label="la_config_force_http" Module="In-Portal" Type="1">UmVkaXJlY3QgdG8gSFRUUCB3aGVuIFNTTCBpcyBub3QgcmVxdWlyZWQ=</PHRASE>
<PHRASE Label="la_config_name" Module="In-Portal" Type="1">TmFtZQ==</PHRASE>
<PHRASE Label="la_config_reg_number" Module="In-Portal" Type="1">UmVnaXN0cmF0aW9uIE51bWJlcg==</PHRASE>
<PHRASE Label="la_config_require_ssl" Module="In-Portal" Type="1">UmVxdWlyZSBTU0wgZm9yIGxvZ2luICYgY2hlY2tvdXQ=</PHRASE>
<PHRASE Label="la_config_server_name" Module="In-Portal" Type="1">U2VydmVyIE5hbWU=</PHRASE>
<PHRASE Label="la_config_server_path" Module="In-Portal" Type="1">U2VydmVyIFBhdGg=</PHRASE>
<PHRASE Label="la_config_site_zone" Module="In-Portal" Type="1">VGltZSB6b25lIG9mIHRoZSBzaXRl</PHRASE>
<PHRASE Label="la_config_ssl_url" Module="In-Portal" Type="1">U1NMIEZ1bGwgVVJMIChodHRwczovL3d3dy5kb21haW4uY29tL3BhdGgp</PHRASE>
<PHRASE Label="la_config_time_server" Module="In-Portal" Type="1">VGltZSB6b25lIG9mIHRoZSBzZXJ2ZXI=</PHRASE>
- <PHRASE Label="la_config_use_modrewrite" Module="In-Portal" Type="1">RW5hYmxlIG1vZF9yZXdyaXRlIChhcGFjaGUgb25seSk=</PHRASE>
+ <PHRASE Label="la_config_use_modrewrite" Module="In-Portal" Type="1">VXNlIE1PRCBSRVdSSVRF</PHRASE>
<PHRASE Label="la_config_website_address" Module="In-Portal" Type="1">V2Vic2l0ZSBhZGRyZXNz</PHRASE>
<PHRASE Label="la_config_website_name" Module="In-Portal" Type="1">V2Vic2l0ZSBuYW1l</PHRASE>
<PHRASE Label="la_config_web_address" Module="In-Portal" Type="1">V2ViIGFkZHJlc3M=</PHRASE>
<PHRASE Label="la_confirm_maintenance" Module="In-Portal" Type="1">VGhlIGNhdGVnb3J5IHRyZWUgbXVzdCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGxhdGVzdCBjaGFuZ2Vz</PHRASE>
<PHRASE Label="la_Continue" Module="In-Portal" Type="1">Q29udGludWU=</PHRASE>
<PHRASE Label="la_CreatedOn" Module="In-Portal" Type="1">Q3JlYXRlZCBPbg==</PHRASE>
<PHRASE Label="la_Credits_Title" Module="In-Portal" Type="1">Q3JlZGl0cw==</PHRASE>
<PHRASE Label="la_days" Module="In-Portal" Type="1">ZGF5cw==</PHRASE>
<PHRASE Label="la_Delete_Confirm" Module="In-Portal" Type="1">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgaXRlbShzKT8gVGhpcyBhY3Rpb24gY2Fubm90IGJlIHVuZG9uZS4=</PHRASE>
<PHRASE Label="la_Description_in-bulletin" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tQnVsbGV0aW4gc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_censorship" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgY2Vuc29yZWQgd29yZHMgYW5kIHRoZWlyIHJlcGxhY2VtZW50cw==</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_custom" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgY3VzdG9tIGZpZWxkcw==</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_email" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tYnVsbHRlaW4gZW1haWwgc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_emoticon" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2Ugc2ltbGV5cw==</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_output" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tYnVsbHRlaW4gb3V0cHV0IHNldHRpbmdz</PHRASE>
<PHRASE Label="la_Description_in-bulletin:configuration_search" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tYnVsbHRlaW4gZGVmYXVsdCBzZWFyY2ggc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-bulletin:inbulletin_general" Module="In-Portal" Type="2">SW4tYnVsbGV0aW4gZ2VuZXJhbCBjb25maWd1cmF0aW9uIG9wdGlvbnM=</PHRASE>
<PHRASE Label="la_Description_in-link" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbGluayBzZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_Description_in-link:configuration_custom" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgY3VzdG9tIGZpZWxkcw==</PHRASE>
<PHRASE Label="la_Description_in-link:configuration_email" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgZW1haWwgZXZlbnRz</PHRASE>
<PHRASE Label="la_Description_in-link:configuration_output" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbGluayBvdXRwdXQgc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-link:configuration_search" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2Ugc2VhcmNoIHNldHRpbmdzIGFuZCBmaWVsZHM=</PHRASE>
<PHRASE Label="la_Description_in-link:inlink_general" Module="In-Portal" Type="2">SW4tTGluayBHZW5lcmFsIENvbmZpZ3VyYXRpb24gT3B0aW9ucw==</PHRASE>
<PHRASE Label="la_Description_in-link:inlink_paid_listings" Module="" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgcGFpZCBsaXN0aW5ncw==</PHRASE>
<PHRASE Label="la_Description_in-link:validation_list" Module="In-Portal" Type="2">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBydW4gdmFsaWRhdGlvbiBvbiB0aGUgbGlua3M=</PHRASE>
<PHRASE Label="la_Description_in-news" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBzZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_Description_in-news:configuration_custom" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBjdXN0b20gZmllbGRz</PHRASE>
<PHRASE Label="la_Description_in-news:configuration_email" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBlbWFpbCBjb25maWd1cmF0aW9u</PHRASE>
<PHRASE Label="la_Description_in-news:configuration_output" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBvdXRwdXQgc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-news:configuration_search" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBkZWZhdWx0IHNlYXJjaCBjb25maWd1cmF0aW9u</PHRASE>
<PHRASE Label="la_Description_in-news:innews_general" Module="In-Portal" Type="2">SW4tTmV3eiBnZW5lcmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucw==</PHRASE>
<PHRASE Label="la_Description_in-portal:advanced_view" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gbWFuYWdlIGNhdGVnb3JpZXMgYW5kIGl0ZW1zIGFjcm9zcyBhbGwgY2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_Description_in-portal:backup" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIHN5c3RlbSBiYWNrdXBz</PHRASE>
<PHRASE Label="la_Description_in-portal:browse" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gYnJvd3NlIHRoZSBjYXRhbG9nIGFuZCBtYW5hZ2UgY2F0ZWdvcmllcyBhbmQgaXRlbXM=</PHRASE>
<PHRASE Label="la_Description_in-portal:configuration_custom" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGNhdGVnb3J5IGN1c3RvbSBmaWVsZHM=</PHRASE>
<PHRASE Label="la_Description_in-portal:configuration_email" Module="In-Portal" Type="2">Q29uZmlndXJlIENhdGVnb3J5IEVtYWlsIEV2ZW50cw==</PHRASE>
<PHRASE Label="la_Description_in-portal:configuration_search" Module="In-Portal" Type="2">Q29uZmlndXJlIENhdGVnb3J5IHNlYXJjaCBvcHRpb25z</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_categories" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGdlbmVyYWwgY2F0ZWdvcnkgc2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_general" Module="In-Portal" Type="1">VGhpcyBpcyBhIGdlbmVyYWwgY29uZmd1cmF0aW9uIHNlY3Rpb24=</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_lang" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgcmVnaW9uYWwgc2V0dGluZ3MsIG1hbmFnZSBhbmQgZWRpdCBsYW5ndWFnZXM=</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_styles" Module="" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgQ1NTIHN0eWxlc2hlZXRzIGZvciB0aGVtZXMu</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_themes" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgdGhlbWVzIGFuZCBlZGl0IHRoZSBpbmRpdmlkdWFsIHRlbXBsYXRlcw==</PHRASE>
<PHRASE Label="la_Description_in-portal:configure_users" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIGdlbmVyYWwgdXNlciBzZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_Description_in-portal:emaillog" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIHNob3dzIGFsbCBlLW1haWxzIHNlbnQgYnkgSW4tUG9ydGFs</PHRASE>
<PHRASE Label="la_Description_in-portal:export" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBleHBvcnQgSW4tcG9ydGFsIGRhdGE=</PHRASE>
<PHRASE Label="la_Description_in-portal:help" Module="In-Portal" Type="1">SGVscCBzZWN0aW9uIGZvciBJbi1wb3J0YWwgYW5kIGFsbCBvZiBpdHMgbW9kdWxlcy4gQWxzbyBhY2Nlc3NpYmxlIHZpYSB0aGUgc2VjdGlvbi1zcGVjaWZpYyBpbnRlcmFjdGl2ZSBoZWxwIGZlYXR1cmUu</PHRASE>
<PHRASE Label="la_Description_in-portal:inlink_inport" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBpbXBvcnQgZGF0YSBmcm9tIG90aGVyIHByb2dyYW1zIGludG8gSW4tcG9ydGFs</PHRASE>
<PHRASE Label="la_Description_in-portal:log_summary" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIHNob3dzIHN1bW1hcnkgc3RhdGlzdGljcw==</PHRASE>
<PHRASE Label="la_Description_in-portal:main_import" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRhdGEgaW1wb3J0IGZyb20gb3RoZXIgc3lzdGVtcw==</PHRASE>
<PHRASE Label="la_Description_in-portal:modules" Module="In-Portal" Type="1">TWFuYWdlIHNldHRpbmdzIG9mIGFsbCBtb2R1bGVzIHdoaWNoIGFyZSBpbnN0YWxsZWQgb24geW91ciBJbi1wb3J0YWwgc3lzdGVtLg==</PHRASE>
<PHRASE Label="la_Description_in-portal:reports" Module="In-Portal" Type="1">VmlldyBzeXN0ZW0gc3RhdGlzdGljcywgbG9ncyBhbmQgcmVwb3J0cw==</PHRASE>
<PHRASE Label="la_Description_in-portal:restore" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRhdGFiYXNlIHJlc3RvcmVz</PHRASE>
<PHRASE Label="la_Description_in-portal:reviews" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGRpc3BsYXlzIGEgbGlzdCBvZiBhbGwgcmV2aWV3cyBpbiB0aGUgc3lzdGVtLg==</PHRASE>
<PHRASE Label="la_Description_in-portal:searchlog" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIHNob3dzIHRoZSBzZWFyY2ggbG9nIGFuZCBhbGxvd3MgdG8gbWFuYWdlIGl0</PHRASE>
<PHRASE Label="la_Description_in-portal:server_info" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byB2aWV3IFBIUCBjb25maWd1cmF0aW9u</PHRASE>
<PHRASE Label="la_Description_in-portal:sessionlog" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIHNob3dzIGFsbCBhY3RpdmUgc2Vzc2lvbnMgYW5kIGFsbG93cyB0byBtYW5hZ2UgdGhlbQ==</PHRASE>
<PHRASE Label="la_Description_in-portal:site" Module="In-Portal" Type="1">TWFuYWdlIHRoZSBzdHJ1Y3R1cmUgb2YgeW91ciBzaXRlLCBpbmNsdWRpbmcgY2F0ZWdvcmllcywgaXRlbXMgYW5kIGNhdGVnb3J5IHNldHRpbmdzLg==</PHRASE>
<PHRASE Label="la_Description_in-portal:sql_query" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRpcmVjdCBTUUwgcXVlcmllcyBvbiBJbi1wb3J0YWwgZGF0YWJhc2U=</PHRASE>
<PHRASE Label="la_Description_in-portal:system" Module="In-Portal" Type="1">TWFuYWdlIHN5c3RlbS13aWRlIHNldHRpbmdzLCBlZGl0IHRoZW1lcyBhbmQgbGFuZ3VhZ2Vz</PHRASE>
<PHRASE Label="la_Description_in-portal:tools" Module="In-Portal" Type="1">VXNlIHZhcmlvdXMgSW4tcG9ydGFsIGRhdGEgbWFuYWdlbWVudCB0b29scywgaW5jbHVkaW5nIGJhY2t1cCwgcmVzdG9yZSwgaW1wb3J0IGFuZCBleHBvcnQ=</PHRASE>
<PHRASE Label="la_Description_in-portal:users" Module="In-Portal" Type="1">TWFuYWdlIHVzZXJzIGFuZCBncm91cHMsIHNldCB1c2VyICYgZ3JvdXAgcGVybWlzc2lvbnMgYW5kIGRlZmluZSB1c2VyIHNldHRpbmdzLg==</PHRASE>
<PHRASE Label="la_Description_in-portal:user_banlist" Module="In-Portal" Type="2">TWFuYWdlIFVzZXIgQmFuIFJ1bGVz</PHRASE>
<PHRASE Label="la_Description_in-portal:user_custom" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gY29uZmlndXJlIHVzZXIgY3VzdG9tIGZpZWxkcw==</PHRASE>
<PHRASE Label="la_Description_in-portal:user_email" Module="In-Portal" Type="2">Q29uZmlndXJlIFVzZXIgZW1haWwgZXZlbnRz</PHRASE>
<PHRASE Label="la_Description_in-portal:user_groups" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYWdhbmUgZ3JvdXBzLCBhc3NpZ24gdXNlcnMgdG8gZ3JvdXBzIGFuZCBwZXJmb3JtIG1hc3MgZW1haWwgc2VuZGluZw==</PHRASE>
<PHRASE Label="la_Description_in-portal:user_list" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9ucyBhbGxvd3MgdG8gbWFuYWdlIHVzZXJzLCB0aGVpciBwZXJtaXNzaW9ucyBhbmQgcGVyZm9ybSBtYXNzIGVtYWls</PHRASE>
<PHRASE Label="la_Description_in-portal:visits" Module="In-Portal" Type="1">VGhpcyBzZWN0aW9uIHNob3dzIHRoZSBzaXRlIHZpc2l0b3JzIGxvZw==</PHRASE>
<PHRASE Label="la_Disabled" Module="In-Portal" Type="1">RGlzYWJsZWQ=</PHRASE>
<PHRASE Label="la_DownloadLanguageExport" Module="In-Portal" Type="1">RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0</PHRASE>
<PHRASE Label="la_Enabled" Module="In-Portal" Type="1">RW5hYmxlZA==</PHRASE>
<PHRASE Label="la_error_cant_save_file" Module="In-Portal" Type="1">Q2FuJ3Qgc2F2ZSBhIGZpbGU=</PHRASE>
<PHRASE Label="la_error_copy_subcategory" Module="In-Portal" Type="1">RXJyb3IgY29weWluZyBzdWJjYXRlZ29yaWVz</PHRASE>
<PHRASE Label="la_error_duplicate_username" Module="In-Portal" Type="1">VXNlcm5hbWUgeW91IGhhdmUgZW50ZXJlZCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgc3lzdGVtLCBwbGVhc2UgY2hvb3NlIGFub3RoZXIgdXNlcm5hbWUu</PHRASE>
<PHRASE Label="la_error_FileTooLarge" Module="In-Portal" Type="1">RmlsZSBpcyB0b28gbGFyZ2U=</PHRASE>
<PHRASE Label="la_error_InvalidFileFormat" Module="In-Portal" Type="1">SW52YWxpZCBGaWxlIEZvcm1hdA==</PHRASE>
<PHRASE Label="la_error_move_subcategory" Module="In-Portal" Type="1">RXJyb3IgbW92aW5nIHN1YmNhdGVnb3J5</PHRASE>
<PHRASE Label="la_error_unknown_category" Module="In-Portal" Type="1">VW5rbm93biBjYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_event_article.add" Module="In-Portal" Type="1">QWRkIEFydGljbGU=</PHRASE>
<PHRASE Label="la_event_article.approve" Module="In-Portal" Type="1">QXBwcm92ZSBBcnRpY2xl</PHRASE>
<PHRASE Label="la_event_article.deny" Module="In-Portal" Type="1">RGVjbGluZSBBcnRpY2xl</PHRASE>
<PHRASE Label="la_event_article.modify" Module="In-Portal" Type="1">TW9kaWZ5IEFydGljbGU=</PHRASE>
<PHRASE Label="la_event_article.modify.approve" Module="In-Portal" Type="1">QXBwcm92ZSBBcnRpY2xlIE1vZGlmaWNhdGlvbg==</PHRASE>
<PHRASE Label="la_event_article.modify.deny" Module="In-Portal" Type="1">RGVjbGluZSBBcnRpY2xlIE1vZGlmaWNhdGlvbg==</PHRASE>
<PHRASE Label="la_event_article.review.add" Module="In-Portal" Type="1">QXJ0aWNsZSBSZXZpZXcgQWRkZWQ=</PHRASE>
<PHRASE Label="la_event_article.review.add.pending" Module="In-Portal" Type="1">UGVuZGluZyBBcnRpY2xlIFJldmlldyBBZGRlZA==</PHRASE>
<PHRASE Label="la_event_article.review.approve" Module="In-Portal" Type="1">QXBwcm92ZSBBcnRpY2xlIFJldmlldw==</PHRASE>
<PHRASE Label="la_event_article.review.deny" Module="In-Portal" Type="1">RGVjbGluZSBBcnRpY2xlIFJldmlldw==</PHRASE>
<PHRASE Label="la_event_category.add" Module="In-Portal" Type="1">QWRkIENhdGVnb3J5</PHRASE>
<PHRASE Label="la_event_category.add.pending" Module="In-Portal" Type="1">QWRkIFBlbmRpbmcgQ2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_event_category.approve" Module="In-Portal" Type="1">QXBwcm92ZSBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_event_category.deny" Module="In-Portal" Type="1">RGVueSBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_event_category.modify" Module="In-Portal" Type="1">TW9kaWZ5IENhdGVnb3J5</PHRASE>
<PHRASE Label="la_event_category_delete" Module="In-Portal" Type="1">RGVsZXRlIENhdGVnb3J5</PHRASE>
<PHRASE Label="la_event_import_progress" Module="In-Portal" Type="1">RW1haWwgZXZlbnRzIGltcG9ydCBwcm9ncmVzcw==</PHRASE>
<PHRASE Label="la_event_link.add" Module="In-Portal" Type="1">QWRkIExpbms=</PHRASE>
<PHRASE Label="la_event_link.add.pending" Module="In-Portal" Type="1">QWRkIFBlbmRpbmcgTGluaw==</PHRASE>
<PHRASE Label="la_event_link.approve" Module="In-Portal" Type="1">QXBwcm92ZSBQZW5kaW5nIExpbms=</PHRASE>
<PHRASE Label="la_event_link.deny" Module="In-Portal" Type="1">RGVueSBMaW5r</PHRASE>
<PHRASE Label="la_event_link.modify" Module="In-Portal" Type="1">TW9kaWZ5IExpbms=</PHRASE>
<PHRASE Label="la_event_link.modify.approve" Module="In-Portal" Type="1">QXBwcm92ZSBMaW5rIE1vZGlmaWNhdGlvbg==</PHRASE>
<PHRASE Label="la_event_link.modify.deny" Module="In-Portal" Type="1">RGVjbGluZSBsaW5rIG1vZGlmaWNhdGlvbg==</PHRASE>
<PHRASE Label="la_event_link.modify.pending" Module="In-Portal" Type="1">TGluayBNb2RpZmljYXRpb24gUGVuZGluZw==</PHRASE>
<PHRASE Label="la_event_link.review.add" Module="In-Portal" Type="1">TGluayBSZXZpZXcgQWRkZWQ=</PHRASE>
<PHRASE Label="la_event_link.review.add.pending" Module="In-Portal" Type="1">UGVuZGluZyBSZXZpZXcgQWRkZWQ=</PHRASE>
<PHRASE Label="la_event_link.review.approve" Module="In-Portal" Type="1">QXBwcm92ZSBMaW5rIFJldmlldw==</PHRASE>
<PHRASE Label="la_event_link.review.deny" Module="In-Portal" Type="1">RGVjbGluZSBMaW5rIFJldmlldw==</PHRASE>
<PHRASE Label="la_event_pm.add" Module="In-Portal" Type="1">TmV3IFByaXZhdGUgTWVzc2FnZQ==</PHRASE>
<PHRASE Label="la_event_post.add" Module="In-Portal" Type="1">UG9zdCBBZGRlZA==</PHRASE>
<PHRASE Label="la_event_post.modify" Module="In-Portal" Type="1">UG9zdCBNb2RpZmllZA==</PHRASE>
<PHRASE Label="la_event_topic.add" Module="In-Portal" Type="1">VG9waWMgQWRkZWQ=</PHRASE>
<PHRASE Label="la_event_user.add" Module="In-Portal" Type="1">QWRkIFVzZXI=</PHRASE>
<PHRASE Label="la_event_user.add.pending" Module="In-Portal" Type="1">QWRkIFBlbmRpbmcgVXNlcg==</PHRASE>
<PHRASE Label="la_event_user.approve" Module="In-Portal" Type="1">QXBwcm92ZSBVc2Vy</PHRASE>
<PHRASE Label="la_event_user.deny" Module="In-Portal" Type="1">RGVueSBVc2Vy</PHRASE>
<PHRASE Label="la_event_user.forgotpw" Module="In-Portal" Type="1">Rm9yZ290IFBhc3N3b3Jk</PHRASE>
<PHRASE Label="la_event_user.membership_expiration_notice" Module="" Type="1">TWVtYmVyc2hpcCBleHBpcmF0aW9uIG5vdGljZQ==</PHRASE>
<PHRASE Label="la_event_user.membership_expired" Module="" Type="1">TWVtYmVyc2hpcCBleHBpcmVk</PHRASE>
<PHRASE Label="la_event_user.pswd_confirm" Module="In-Portal" Type="1">UGFzc3dvcmQgQ29uZmlybWF0aW9u</PHRASE>
<PHRASE Label="la_event_user.subscribe" Module="In-Portal" Type="1">VXNlciBzdWJzY3JpYmVk</PHRASE>
<PHRASE Label="la_event_user.suggest" Module="In-Portal" Type="1">U3VnZ2VzdCB0byBhIGZyaWVuZA==</PHRASE>
<PHRASE Label="la_event_user.unsubscribe" Module="In-Portal" Type="1">VXNlciB1bnN1YnNjcmliZWQ=</PHRASE>
<PHRASE Label="la_event_user.validate" Module="In-Portal" Type="1">VmFsaWRhdGUgVXNlcg==</PHRASE>
<PHRASE Label="la_fld_AdvancedCSS" Module="In-Portal" Type="1">QWR2YW5jZWQgQ1NT</PHRASE>
+ <PHRASE Label="la_fld_AutomaticFilename" Module="In-Portal" Type="1">QXV0b21hdGljIEZpbGVuYW1l</PHRASE>
<PHRASE Label="la_fld_Background" Module="In-Portal" Type="1">QmFja2dyb3VuZA==</PHRASE>
<PHRASE Label="la_fld_BackgroundAttachment" Module="In-Portal" Type="1">QmFja2dyb3VuZCBBdHRhY2htZW50</PHRASE>
<PHRASE Label="la_fld_BackgroundColor" Module="In-Portal" Type="1">QmFja2dyb3VuZCBDb2xvcg==</PHRASE>
<PHRASE Label="la_fld_BackgroundImage" Module="In-Portal" Type="1">QmFja2dyb3VuZCBJbWFnZQ==</PHRASE>
<PHRASE Label="la_fld_BackgroundPosition" Module="In-Portal" Type="1">QmFja2dyb3VuZCBQb3NpdGlvbg==</PHRASE>
<PHRASE Label="la_fld_BackgroundRepeat" Module="In-Portal" Type="1">QmFja2dyb3VuZCBSZXBlYXQ=</PHRASE>
<PHRASE Label="la_fld_BorderBottom" Module="In-Portal" Type="1">Qm9yZGVyIEJvdHRvbQ==</PHRASE>
<PHRASE Label="la_fld_BorderLeft" Module="In-Portal" Type="1">Qm9yZGVyIExlZnQ=</PHRASE>
<PHRASE Label="la_fld_BorderRight" Module="In-Portal" Type="1">Qm9yZGVyIFJpZ2h0</PHRASE>
<PHRASE Label="la_fld_Borders" Module="In-Portal" Type="1">Qm9yZGVycw==</PHRASE>
<PHRASE Label="la_fld_BorderTop" Module="In-Portal" Type="1">Qm9yZGVyIFRvcA==</PHRASE>
<PHRASE Label="la_fld_Category" Module="In-Portal" Type="1">Q2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_fld_Charset" Module="In-Portal" Type="1">Q2hhcnNldA==</PHRASE>
<PHRASE Label="la_fld_CopyLabels" Module="In-Portal" Type="1">Q29weSBMYWJlbHMgZnJvbSB0aGlzIExhbmd1YWdl</PHRASE>
<PHRASE Label="la_fld_Cursor" Module="In-Portal" Type="1">Q3Vyc29y</PHRASE>
<PHRASE Label="la_fld_DateFormat" Module="In-Portal" Type="1">RGF0ZSBGb3JtYXQ=</PHRASE>
<PHRASE Label="la_fld_DecimalPoint" Module="In-Portal" Type="1">RGVjaW1hbCBQb2ludA==</PHRASE>
<PHRASE Label="la_fld_Description" Module="In-Portal" Type="1">RGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="la_fld_Display" Module="In-Portal" Type="1">RGlzcGxheQ==</PHRASE>
<PHRASE Label="la_fld_Duration" Module="In-Portal" Type="1">RHVyYXRpb24=</PHRASE>
<PHRASE Label="la_fld_EditorsPick" Module="In-Portal" Type="1">RWRpdG9ycyBQaWNr</PHRASE>
<PHRASE Label="la_fld_Enabled" Module="In-Portal" Type="1">RW5hYmxlZA==</PHRASE>
<PHRASE Label="la_fld_ExportFileName" Module="In-Portal" Type="1">RXhwb3J0IEZpbGVuYW1l</PHRASE>
<PHRASE Label="la_fld_ExportModules" Module="In-Portal" Type="1">RXhwb3J0IE1vZHVsZXM=</PHRASE>
<PHRASE Label="la_fld_ExportPhraseTypes" Module="In-Portal" Type="1">RXhwb3J0IFBocmFzZSBUeXBlcw==</PHRASE>
<PHRASE Label="la_fld_ExtraHeaders" Module="In-Portal" Type="1">RXh0cmEgSGVhZGVycw==</PHRASE>
+ <PHRASE Label="la_fld_Filename" Module="In-Portal" Type="1">RmlsZW5hbWU=</PHRASE>
<PHRASE Label="la_fld_Font" Module="In-Portal" Type="1">Rm9udA==</PHRASE>
<PHRASE Label="la_fld_FontColor" Module="In-Portal" Type="1">Rm9udCBDb2xvcg==</PHRASE>
<PHRASE Label="la_fld_FontFamily" Module="In-Portal" Type="1">Rm9udCBGYW1pbHk=</PHRASE>
<PHRASE Label="la_fld_FontSize" Module="In-Portal" Type="1">Rm9udCBTaXpl</PHRASE>
<PHRASE Label="la_fld_FontStyle" Module="In-Portal" Type="1">Rm9udCBTdHlsZQ==</PHRASE>
<PHRASE Label="la_fld_FontWeight" Module="In-Portal" Type="1">Rm9udCBXZWlnaHQ=</PHRASE>
<PHRASE Label="la_fld_Height" Module="In-Portal" Type="1">SGVpZ2h0</PHRASE>
<PHRASE Label="la_fld_Hot" Module="In-Portal" Type="1">SG90</PHRASE>
<PHRASE Label="la_fld_IconURL" Module="In-Portal" Type="1">SWNvbiBVUkw=</PHRASE>
<PHRASE Label="la_fld_InstallModules" Module="In-Portal" Type="1">SW5zdGFsbCBNb2R1bGVz</PHRASE>
<PHRASE Label="la_fld_InstallPhraseTypes" Module="In-Portal" Type="1">SW5zdGFsbCBQaHJhc2UgVHlwZXM=</PHRASE>
<PHRASE Label="la_fld_LanguageFile" Module="In-Portal" Type="1">TGFuZ3VhZ2UgRmlsZQ==</PHRASE>
<PHRASE Label="la_fld_LanguageId" Module="In-Portal" Type="1">TGFuZ3VhZ2UgSUQ=</PHRASE>
<PHRASE Label="la_fld_Left" Module="In-Portal" Type="1">TGVmdA==</PHRASE>
<PHRASE Label="la_fld_LocalName" Module="In-Portal" Type="1">TG9jYWwgTmFtZQ==</PHRASE>
<PHRASE Label="la_fld_MarginBottom" Module="In-Portal" Type="1">TWFyZ2luIEJvdHRvbQ==</PHRASE>
<PHRASE Label="la_fld_MarginLeft" Module="In-Portal" Type="1">TWFyZ2luIExlZnQ=</PHRASE>
<PHRASE Label="la_fld_MarginRight" Module="In-Portal" Type="1">TWFyZ2luIFJpZ2h0</PHRASE>
<PHRASE Label="la_fld_Margins" Module="In-Portal" Type="1">TWFyZ2lucw==</PHRASE>
<PHRASE Label="la_fld_MarginTop" Module="In-Portal" Type="1">TWFyZ2luIFRvcA==</PHRASE>
<PHRASE Label="la_fld_MessageBody" Module="In-Portal" Type="1">TWVzc2FnZSBCb2R5</PHRASE>
<PHRASE Label="la_fld_MessageType" Module="In-Portal" Type="1">TWVzc2FnZSBUeXBl</PHRASE>
<PHRASE Label="la_fld_Module" Module="In-Portal" Type="1">TW9kdWxl</PHRASE>
<PHRASE Label="la_fld_Name" Module="In-Portal" Type="1">TmFtZQ==</PHRASE>
<PHRASE Label="la_fld_New" Module="In-Portal" Type="1">TmV3</PHRASE>
<PHRASE Label="la_fld_PackName" Module="In-Portal" Type="1">UGFjayBOYW1l</PHRASE>
<PHRASE Label="la_fld_PaddingBottom" Module="In-Portal" Type="1">UGFkZGluZyBCb3R0b20=</PHRASE>
<PHRASE Label="la_fld_PaddingLeft" Module="In-Portal" Type="1">UGFkZGluZyBMZWZ0</PHRASE>
<PHRASE Label="la_fld_PaddingRight" Module="In-Portal" Type="1">UGFkZGluZyBSaWdodA==</PHRASE>
<PHRASE Label="la_fld_Paddings" Module="In-Portal" Type="1">UGFkZGluZ3M=</PHRASE>
<PHRASE Label="la_fld_PaddingTop" Module="In-Portal" Type="1">UGFkZGluZyBUb3A=</PHRASE>
<PHRASE Label="la_fld_Phrase" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_fld_PhraseType" Module="In-Portal" Type="1">UGhyYXNlIFR5cGU=</PHRASE>
<PHRASE Label="la_fld_Pop" Module="In-Portal" Type="1">UG9w</PHRASE>
<PHRASE Label="la_fld_Position" Module="In-Portal" Type="1">UG9zaXRpb24=</PHRASE>
<PHRASE Label="la_fld_PrimaryLang" Module="In-Portal" Type="1">UHJpbWFyeQ==</PHRASE>
<PHRASE Label="la_fld_PrimaryTranslation" Module="In-Portal" Type="1">UHJpbWFyeSBUcmFuc2xhdGlvbg==</PHRASE>
<PHRASE Label="la_fld_Priority" Module="In-Portal" Type="1">UHJpb3JpdHk=</PHRASE>
<PHRASE Label="la_fld_SelectorBase" Module="In-Portal" Type="1">QmFzZWQgT24=</PHRASE>
<PHRASE Label="la_fld_SelectorData" Module="In-Portal" Type="1">U3R5bGU=</PHRASE>
<PHRASE Label="la_fld_SelectorId" Module="In-Portal" Type="1">U2VsZWN0b3IgSUQ=</PHRASE>
<PHRASE Label="la_fld_SelectorName" Module="In-Portal" Type="1">U2VsZWN0b3IgTmFtZQ==</PHRASE>
<PHRASE Label="la_fld_Status" Module="In-Portal" Type="1">U3RhdHVz</PHRASE>
<PHRASE Label="la_fld_StylesheetId" Module="In-Portal" Type="1">U3R5bGVzaGVldCBJRA==</PHRASE>
<PHRASE Label="la_fld_Subject" Module="In-Portal" Type="1">U3ViamVjdA==</PHRASE>
<PHRASE Label="la_fld_TextAlign" Module="In-Portal" Type="1">VGV4dCBBbGlnbg==</PHRASE>
<PHRASE Label="la_fld_TextDecoration" Module="In-Portal" Type="1">VGV4dCBEZWNvcmF0aW9u</PHRASE>
<PHRASE Label="la_fld_ThousandSep" Module="In-Portal" Type="1">VGhvdXNhbmRzIFNlcGFyYXRvcg==</PHRASE>
<PHRASE Label="la_fld_TimeFormat" Module="In-Portal" Type="1">VGltZSBGb3JtYXQ=</PHRASE>
<PHRASE Label="la_fld_Top" Module="In-Portal" Type="1">VG9w</PHRASE>
<PHRASE Label="la_fld_Translation" Module="In-Portal" Type="1">VmFsdWU=</PHRASE>
<PHRASE Label="la_fld_UnitSystem" Module="In-Portal" Type="1">TWVhc3VyZXMgU3lzdGVt</PHRASE>
<PHRASE Label="la_fld_Visibility" Module="In-Portal" Type="1">VmlzaWJpbGl0eQ==</PHRASE>
<PHRASE Label="la_fld_Width" Module="In-Portal" Type="1">V2lkdGg=</PHRASE>
<PHRASE Label="la_fld_Z-Index" Module="In-Portal" Type="1">Wi1JbmRleA==</PHRASE>
<PHRASE Label="la_Font" Module="In-Portal" Type="1">Rm9udCBQcm9wZXJ0aWVz</PHRASE>
<PHRASE Label="la_from_date" Module="In-Portal" Type="1">RnJvbSBEYXRl</PHRASE>
<PHRASE Label="la_front_end" Module="In-Portal" Type="1">RnJvbnQgZW5k</PHRASE>
<PHRASE Label="la_gigabytes" Module="In-Portal" Type="1">Z2lnYWJ5dGUocyk=</PHRASE>
<PHRASE Label="la_help_in_progress" Module="In-Portal" Type="1">VGhpcyBoZWxwIHNlY3Rpb24gZG9lcyBub3QgeWV0IGV4aXN0LCBpdCdzIGNvbWluZyBzb29uIQ==</PHRASE>
<PHRASE Label="la_Html" Module="In-Portal" Type="1">aHRtbA==</PHRASE>
<PHRASE Label="la_ImportingEmailEvents" Module="In-Portal" Type="1">SW1wb3J0aW5nIEVtYWlsIEV2ZW50cyAuLi4=</PHRASE>
<PHRASE Label="la_ImportingLanguages" Module="In-Portal" Type="1">SW1wb3J0aW5nIExhbmd1YWdlcyAuLi4=</PHRASE>
<PHRASE Label="la_ImportingPhrases" Module="In-Portal" Type="1">SW1wb3J0aW5nIFBocmFzZXMgLi4u</PHRASE>
<PHRASE Label="la_importlang_phrasewarning" Module="In-Portal" Type="2">RW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCB1bmRvIGFueSBjaGFuZ2VzIHlvdSBoYXZlIG1hZGUgdG8gZXhpc3RpbmcgcGhyYXNlcw==</PHRASE>
<PHRASE Label="la_importPhrases" Module="In-Portal" Type="1">SW1wb3J0aW5nIFBocmFzZXM=</PHRASE>
<PHRASE Label="la_inlink" Module="In-Portal" Type="1">SW4tbGluaw==</PHRASE>
<PHRASE Label="la_invalid_integer" Module="In-Portal" Type="1">SW5jb3JyZWN0IGRhdGEgZm9ybWF0LCBwbGVhc2UgdXNlIGludGVnZXI=</PHRASE>
<PHRASE Label="la_invalid_state" Module="In-Portal" Type="0">SW52YWxpZCBzdGF0ZQ==</PHRASE>
<PHRASE Label="la_ItemTab_Categories" Module="In-Portal" Type="1">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_ItemTab_Links" Module="In-Portal" Type="1">TGlua3M=</PHRASE>
<PHRASE Label="la_ItemTab_News" Module="In-Portal" Type="1">QXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_ItemTab_Topics" Module="In-Portal" Type="1">VG9waWNz</PHRASE>
<PHRASE Label="la_kilobytes" Module="In-Portal" Type="1">S0I=</PHRASE>
<PHRASE Label="la_language" Module="In-Portal" Type="1">TGFuZ3VhZ2U=</PHRASE>
<PHRASE Label="la_lang_import_progress" Module="In-Portal" Type="1">SW1wb3J0IHByb2dyZXNz</PHRASE>
<PHRASE Label="la_LastUpdate" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVk</PHRASE>
<PHRASE Label="la_Link_Date" Module="In-Portal" Type="1">RGF0ZQ==</PHRASE>
<PHRASE Label="la_Link_Description" Module="In-Portal" Type="1">TGluayBEZXNjcmlwdGlvbg==</PHRASE>
<PHRASE Label="la_link_editorspick_prompt" Module="In-Portal" Type="1">RGlzcGxheSBlZGl0b3IgUElDS3MgYWJvdmUgcmVndWxhciBsaW5rcw==</PHRASE>
<PHRASE Label="la_Link_Hits" Module="In-Portal" Type="1">SGl0cw==</PHRASE>
<PHRASE Label="la_link_MinVotes_prompt" Module="In-Portal" Type="1">TWluaW11bSBudW1iZXIgb2Ygdm90ZXMgdG8gZW5hYmxlIGxpbmsgcmF0aW5n</PHRASE>
<PHRASE Label="la_Link_Name" Module="In-Portal" Type="1">TGluayBOYW1l</PHRASE>
<PHRASE Label="la_link_newdays_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgZm9yIGEgbGluayB0byBiZSBORVc=</PHRASE>
<PHRASE Label="la_link_newstopminrating_prompt" Module="In-Portal" Type="1">TWluaW11bSByYXRpbmcgZm9yIGEgbGluayB0byBiZSBQT1A=</PHRASE>
<PHRASE Label="la_link_perpage_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGxpbmtzIHBlciBwYWdl</PHRASE>
<PHRASE Label="la_link_perpage_short_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGxpbmtzIHBlciBwYWdlIG9uIGEgc2hvcnQgbGlzdGluZw==</PHRASE>
<PHRASE Label="la_Link_Rating" Module="In-Portal" Type="1">UmF0aW5n</PHRASE>
<PHRASE Label="la_link_reviewed" Module="In-Portal" Type="1">TGluayByZXZpZXdlZA==</PHRASE>
<PHRASE Label="la_link_sortfield2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_link_sortfield_prompt" Module="In-Portal" Type="1">T3JkZXIgbGlua3MgYnk=</PHRASE>
<PHRASE Label="la_link_sortreviews2_prompt" Module="In-Portal" Type="1">YW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_link_sortreviews_prompt" Module="In-Portal" Type="1">U29ydCByZXZpZXdzIGJ5</PHRASE>
<PHRASE Label="la_Link_URL" Module="In-Portal" Type="1">VVJM</PHRASE>
<PHRASE Label="la_link_urlstatus_prompt" Module="In-Portal" Type="1">RGlzcGxheSBsaW5rIFVSTCBpbiBzdGF0dXMgYmFy</PHRASE>
<PHRASE Label="la_link_votestohot_prompt" Module="In-Portal" Type="1">TWF4aW11bSBudW1iZXIgb2YgSE9UIGxpbmtz</PHRASE>
<PHRASE Label="la_Logged_in_as" Module="In-Portal" Type="1">TG9nZ2VkIGluIGFz</PHRASE>
<PHRASE Label="la_login" Module="In-Portal" Type="1">TG9naW4=</PHRASE>
<PHRASE Label="la_m0" Module="In-Portal" Type="1">KEdNVCk=</PHRASE>
<PHRASE Label="la_m1" Module="In-Portal" Type="1">KEdNVCAtMDE6MDAp</PHRASE>
<PHRASE Label="la_m10" Module="In-Portal" Type="1">KEdNVCAtMTA6MDAp</PHRASE>
<PHRASE Label="la_m11" Module="In-Portal" Type="1">KEdNVCAtMTE6MDAp</PHRASE>
<PHRASE Label="la_m12" Module="In-Portal" Type="1">KEdNVCAtMTI6MDAp</PHRASE>
<PHRASE Label="la_m2" Module="In-Portal" Type="1">KEdNVCAtMDI6MDAp</PHRASE>
<PHRASE Label="la_m3" Module="In-Portal" Type="1">KEdNVCAtMDM6MDAp</PHRASE>
<PHRASE Label="la_m4" Module="In-Portal" Type="1">KEdNVCAtMDQ6MDAp</PHRASE>
<PHRASE Label="la_m5" Module="In-Portal" Type="1">KEdNVCAtMDU6MDAp</PHRASE>
<PHRASE Label="la_m6" Module="In-Portal" Type="1">KEdNVCAtMDY6MDAp</PHRASE>
<PHRASE Label="la_m7" Module="In-Portal" Type="1">KEdNVCAtMDc6MDAp</PHRASE>
<PHRASE Label="la_m8" Module="In-Portal" Type="1">KEdNVCAtMDg6MDAp</PHRASE>
<PHRASE Label="la_m9" Module="In-Portal" Type="1">KEdNVCAtMDk6MDAp</PHRASE>
<PHRASE Label="la_Margins" Module="In-Portal" Type="1">TWFyZ2lucw==</PHRASE>
<PHRASE Label="la_megabytes" Module="In-Portal" Type="1">TUI=</PHRASE>
<PHRASE Label="la_MembershipExpirationReminder" Module="" Type="1">R3JvdXAgTWVtYmVyc2hpcCBFeHBpcmF0aW9uIFJlbWluZGVyIChkYXlzKQ==</PHRASE>
<PHRASE Label="la_MenuTreeTitle" Module="In-Portal" Type="1">TWFpbiBNZW51</PHRASE>
<PHRASE Label="la_Metric" Module="In-Portal" Type="1">TWV0cmlj</PHRASE>
<PHRASE Label="la_missing_theme" Module="In-Portal" Type="1">TWlzc2luZyBJbiBUaGVtZQ==</PHRASE>
<PHRASE Label="la_module_not_licensed" Module="In-Portal" Type="1">TW9kdWxlIG5vdCBsaWNlbnNlZA==</PHRASE>
<PHRASE Label="la_monday" Module="In-Portal" Type="1">TW9uZGF5</PHRASE>
<PHRASE Label="la_NeverExpires" Module="In-Portal" Type="1">TmV2ZXIgRXhwaXJlcw==</PHRASE>
<PHRASE Label="la_news_daysarchive_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgdG8gYXJjaGl2ZSBhcnRpY2xlcyBhdXRvbWF0aWNhbGx5</PHRASE>
<PHRASE Label="la_news_editorpicksabove_prompt" Module="In-Portal" Type="1">RGlzcGxheSBlZGl0b3IgUElDS3MgYWJvdmUgcmVndWxhciBhcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_news_MinVotes_prompt" Module="In-Portal" Type="1">TWluaW11bSAjIG9mIHZvdGVzIGZvciByYXRpbmcgY29uc2lkZXJhdGlvbg==</PHRASE>
<PHRASE Label="la_news_newdays_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgZm9yIGEgYXJ0aWNsZSB0byBiZSBORVc=</PHRASE>
<PHRASE Label="la_news_newstopminrating_prompt" Module="In-Portal" Type="1">TWluaW11bSByYXRpbmcgZm9yIGEgYXJ0aWNsZSB0byBiZSBIT1Q=</PHRASE>
<PHRASE Label="la_news_perpage_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGFydGljbGVzIHBlciBwYWdl</PHRASE>
<PHRASE Label="la_news_perpage_short_prompt" Module="In-Portal" Type="1">QXJ0aWNsZXMgUGVyIFBhZ2UgKFNob3J0bGlzdCk=</PHRASE>
<PHRASE Label="la_news_sortfield2_pompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_news_sortfield_pompt" Module="In-Portal" Type="1">T3JkZXIgYXJ0aWNsZXMgYnk=</PHRASE>
<PHRASE Label="la_news_sortreviews2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_news_sortreviews_prompt" Module="In-Portal" Type="1">U29ydCByZXZpZXdzIGJ5</PHRASE>
<PHRASE Label="la_news_votestohot_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIGNsaWNrcyBmb3IgYW4gYXJ0aWNsZSB0byBiZSBIT1Q=</PHRASE>
<PHRASE Label="la_nextcategory" Module="In-Portal" Type="1">TmV4dCBjYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_nextgroup" Module="In-Portal" Type="1">TmV4dCBncm91cA==</PHRASE>
<PHRASE Label="la_NextUser" Module="In-Portal" Type="1">TmV4dCBVc2Vy</PHRASE>
<PHRASE Label="la_none" Module="In-Portal" Type="1">Tm9uZQ==</PHRASE>
<PHRASE Label="la_NoSubject" Module="In-Portal" Type="1">Tm8gU3ViamVjdA==</PHRASE>
<PHRASE Label="la_no_topics" Module="In-Portal" Type="1">Tm8gdG9waWNz</PHRASE>
<PHRASE Label="la_Number_of_Posts" Module="In-Portal" Type="1">TnVtYmVyIG9mIFBvc3Rz</PHRASE>
<PHRASE Label="la_of" Module="In-Portal" Type="1">b2Y=</PHRASE>
<PHRASE Label="la_Off" Module="In-Portal" Type="1">T2Zm</PHRASE>
<PHRASE Label="la_On" Module="In-Portal" Type="1">T24=</PHRASE>
<PHRASE Label="la_opt_day" Module="In-Portal" Type="1">ZGF5KHMp</PHRASE>
<PHRASE Label="la_opt_hour" Module="In-Portal" Type="1">aG91cihzKQ==</PHRASE>
<PHRASE Label="la_opt_min" Module="In-Portal" Type="1">bWludXRlKHMp</PHRASE>
<PHRASE Label="la_opt_month" Module="In-Portal" Type="1">bW9udGgocyk=</PHRASE>
<PHRASE Label="la_opt_sec" Module="In-Portal" Type="1">c2Vjb25kKHMp</PHRASE>
<PHRASE Label="la_opt_week" Module="In-Portal" Type="1">d2VlayhzKQ==</PHRASE>
<PHRASE Label="la_opt_year" Module="In-Portal" Type="1">eWVhcihzKQ==</PHRASE>
<PHRASE Label="la_original_values" Module="In-Portal" Type="1">T3JpZ2luYWwgVmFsdWVz</PHRASE>
<PHRASE Label="la_origional_value" Module="In-Portal" Type="1">T3JpZ2luYWwgVmFsdWU=</PHRASE>
<PHRASE Label="la_origional_values" Module="In-Portal" Type="1">T3JpZ2luYWwgVmFsdWVz</PHRASE>
<PHRASE Label="la_p1" Module="In-Portal" Type="1">KEdNVCArMDE6MDAp</PHRASE>
<PHRASE Label="la_p10" Module="In-Portal" Type="1">KEdNVCArMTA6MDAp</PHRASE>
<PHRASE Label="la_p11" Module="In-Portal" Type="1">KEdNVCArMTE6MDAp</PHRASE>
<PHRASE Label="la_p12" Module="In-Portal" Type="1">KEdNVCArMTI6MDAp</PHRASE>
<PHRASE Label="la_p13" Module="In-Portal" Type="1">KEdNVCArMTM6MDAp</PHRASE>
<PHRASE Label="la_p2" Module="In-Portal" Type="1">KEdNVCArMDI6MDAp</PHRASE>
<PHRASE Label="la_p3" Module="In-Portal" Type="1">KEdNVCArMDM6MDAp</PHRASE>
<PHRASE Label="la_p4" Module="In-Portal" Type="1">KEdNVCArMDQ6MDAp</PHRASE>
<PHRASE Label="la_p5" Module="In-Portal" Type="1">KEdNVCArMDU6MDAp</PHRASE>
<PHRASE Label="la_p6" Module="In-Portal" Type="1">KEdNVCArMDY6MDAp</PHRASE>
<PHRASE Label="la_p7" Module="In-Portal" Type="1">KEdNVCArMDc6MDAp</PHRASE>
<PHRASE Label="la_p8" Module="In-Portal" Type="1">KEdNVCArMDg6MDAp</PHRASE>
<PHRASE Label="la_p9" Module="In-Portal" Type="1">KEdNVCArMDk6MDAp</PHRASE>
<PHRASE Label="la_Paddings" Module="In-Portal" Type="1">UGFkZGluZ3M=</PHRASE>
<PHRASE Label="la_Page" Module="In-Portal" Type="1">UGFnZQ==</PHRASE>
<PHRASE Label="la_password_info" Module="In-Portal" Type="2">VG8gY2hhbmdlIHRoZSBwYXNzd29yZCwgZW50ZXIgdGhlIHBhc3N3b3JkIGhlcmUgYW5kIGluIHRoZSBib3ggYmVsb3c=</PHRASE>
<PHRASE Label="la_Pending" Module="In-Portal" Type="0">UGVuZGluZw==</PHRASE>
<PHRASE Label="la_performing_backup" Module="In-Portal" Type="1">UGVyZm9ybWluZyBCYWNrdXA=</PHRASE>
<PHRASE Label="la_performing_export" Module="In-Portal" Type="1">UGVyZm9ybWluZyBFeHBvcnQ=</PHRASE>
<PHRASE Label="la_performing_import" Module="In-Portal" Type="1">UGVyZm9ybWluZyBJbXBvcnQ=</PHRASE>
<PHRASE Label="la_performing_restore" Module="In-Portal" Type="1">UGVyZm9ybWluZyBSZXN0b3Jl</PHRASE>
<PHRASE Label="la_PermName_Admin_desc" Module="In-Portal" Type="1">QWxsb3dzIGFjY2VzcyB0byB0aGUgQWRtaW5pc3RyYXRpb24gdXRpbGl0eQ==</PHRASE>
<PHRASE Label="la_PermName_SystemAccess.ReadOnly_desc" Module="In-Portal" Type="1">UmVhZC1Pbmx5IEFjY2VzcyBUbyBEYXRhYmFzZQ==</PHRASE>
<PHRASE Label="la_PermTab_category" Module="In-Portal" Type="1">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_PermTab_link" Module="In-Portal" Type="1">TGlua3M=</PHRASE>
<PHRASE Label="la_PermTab_news" Module="In-Portal" Type="1">QXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_PermTab_topic" Module="In-Portal" Type="1">VG9waWNz</PHRASE>
<PHRASE Label="la_PermType_Admin" Module="In-Portal" Type="1">UGVybWlzc2lvbiBUeXBlIEFkbWlu</PHRASE>
<PHRASE Label="la_PermType_AdminSection" Module="In-Portal" Type="1">QWRtaW5pc3RyYXRpb24=</PHRASE>
<PHRASE Label="la_PermType_Front" Module="In-Portal" Type="1">UGVybWlzc2lvbiBUeXBlIEZyb250IEVuZA==</PHRASE>
<PHRASE Label="la_PermType_FrontEnd" Module="In-Portal" Type="1">RnJvbnQgRW5k</PHRASE>
<PHRASE Label="la_PhraseType_Admin" Module="In-Portal" Type="1">QWRtaW4=</PHRASE>
<PHRASE Label="la_PhraseType_Both" Module="In-Portal" Type="2">Qm90aA==</PHRASE>
<PHRASE Label="la_PhraseType_Front" Module="In-Portal" Type="1">RnJvbnQ=</PHRASE>
<PHRASE Label="la_PositionAndVisibility" Module="In-Portal" Type="1">UG9zaXRpb24gQW5kIFZpc2liaWxpdHk=</PHRASE>
<PHRASE Label="la_posts_newdays_prompt" Module="In-Portal" Type="1">TmV3IHBvc3RzIChkYXlzKQ==</PHRASE>
<PHRASE Label="la_posts_perpage_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIHBvc3RzIHBlciBwYWdl</PHRASE>
<PHRASE Label="la_posts_subheading" Module="In-Portal" Type="1">UG9zdHM=</PHRASE>
<PHRASE Label="la_prevcategory" Module="In-Portal" Type="1">UHJldmlvdXMgY2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_prevgroup" Module="In-Portal" Type="1">UHJldmlvdXMgZ3JvdXA=</PHRASE>
<PHRASE Label="la_PrevUser" Module="In-Portal" Type="1">UHJldmlvdXMgVXNlcg==</PHRASE>
<PHRASE Label="la_prompt_ActiveArticles" Module="In-Portal" Type="1">QWN0aXZlIEFydGljbGVz</PHRASE>
<PHRASE Label="la_prompt_ActiveCategories" Module="In-Portal" Type="1">QWN0aXZlIENhdGVnb3JpZXM=</PHRASE>
<PHRASE Label="la_prompt_ActiveLinks" Module="In-Portal" Type="1">QWN0aXZlIExpbmtz</PHRASE>
<PHRASE Label="la_prompt_ActiveTopics" Module="In-Portal" Type="1">QWN0aXZlIFRvcGljcw==</PHRASE>
<PHRASE Label="la_prompt_ActiveUsers" Module="In-Portal" Type="1">QWN0aXZlIFVzZXJz</PHRASE>
<PHRASE Label="la_prompt_addmodule" Module="In-Portal" Type="1">QWRkIE1vZHVsZQ==</PHRASE>
<PHRASE Label="la_prompt_AddressTo" Module="In-Portal" Type="1">U2VudCBUbw==</PHRASE>
<PHRASE Label="la_prompt_AdminId" Module="In-Portal" Type="1">QWRtaW4gZ3JvdXA=</PHRASE>
<PHRASE Label="la_prompt_AdminMailFrom" Module="In-Portal" Type="1">TWVzc2FnZXMgZnJvbSBTaXRlIEFkbWluIGFyZSBmcm9t</PHRASE>
<PHRASE Label="la_prompt_AdvancedSearch" Module="In-Portal" Type="1">QWR2YW5jZWQgU2VhcmNo</PHRASE>
<PHRASE Label="la_prompt_allow_reset" Module="In-Portal" Type="1">QWxsb3cgcGFzc3dvcmQgcmVzZXQgYWZ0ZXI=</PHRASE>
<PHRASE Label="la_prompt_all_templates" Module="In-Portal" Type="1">QWxsIHRlbXBsYXRlcw==</PHRASE>
<PHRASE Label="la_prompt_AltName" Module="In-Portal" Type="1">QWx0IHZhbHVl</PHRASE>
<PHRASE Label="la_prompt_applyingbanlist" Module="In-Portal" Type="2">QXBwbHlpbmcgQmFuIExpc3QgdG8gRXhpc3RpbmcgVXNlcnMuLg==</PHRASE>
<PHRASE Label="la_prompt_approve_warning" Module="In-Portal" Type="1">Q29udGludWUgdG8gcmVzdG9yZSBhdCBteSBvd24gcmlzaz8=</PHRASE>
<PHRASE Label="la_prompt_Archived" Module="In-Portal" Type="1">QXJjaGl2ZWQ=</PHRASE>
<PHRASE Label="la_prompt_ArchiveDate" Module="In-Portal" Type="1">QXJjaGl2YXRpb24gRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_ArticleAverageRating" Module="In-Portal" Type="1">QXZlcmFnZSBSYXRpbmcgb2YgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_prompt_ArticleBody" Module="In-Portal" Type="1">QXJ0aWNsZSBCb2R5</PHRASE>
<PHRASE Label="la_prompt_ArticleExcerpt" Module="In-Portal" Type="1">QXJ0aWNsZSBFeGNlcnB0</PHRASE>
<PHRASE Label="la_prompt_ArticleExcerpt!" Module="In-Portal" Type="1">QXJ0aWNsZSBFeGNlcnB0</PHRASE>
<PHRASE Label="la_prompt_ArticleReviews" Module="In-Portal" Type="1">VG90YWwgQXJ0aWNsZSBSZXZpZXdz</PHRASE>
<PHRASE Label="la_prompt_ArticlesActive" Module="In-Portal" Type="1">QWN0aXZlIEFydGljbGVz</PHRASE>
<PHRASE Label="la_prompt_ArticlesArchived" Module="In-Portal" Type="1">QXJjaGl2ZWQgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_prompt_ArticlesPending" Module="In-Portal" Type="1">UGVuZGluZyBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_prompt_ArticlesTotal" Module="In-Portal" Type="1">VG90YWwgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_prompt_Attatchment" Module="In-Portal" Type="1">QXR0YWNobWVudA==</PHRASE>
<PHRASE Label="la_Prompt_Attention" Module="In-Portal" Type="1">QXR0ZW50aW9uIQ==</PHRASE>
<PHRASE Label="la_prompt_Author" Module="In-Portal" Type="1">QXV0aG9y</PHRASE>
<PHRASE Label="la_prompt_AutoGen_Excerpt" Module="In-Portal" Type="1">R2VuZXJhdGUgZnJvbSB0aGUgYXJ0aWNsZSBib2R5</PHRASE>
- <PHRASE Label="la_prompt_AutomaticDirectoryName" Module="In-Portal" Type="1">VXNlIEF1dG9tYXRpYyBEaXJlY3RvcnkgTmFtZSAoZm9yIG1vZF9yZXdyaXRlKQ==</PHRASE>
- <PHRASE Label="la_prompt_AutomaticFilename" Module="In-Portal" Type="1">VXNlIEF1dG9tYXRpYyBGaWxlIE5hbWUgKGZvciBtb2RfcmV3cml0ZSk=</PHRASE>
+ <PHRASE Label="la_prompt_AutomaticDirectoryName" Module="In-Portal" Type="1">QXV0b21hdGljIERpcmVjdG9yeSBOYW1l</PHRASE>
+ <PHRASE Label="la_prompt_AutomaticFilename" Module="In-Portal" Type="1">QXV0b21hdGljIEZpbGVuYW1l</PHRASE>
<PHRASE Label="la_prompt_Available_Modules" Module="In-Portal" Type="1">TW9kdWxlcw==</PHRASE>
<PHRASE Label="la_Prompt_Backup_Date" Module="In-Portal" Type="1">QmFjayBVcCBEYXRl</PHRASE>
<PHRASE Label="la_prompt_Backup_Path" Module="In-Portal" Type="1">QmFja3VwIFBhdGg=</PHRASE>
<PHRASE Label="la_Prompt_Backup_Status" Module="In-Portal" Type="1">QmFja3VwIHN0YXR1cw==</PHRASE>
<PHRASE Label="la_prompt_BannedUsers" Module="In-Portal" Type="1">QmFubmVkIFVzZXJz</PHRASE>
<PHRASE Label="la_prompt_birthday" Module="In-Portal" Type="1">RGF0ZSBvZiBCaXJ0aA==</PHRASE>
<PHRASE Label="la_prompt_CacheTimeout" Module="In-Portal" Type="1">Q2FjaGUgVGltZW91dCAoc2Vjb25kcyk=</PHRASE>
<PHRASE Label="la_prompt_CategoryEditorsPick" Module="In-Portal" Type="1">RWRpdG9yJ3MgUGljayBDYXRlZ29yaWVz</PHRASE>
<PHRASE Label="la_prompt_CategoryId" Module="In-Portal" Type="1">Q2F0ZWdvcnkgSUQ=</PHRASE>
<PHRASE Label="la_prompt_CategoryLeadStoryArticles" Module="In-Portal" Type="1">Q2F0ZWdvcnkgTGVhZCBTdG9yeSBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_Prompt_CategoryPermissions" Module="In-Portal" Type="1">Q2F0ZWdvcnkgUGVybWlzc2lvbnM=</PHRASE>
<PHRASE Label="la_prompt_CatLead" Module="In-Portal" Type="1">Q2F0ZWdvcnkgTGVhZCBTdG9yeQ==</PHRASE>
<PHRASE Label="la_prompt_CensorhipId" Module="In-Portal" Type="1">Q2Vuc29yc2hpcCBJZA==</PHRASE>
<PHRASE Label="la_prompt_CensorWord" Module="In-Portal" Type="1">Q2Vuc29yc2hpcCBXb3Jk</PHRASE>
<PHRASE Label="la_prompt_charset" Module="In-Portal" Type="1">Q2hhcnNldA==</PHRASE>
<PHRASE Label="la_prompt_City" Module="In-Portal" Type="1">Q2l0eQ==</PHRASE>
<PHRASE Label="la_prompt_Comments" Module="In-Portal" Type="1">Q29tbWVudHM=</PHRASE>
<PHRASE Label="la_prompt_continue" Module="In-Portal" Type="1">Q29udGludWU=</PHRASE>
<PHRASE Label="la_prompt_CopyLabels" Module="In-Portal" Type="1">Q29weSBMYWJlbHMgZnJvbSB0aGlzIExhbmd1YWdl</PHRASE>
<PHRASE Label="la_prompt_Country" Module="In-Portal" Type="1">Q291bnRyeQ==</PHRASE>
<PHRASE Label="la_prompt_CreatedBy" Module="In-Portal" Type="1">Q3JlYXRlZCBieQ==</PHRASE>
<PHRASE Label="la_prompt_CreatedOn" Module="In-Portal" Type="1">Q3JlYXRlZCBvbg==</PHRASE>
<PHRASE Label="la_prompt_CreatedOn_Time" Module="In-Portal" Type="1">Q3JlYXRlZCBhdA==</PHRASE>
<PHRASE Label="la_prompt_CurrentSessions" Module="In-Portal" Type="1">Q3VycmVudCBTZXNzaW9ucw==</PHRASE>
- <PHRASE Label="la_prompt_CustomFilename" Module="In-Portal" Type="1">RmlsZSBOYW1lIChmb3IgbW9kX3Jld3JpdGUp</PHRASE>
+ <PHRASE Label="la_prompt_CustomFilename" Module="In-Portal" Type="1">Q3VzdG9tIEZpbGVuYW1l</PHRASE>
<PHRASE Label="la_prompt_DatabaseSettings" Module="In-Portal" Type="1">RGF0YWJhc2UgU2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_prompt_DataSize" Module="In-Portal" Type="1">VG90YWwgU2l6ZSBvZiB0aGUgRGF0YWJhc2U=</PHRASE>
<PHRASE Label="la_prompt_DateFormat" Module="In-Portal" Type="1">KG1tLWRkLXl5eXkp</PHRASE>
<PHRASE Label="la_prompt_DbName" Module="In-Portal" Type="1">U2VydmVyIERhdGFiYXNl</PHRASE>
<PHRASE Label="la_prompt_DbPass" Module="In-Portal" Type="1">U2VydmVyIFBhc3N3b3Jk</PHRASE>
<PHRASE Label="la_prompt_DbUsername" Module="In-Portal" Type="1">RGF0YWJhc2UgVXNlciBOYW1l</PHRASE>
<PHRASE Label="la_prompt_decimal" Module="In-Portal" Type="2">RGVjaW1hbCBQb2ludA==</PHRASE>
<PHRASE Label="la_prompt_Default" Module="In-Portal" Type="1">RGVmYXVsdA==</PHRASE>
<PHRASE Label="la_prompt_delete" Module="In-Portal" Type="1">RGVsZXRl</PHRASE>
<PHRASE Label="la_prompt_Description" Module="In-Portal" Type="1">RGVzY3JpcHRpb24=</PHRASE>
- <PHRASE Label="la_prompt_DirectoryName" Module="In-Portal" Type="1">RGlyZWN0b3J5IE5hbWUgKGZvciBtb2RfcmV3cml0ZSk=</PHRASE>
+ <PHRASE Label="la_prompt_DirectoryName" Module="In-Portal" Type="1">RGlyZWN0b3J5IE5hbWU=</PHRASE>
<PHRASE Label="la_prompt_DisabledArticles" Module="In-Portal" Type="1">RGlzYWJsZWQgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_prompt_DisabledCategories" Module="In-Portal" Type="1">RGlzYWJsZWQgQ2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_prompt_DisabledLinks" Module="In-Portal" Type="1">RGlzYWJsZWQgTGlua3M=</PHRASE>
<PHRASE Label="la_prompt_download_export" Module="In-Portal" Type="2">RG93bmxvYWQgTGFuZ3VhZ2UgRXhwb3J0Og==</PHRASE>
<PHRASE Label="la_prompt_DupRating" Module="In-Portal" Type="2">QWxsb3cgRHVwbGljYXRlIFJhdGluZyBWb3Rlcw==</PHRASE>
<PHRASE Label="la_prompt_DupReviews" Module="In-Portal" Type="2">QWxsb3cgRHVwbGljYXRlIFJldmlld3M=</PHRASE>
<PHRASE Label="la_prompt_edit" Module="In-Portal" Type="1">RWRpdA==</PHRASE>
<PHRASE Label="la_prompt_EditorsPick" Module="In-Portal" Type="1">RWRpdG9yJ3MgUGljaw==</PHRASE>
<PHRASE Label="la_prompt_EditorsPickArticles" Module="In-Portal" Type="1">RWRpdG9yJ3MgUGljayBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_prompt_EditorsPickLinks" Module="In-Portal" Type="1">RWRpdG9yJ3MgUGljayBMaW5rcw==</PHRASE>
<PHRASE Label="la_prompt_EditorsPickTopics" Module="In-Portal" Type="1">RWRpdG9yIFBpY2sgVG9waWNz</PHRASE>
<PHRASE Label="la_prompt_edit_query" Module="In-Portal" Type="1">RWRpdCBRdWVyeQ==</PHRASE>
<PHRASE Label="la_prompt_Email" Module="In-Portal" Type="1">RW1haWw=</PHRASE>
<PHRASE Label="la_prompt_EmailBody" Module="In-Portal" Type="1">RW1haWwgQm9keQ==</PHRASE>
<PHRASE Label="la_prompt_EmailCancelMessage" Module="In-Portal" Type="1">RW1haWwgZGVsaXZlcnkgYWJvcnRlZA==</PHRASE>
<PHRASE Label="la_prompt_EmailCompleteMessage" Module="In-Portal" Type="1">VGhlIEVtYWlsIE1lc3NhZ2UgaGFzIGJlZW4gc2VudA==</PHRASE>
<PHRASE Label="la_prompt_EmailInitMessage" Module="In-Portal" Type="1">UGxlYXNlIFdhaXQgd2hpbGUgSW4tUG9ydGFsIHByZXBhcmVzIHRvIHNlbmQgdGhlIG1lc3NhZ2UuLg==</PHRASE>
<PHRASE Label="la_prompt_EmailSubject" Module="In-Portal" Type="1">RW1haWwgU3ViamVjdA==</PHRASE>
<PHRASE Label="la_prompt_EmoticonId" Module="In-Portal" Type="1">RW1vdGlvbiBJZA==</PHRASE>
<PHRASE Label="la_prompt_EnableCache" Module="In-Portal" Type="1">RW5hYmxlIFRlbXBsYXRlIENhY2hpbmc=</PHRASE>
<PHRASE Label="la_prompt_Enabled" Module="In-Portal" Type="1">RW5hYmxlZA==</PHRASE>
<PHRASE Label="la_prompt_Enable_HTML" Module="In-Portal" Type="1">RW5hYmxlIEhUTUw/</PHRASE>
<PHRASE Label="la_prompt_ErrorTag" Module="In-Portal" Type="2">RXJyb3IgVGFn</PHRASE>
<PHRASE Label="la_prompt_Event" Module="In-Portal" Type="1">RXZlbnQ=</PHRASE>
<PHRASE Label="la_prompt_Expired" Module="In-Portal" Type="0">RXhwaXJhdGlvbiBEYXRl</PHRASE>
<PHRASE Label="la_prompt_ExportFileName" Module="In-Portal" Type="2">RXhwb3J0IEZpbGVuYW1l</PHRASE>
<PHRASE Label="la_prompt_export_error" Module="In-Portal" Type="1">R2VuZXJhbCBlcnJvcjogdW5hYmxlIHRvIGV4cG9ydA==</PHRASE>
<PHRASE Label="la_prompt_FieldId" Module="In-Portal" Type="1">RmllbGQgSWQ=</PHRASE>
<PHRASE Label="la_prompt_FieldLabel" Module="In-Portal" Type="1">RmllbGQgTGFiZWw=</PHRASE>
<PHRASE Label="la_prompt_FieldName" Module="In-Portal" Type="1">RmllbGQgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_FieldPrompt" Module="In-Portal" Type="1">RmllbGQgUHJvbXB0</PHRASE>
<PHRASE Label="la_prompt_FileId" Module="In-Portal" Type="1">RmlsZSBJZA==</PHRASE>
<PHRASE Label="la_prompt_FileName" Module="In-Portal" Type="1">RmlsZSBuYW1l</PHRASE>
<PHRASE Label="la_prompt_FirstName" Module="In-Portal" Type="1">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_First_Name" Module="In-Portal" Type="1">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_Frequency" Module="In-Portal" Type="1">RnJlcXVlbmN5</PHRASE>
<PHRASE Label="la_prompt_FromUser" Module="In-Portal" Type="1">RnJvbS9UbyBVc2Vy</PHRASE>
<PHRASE Label="la_prompt_FromUsername" Module="In-Portal" Type="1">RnJvbQ==</PHRASE>
<PHRASE Label="la_prompt_FrontLead" Module="In-Portal" Type="1">RnJvbnQgcGFnZSBsZWFkIGFydGljbGU=</PHRASE>
<PHRASE Label="la_Prompt_GeneralPermissions" Module="In-Portal" Type="1">R2VuZXJhbCBQZXJtaXNzaW9ucw==</PHRASE>
<PHRASE Label="la_prompt_GroupName" Module="In-Portal" Type="1">R3JvdXAgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_headers" Module="In-Portal" Type="1">RXh0cmEgTWFpbCBIZWFkZXJz</PHRASE>
<PHRASE Label="la_prompt_heading" Module="In-Portal" Type="1">SGVhZGluZw==</PHRASE>
<PHRASE Label="la_prompt_HitLimits" Module="In-Portal" Type="1">KE1pbmltdW0gNCk=</PHRASE>
<PHRASE Label="la_prompt_Hits" Module="In-Portal" Type="1">SGl0cw==</PHRASE>
<PHRASE Label="la_prompt_Hot" Module="In-Portal" Type="1">SG90</PHRASE>
<PHRASE Label="la_prompt_HotArticles" Module="In-Portal" Type="1">SG90IEFydGljbGVz</PHRASE>
<PHRASE Label="la_prompt_HotLinks" Module="In-Portal" Type="1">SG90IExpbmtz</PHRASE>
<PHRASE Label="la_prompt_HotTopics" Module="In-Portal" Type="1">SG90IFRvcGljcw==</PHRASE>
<PHRASE Label="la_prompt_html" Module="In-Portal" Type="1">SFRNTA==</PHRASE>
<PHRASE Label="la_prompt_html_version" Module="In-Portal" Type="1">SFRNTCBWZXJzaW9u</PHRASE>
<PHRASE Label="la_prompt_icon_url" Module="In-Portal" Type="1">SWNvbiBVUkw=</PHRASE>
<PHRASE Label="la_prompt_Image" Module="In-Portal" Type="1">SW1hZ2U=</PHRASE>
<PHRASE Label="la_prompt_ImageId" Module="In-Portal" Type="1">SW1hZ2UgSUQ=</PHRASE>
<PHRASE Label="la_prompt_import_error" Module="In-Portal" Type="1">SW1wb3J0IGVuY291bnRlcmVkIGFuIGVycm9yIGFuZCBkaWQgbm90IGNvbXBsZXRlLg==</PHRASE>
<PHRASE Label="la_prompt_Import_ImageName" Module="In-Portal" Type="1">TGluayBJbWFnZSBOYW1l</PHRASE>
<PHRASE Label="la_prompt_Import_Prefix" Module="In-Portal" Type="1">VGFibGUgTmFtZSBQcmVmaXg=</PHRASE>
<PHRASE Label="la_prompt_InitImportCat" Module="In-Portal" Type="1">SW5pdGlhbCBJbXBvcnQgQ2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_prompt_InlinkDbName" Module="In-Portal" Type="1">SW4tTGluayBEYXRhYmFzZSBOYW1l</PHRASE>
<PHRASE Label="la_prompt_InlinkDbPass" Module="In-Portal" Type="1">SW4tTGluayBEYXRhYmFzZSBQYXNzd29yZA==</PHRASE>
<PHRASE Label="la_prompt_InlinkDbUsername" Module="In-Portal" Type="1">SW4tTGluayBEYXRhYmFzZSBVc2VybmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_InlinkServer" Module="In-Portal" Type="1">SW4tTGluayBTZXJ2ZXIgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_InlinkSqlType" Module="In-Portal" Type="1">SW4tTGluayBTUUwgVHlwZQ==</PHRASE>
<PHRASE Label="la_prompt_InputType" Module="In-Portal" Type="1">SW5wdXQgVHlwZQ==</PHRASE>
<PHRASE Label="la_prompt_Install_Status" Module="In-Portal" Type="1">SW5zdGFsbGF0aW9uIFN0YXR1cw==</PHRASE>
<PHRASE Label="la_prompt_ip" Module="In-Portal" Type="1">SVAgQWRkcmVzcw==</PHRASE>
<PHRASE Label="la_prompt_IPAddress" Module="In-Portal" Type="1">SVAgQWRkcmVzcw==</PHRASE>
<PHRASE Label="la_prompt_Item" Module="In-Portal" Type="1">SXRlbQ==</PHRASE>
<PHRASE Label="la_prompt_ItemField" Module="In-Portal" Type="2">SXRlbSBGaWVsZA==</PHRASE>
<PHRASE Label="la_prompt_ItemValue" Module="In-Portal" Type="2">RmllbGQgVmFsdWU=</PHRASE>
<PHRASE Label="la_prompt_ItemVerb" Module="In-Portal" Type="2">RmllbGQgQ29tcGFyaXNvbg==</PHRASE>
<PHRASE Label="la_prompt_KeyStroke" Module="In-Portal" Type="1">S2V5IFN0cm9rZQ==</PHRASE>
<PHRASE Label="la_prompt_Keyword" Module="In-Portal" Type="1">S2V5d29yZA==</PHRASE>
<PHRASE Label="la_prompt_Label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_prompt_LanguageFile" Module="In-Portal" Type="1">TGFuZ3VhZ2UgRmlsZQ==</PHRASE>
<PHRASE Label="la_prompt_LanguageId" Module="In-Portal" Type="1">TGFuZ3VhZ2UgSWQ=</PHRASE>
<PHRASE Label="la_prompt_lang_cache_timeout" Module="In-Portal" Type="1">TGFuZ3VhZ2UgQ2FjaGUgVGltZW91dA==</PHRASE>
<PHRASE Label="la_prompt_lang_dateformat" Module="In-Portal" Type="2">RGF0ZSBGb3JtYXQ=</PHRASE>
<PHRASE Label="la_prompt_lang_timeformat" Module="In-Portal" Type="0">VGltZSBGb3JtYXQ=</PHRASE>
<PHRASE Label="la_prompt_LastArticleUpdate" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIEFydGljbGU=</PHRASE>
<PHRASE Label="la_prompt_LastCategoryUpdate" Module="In-Portal" Type="1">TGFzdCBDYXRlZ29yeSBVcGRhdGU=</PHRASE>
<PHRASE Label="la_prompt_LastLinkUpdate" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIExpbms=</PHRASE>
<PHRASE Label="la_prompt_LastName" Module="In-Portal" Type="1">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="la_prompt_LastUpdatedPostDate" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIFBvc3QgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_LastUpdatedPostTime" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIFBvc3QgVGltZQ==</PHRASE>
<PHRASE Label="la_prompt_LastUpdatedTopicDate" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIFRvcGljIERhdGU=</PHRASE>
<PHRASE Label="la_prompt_LastUpdatedTopicTime" Module="In-Portal" Type="1">TGFzdCBVcGRhdGVkIFRvcGljIFRpbWU=</PHRASE>
<PHRASE Label="la_prompt_Last_Name" Module="In-Portal" Type="1">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="la_prompt_LeadArticle" Module="In-Portal" Type="1">U2l0ZSBMZWFkIFN0b3J5</PHRASE>
<PHRASE Label="la_prompt_LeadCat" Module="In-Portal" Type="1">Q2F0ZWdvcnkgbGVhZCBhcnRpY2xl</PHRASE>
<PHRASE Label="la_prompt_LeadStoryArticles" Module="In-Portal" Type="1">TGVhZCBTdG9yeSBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_prompt_LinkId" Module="In-Portal" Type="1">TGluayBJZA==</PHRASE>
<PHRASE Label="la_prompt_LinkReviews" Module="In-Portal" Type="1">VG90YWwgTGluayBSZXZpZXdz</PHRASE>
<PHRASE Label="la_prompt_LinksAverageRating" Module="In-Portal" Type="1">QXZlcmFnZSBSYXRpbmcgb2YgTGlua3M=</PHRASE>
<PHRASE Label="la_prompt_link_owner" Module="In-Portal" Type="1">TGluayBPd25lcg==</PHRASE>
<PHRASE Label="la_prompt_LoadLangTypes" Module="In-Portal" Type="1">SW5zdGFsbCBQaHJhc2UgVHlwZXM6</PHRASE>
<PHRASE Label="la_prompt_LocalName" Module="In-Portal" Type="1">TG9jYWwgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_Location" Module="In-Portal" Type="1">TG9jYXRpb24=</PHRASE>
<PHRASE Label="la_prompt_mailauthenticate" Module="In-Portal" Type="1">U2VydmVyIFJlcXVpcmVzIEF1dGhlbnRpY2F0aW9u</PHRASE>
<PHRASE Label="la_prompt_mailhtml" Module="In-Portal" Type="1">U2VuZCBIVE1MIGVtYWls</PHRASE>
<PHRASE Label="la_prompt_mailport" Module="In-Portal" Type="1">UG9ydCAoZS5nLiBwb3J0IDI1KQ==</PHRASE>
<PHRASE Label="la_prompt_mailserver" Module="In-Portal" Type="1">TWFpbCBTZXJ2ZXIgQWRkcmVzcw==</PHRASE>
<PHRASE Label="la_prompt_MaxHitsArticles" Module="In-Portal" Type="1">TWF4aW11bSBIaXRzIG9mIGFuIEFydGljbGU=</PHRASE>
<PHRASE Label="la_prompt_MaxLinksHits" Module="In-Portal" Type="1">TWF4aW11bSBIaXRzIG9mIGEgTGluaw==</PHRASE>
<PHRASE Label="la_prompt_MaxLinksVotes" Module="In-Portal" Type="1">TWF4aW11bSBWb3RlcyBvZiBhIExpbms=</PHRASE>
<PHRASE Label="la_prompt_MaxTopicHits" Module="In-Portal" Type="1">VG9waWMgTWF4aW11bSBIaXRz</PHRASE>
<PHRASE Label="la_prompt_MaxTopicVotes" Module="In-Portal" Type="1">VG9waWMgTWF4aW11bSBWb3Rlcw==</PHRASE>
<PHRASE Label="la_prompt_MaxVotesArticles" Module="In-Portal" Type="1">TWF4aW11bSBWb3RlcyBvZiBhbiBBcnRpY2xl</PHRASE>
<PHRASE Label="la_prompt_MembershipExpires" Module="In-Portal" Type="1">TWVtYmVyc2hpcCBFeHBpcmVz</PHRASE>
<PHRASE Label="la_prompt_MessageType" Module="In-Portal" Type="1">Rm9ybWF0</PHRASE>
<PHRASE Label="la_prompt_MetaDescription" Module="In-Portal" Type="1">TWV0YSBEZXNjcmlwdGlvbg==</PHRASE>
<PHRASE Label="la_prompt_MetaKeywords" Module="In-Portal" Type="1">TWV0YSBLZXl3b3Jkcw==</PHRASE>
<PHRASE Label="la_prompt_minkeywordlength" Module="In-Portal" Type="1">TWluaW11bSBrZXl3b3JkIGxlbmd0aA==</PHRASE>
<PHRASE Label="la_prompt_ModifedOn" Module="In-Portal" Type="1">TW9kaWZpZWQgT24=</PHRASE>
<PHRASE Label="la_prompt_ModifedOn_Time" Module="In-Portal" Type="1">TW9kaWZpZWQgYXQ=</PHRASE>
<PHRASE Label="la_prompt_Module" Module="In-Portal" Type="1">TW9kdWxl</PHRASE>
<PHRASE Label="la_prompt_movedown" Module="In-Portal" Type="1">TW92ZSBkb3du</PHRASE>
<PHRASE Label="la_prompt_moveup" Module="In-Portal" Type="1">TW92ZSB1cA==</PHRASE>
<PHRASE Label="la_prompt_multipleshow" Module="In-Portal" Type="1">U2hvdyBtdWx0aXBsZQ==</PHRASE>
<PHRASE Label="la_prompt_Name" Module="In-Portal" Type="1">TmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_New" Module="In-Portal" Type="1">TmV3</PHRASE>
<PHRASE Label="la_prompt_NewArticles" Module="In-Portal" Type="1">TmV3IEFydGljbGVz</PHRASE>
<PHRASE Label="la_prompt_NewCategories" Module="In-Portal" Type="1">TmV3IENhdGVnb3JpZXM=</PHRASE>
<PHRASE Label="la_prompt_NewestArticleDate" Module="In-Portal" Type="1">TmV3ZXN0IEFydGljbGUgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_NewestCategoryDate" Module="In-Portal" Type="1">TmV3ZXN0IENhdGVnb3J5IERhdGU=</PHRASE>
<PHRASE Label="la_prompt_NewestLinkDate" Module="In-Portal" Type="1">TmV3ZXN0IExpbmsgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_NewestPostDate" Module="In-Portal" Type="1">TmV3ZXN0IFBvc3QgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_NewestPostTime" Module="In-Portal" Type="1">TmV3ZXN0IFBvc3QgVGltZQ==</PHRASE>
<PHRASE Label="la_prompt_NewestTopicDate" Module="In-Portal" Type="1">TmV3ZXN0IFRvcGljIERhdGU=</PHRASE>
<PHRASE Label="la_prompt_NewestTopicTime" Module="In-Portal" Type="1">TmV3ZXN0IFRvcGljIFRpbWU=</PHRASE>
<PHRASE Label="la_prompt_NewestUserDate" Module="In-Portal" Type="1">TmV3ZXN0IFVzZXIgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_NewLinks" Module="In-Portal" Type="1">TmV3IExpbmtz</PHRASE>
<PHRASE Label="la_prompt_NewsId" Module="In-Portal" Type="1">TmV3cyBBcnRpY2xlIElE</PHRASE>
<PHRASE Label="la_prompt_NewTopics" Module="In-Portal" Type="1">TmV3IFRvcGljcw==</PHRASE>
<PHRASE Label="la_prompt_NonExpiredSessions" Module="In-Portal" Type="1">Q3VycmVudGx5IEFjdGl2ZSBVc2VyIFNlc3Npb25z</PHRASE>
<PHRASE Label="la_prompt_NotifyOwner" Module="In-Portal" Type="1">Tm90aWZ5IE93bmVy</PHRASE>
<PHRASE Label="la_prompt_NotRegUsers" Module="In-Portal" Type="1">TGluayBwZXJtaXNzaW9uIElEIGZvciBhbGwgdW5yZWdpc3RlcmVkIHVzZXJzIHRvIHZpZXcgaXQ=</PHRASE>
<PHRASE Label="la_prompt_overwritephrases" Module="In-Portal" Type="2">T3ZlcndyaXRlIEV4aXN0aW5nIFBocmFzZXM=</PHRASE>
<PHRASE Label="la_prompt_PackName" Module="In-Portal" Type="1">UGFjayBOYW1l</PHRASE>
<PHRASE Label="la_prompt_Parameter" Module="In-Portal" Type="1">UGFyYW1ldGVy</PHRASE>
<PHRASE Label="la_prompt_parent_templates" Module="In-Portal" Type="1">UGFyZW50IHRlbXBsYXRlcw==</PHRASE>
<PHRASE Label="la_prompt_Password" Module="In-Portal" Type="1">UGFzc3dvcmQ=</PHRASE>
<PHRASE Label="la_prompt_PasswordRepeat" Module="In-Portal" Type="1">UmVwZWF0IFBhc3N3b3Jk</PHRASE>
<PHRASE Label="la_prompt_Pending" Module="In-Portal" Type="1">UGVuZGluZw==</PHRASE>
<PHRASE Label="la_prompt_PendingCategories" Module="In-Portal" Type="1">UGVuZGluZyBDYXRlZ29yaWVz</PHRASE>
<PHRASE Label="la_prompt_PendingItems" Module="In-Portal" Type="1">UGVuZGluZyBJdGVtcw==</PHRASE>
<PHRASE Label="la_prompt_PendingLinks" Module="In-Portal" Type="1">UGVuZGluZyBMaW5rcw==</PHRASE>
<PHRASE Label="la_prompt_perform_now" Module="In-Portal" Type="1">UGVyZm9ybSB0aGlzIG9wZXJhdGlvbiBub3c/</PHRASE>
<PHRASE Label="la_prompt_PerPage" Module="In-Portal" Type="1">UGVyIFBhZ2U=</PHRASE>
<PHRASE Label="la_prompt_PersonalInfo" Module="In-Portal" Type="1">UGVyc29uYWwgSW5mb3JtYXRpb24=</PHRASE>
<PHRASE Label="la_prompt_Phone" Module="In-Portal" Type="1">UGhvbmU=</PHRASE>
<PHRASE Label="la_prompt_PhraseId" Module="In-Portal" Type="1">UGhyYXNlIElk</PHRASE>
<PHRASE Label="la_prompt_Phrases" Module="In-Portal" Type="1">UGhyYXNlcw==</PHRASE>
<PHRASE Label="la_prompt_PhraseType" Module="In-Portal" Type="1">UGhyYXNlIFR5cGU=</PHRASE>
<PHRASE Label="la_prompt_plaintext" Module="In-Portal" Type="1">UGxhaW4gVGV4dA==</PHRASE>
<PHRASE Label="la_prompt_Pop" Module="In-Portal" Type="1">UG9wdWxhcml0eQ==</PHRASE>
<PHRASE Label="la_prompt_PopularArticles" Module="In-Portal" Type="1">UG9wdWxhciBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="la_prompt_PopularLinks" Module="In-Portal" Type="1">UG9wdWxhciBMaW5rcw==</PHRASE>
<PHRASE Label="la_prompt_PopularTopics" Module="In-Portal" Type="1">UG9wdWxhciBUb3BpY3M=</PHRASE>
<PHRASE Label="la_prompt_PostedBy" Module="In-Portal" Type="1">UG9zdGVkIGJ5</PHRASE>
<PHRASE Label="la_prompt_PostsToLock" Module="In-Portal" Type="1">UG9zdHMgdG8gbG9jaw==</PHRASE>
<PHRASE Label="la_prompt_PostsTotal" Module="In-Portal" Type="1">VG90YWwgUG9zdHM=</PHRASE>
<PHRASE Label="la_prompt_Primary" Module="In-Portal" Type="1">UHJpbWFyeQ==</PHRASE>
<PHRASE Label="la_prompt_PrimaryGroup" Module="In-Portal" Type="1">UHJpbWFyeSBHcm91cA==</PHRASE>
<PHRASE Label="la_prompt_PrimaryValue" Module="In-Portal" Type="1">UHJpbWFyeSBWYWx1ZQ==</PHRASE>
<PHRASE Label="la_prompt_Priority" Module="In-Portal" Type="1">UHJpb3JpdHk=</PHRASE>
<PHRASE Label="la_prompt_Properties" Module="In-Portal" Type="1">UHJvcGVydGllcw==</PHRASE>
<PHRASE Label="la_prompt_Rating" Module="In-Portal" Type="1">UmF0aW5n</PHRASE>
<PHRASE Label="la_prompt_RatingLimits" Module="In-Portal" Type="1">KE1pbmltdW0gMCwgTWF4aW11bSA1KQ==</PHRASE>
<PHRASE Label="la_prompt_RecordsCount" Module="In-Portal" Type="1">TnVtYmVyIG9mIERhdGFiYXNlIFJlY29yZHM=</PHRASE>
<PHRASE Label="la_prompt_RegionsCount" Module="In-Portal" Type="1">TnVtYmVyIG9mIFJlZ2lvbiBQYWNrcw==</PHRASE>
<PHRASE Label="la_prompt_RegUserId" Module="In-Portal" Type="1">UmVndWxhciBVc2VyIEdyb3Vw</PHRASE>
<PHRASE Label="la_prompt_RegUsers" Module="In-Portal" Type="1">TGluayBwZXJtaXNzaW9uIElEIGZvciBhbGwgcmVnaXN0ZXJlZCB1c2VycyB0byB2aWV3IGl0</PHRASE>
<PHRASE Label="la_prompt_RelationId" Module="In-Portal" Type="1">UmVsYXRpb24gSUQ=</PHRASE>
<PHRASE Label="la_prompt_RelationType" Module="In-Portal" Type="1">UmVsYXRpb24gVHlwZQ==</PHRASE>
<PHRASE Label="la_prompt_relevence_percent" Module="In-Portal" Type="1">U2VhcmNoIFJlbGV2YW5jZSBkZXBlbmRzIG9u</PHRASE>
<PHRASE Label="la_prompt_relevence_settings" Module="In-Portal" Type="1">U2VhcmNoIFJlbGV2ZW5jZSBTZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_prompt_remote_url" Module="In-Portal" Type="1">VXNlIHJlbW90ZSBpbWFnZSAoVVJMKQ==</PHRASE>
<PHRASE Label="la_prompt_ReplacementWord" Module="In-Portal" Type="1">UmVwbGFjZW1lbnQgV29yZA==</PHRASE>
<PHRASE Label="la_prompt_required_field_increase" Module="In-Portal" Type="1">SW5jcmVhc2UgaW1wb3J0YW5jZSBpZiBmaWVsZCBjb250YWlucyBhIHJlcXVpcmVkIGtleXdvcmQgYnk=</PHRASE>
<PHRASE Label="la_Prompt_Restore_Failed" Module="In-Portal" Type="1">UmVzdG9yZSBoYXMgZmFpbGVkIGFuIGVycm9yIG9jY3VyZWQ6</PHRASE>
<PHRASE Label="la_Prompt_Restore_Filechoose" Module="In-Portal" Type="1">Q2hvb3NlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGJhY2t1cCBkYXRlcyB0byByZXN0b3JlIG9yIGRlbGV0ZQ==</PHRASE>
<PHRASE Label="la_Prompt_Restore_Status" Module="In-Portal" Type="1">UmVzdG9yZSBTdGF0dXM=</PHRASE>
<PHRASE Label="la_Prompt_Restore_Success" Module="In-Portal" Type="1">UmVzdG9yZSBoYXMgYmVlbiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5</PHRASE>
<PHRASE Label="la_Prompt_ReviewedBy" Module="In-Portal" Type="1">UmV2aWV3ZWQgQnk=</PHRASE>
<PHRASE Label="la_prompt_ReviewId" Module="In-Portal" Type="1">UmV2aWV3IElE</PHRASE>
<PHRASE Label="la_prompt_ReviewText" Module="In-Portal" Type="1">UmV2aWV3IFRleHQ=</PHRASE>
<PHRASE Label="la_prompt_RootCategory" Module="In-Portal" Type="1">U2VsZWN0IE1vZHVsZSBSb290IENhdGVnb3J5Og==</PHRASE>
<PHRASE Label="la_prompt_root_name" Module="In-Portal" Type="1">Um9vdCBjYXRlZ29yeSBuYW1lIChsYW5ndWFnZSB2YXJpYWJsZSk=</PHRASE>
<PHRASE Label="la_prompt_root_pass" Module="In-Portal" Type="1">Um9vdCBQYXNzd29yZA==</PHRASE>
<PHRASE Label="la_prompt_Root_Password" Module="In-Portal" Type="1">UGxlYXNlIGVudGVyIHRoZSBSb290IHBhc3N3b3Jk</PHRASE>
<PHRASE Label="la_prompt_root_pass_verify" Module="In-Portal" Type="1">VmVyaWZ5IFJvb3QgUGFzc3dvcmQ=</PHRASE>
<PHRASE Label="la_prompt_RuleType" Module="In-Portal" Type="2">UnVsZSBUeXBl</PHRASE>
<PHRASE Label="la_prompt_runlink_validation" Module="In-Portal" Type="2">VmFsaWRhdGlvbiBQcm9ncmVzcw==</PHRASE>
<PHRASE Label="la_prompt_Search" Module="In-Portal" Type="1">U2VhcmNo</PHRASE>
<PHRASE Label="la_prompt_SearchType" Module="In-Portal" Type="1">U2VhcmNoIFR5cGU=</PHRASE>
<PHRASE Label="la_prompt_Select_Source" Module="In-Portal" Type="1">U2VsZWN0IFNvdXJjZSBMYW5ndWFnZQ==</PHRASE>
<PHRASE Label="la_prompt_sendmethod" Module="In-Portal" Type="1">U2VuZCBFbWFpbCBBcw==</PHRASE>
<PHRASE Label="la_prompt_SentOn" Module="In-Portal" Type="1">U2VudCBPbg==</PHRASE>
<PHRASE Label="la_prompt_Server" Module="In-Portal" Type="1">U2VydmVyIEhvc3RuYW1l</PHRASE>
<PHRASE Label="la_prompt_session_cookie_name" Module="In-Portal" Type="1">U2Vzc2lvbiBDb29raWUgTmFtZQ==</PHRASE>
<PHRASE Label="la_prompt_session_management" Module="In-Portal" Type="1">U2Vzc2lvbiBNYW5hZ2VtZW50IE1ldGhvZA==</PHRASE>
<PHRASE Label="la_prompt_session_timeout" Module="In-Portal" Type="1">U2Vzc2lvbiBJbmFjdGl2aXR5IFRpbWVvdXQgKHNlY29uZHMp</PHRASE>
<PHRASE Label="la_prompt_showgeneraltab" Module="In-Portal" Type="1">U2hvdyBvbiB0aGUgZ2VuZXJhbCB0YWI=</PHRASE>
<PHRASE Label="la_prompt_SimpleSearch" Module="In-Portal" Type="1">U2ltcGxlIFNlYXJjaA==</PHRASE>
<PHRASE Label="la_prompt_smtpheaders" Module="In-Portal" Type="1">QWRkaXRpb25hbCBNZXNzYWdlIEhlYWRlcnM=</PHRASE>
<PHRASE Label="la_prompt_smtp_pass" Module="In-Portal" Type="1">TWFpbCBTZXJ2ZXIgUGFzc3dvcmQ=</PHRASE>
<PHRASE Label="la_prompt_smtp_user" Module="In-Portal" Type="1">TWFpbCBTZXJ2ZXIgVXNlcm5hbWU=</PHRASE>
<PHRASE Label="la_prompt_socket_blocking_mode" Module="In-Portal" Type="1">VXNlIG5vbi1ibG9ja2luZyBzb2NrZXQgbW9kZQ==</PHRASE>
<PHRASE Label="la_prompt_sqlquery" Module="In-Portal" Type="1">U1FMIFF1ZXJ5Og==</PHRASE>
<PHRASE Label="la_prompt_sqlquery_error" Module="In-Portal" Type="1">QW4gU1FMIGVycm9yIGhhcyBvY2N1cmVk</PHRASE>
<PHRASE Label="la_prompt_sqlquery_header" Module="In-Portal" Type="1">UGVyZm9ybSBTUUwgUXVlcnk=</PHRASE>
<PHRASE Label="la_prompt_sqlquery_result" Module="In-Portal" Type="1">U1FMIFF1ZXJ5IFJlc3VsdHM=</PHRASE>
<PHRASE Label="la_prompt_SqlType" Module="In-Portal" Type="1">U2VydmVyIFR5cGU=</PHRASE>
<PHRASE Label="la_prompt_StartDate" Module="In-Portal" Type="1">U3RhcnQgRGF0ZQ==</PHRASE>
<PHRASE Label="la_prompt_State" Module="In-Portal" Type="1">U3RhdGU=</PHRASE>
<PHRASE Label="la_prompt_Status" Module="In-Portal" Type="1">U3RhdHVz</PHRASE>
<PHRASE Label="la_Prompt_Step_One" Module="In-Portal" Type="1">U3RlcCBPbmU=</PHRASE>
<PHRASE Label="la_prompt_Street" Module="In-Portal" Type="1">U3RyZWV0</PHRASE>
<PHRASE Label="la_prompt_Stylesheet" Module="In-Portal" Type="1">U3R5bGVzaGVldA==</PHRASE>
<PHRASE Label="la_prompt_Subject" Module="In-Portal" Type="1">U3ViamVjdA==</PHRASE>
<PHRASE Label="la_prompt_SubSearch" Module="In-Portal" Type="1">U3ViIFNlYXJjaA==</PHRASE>
<PHRASE Label="la_prompt_syscache_enable" Module="In-Portal" Type="1">RW5hYmxlIFRhZyBDYWNoaW5n</PHRASE>
<PHRASE Label="la_prompt_SystemFileSize" Module="In-Portal" Type="1">VG90YWwgU2l6ZSBvZiBTeXN0ZW0gRmlsZXM=</PHRASE>
<PHRASE Label="la_Prompt_SystemPermissions" Module="In-Portal" Type="1">U3lzdGVtIHByZW1pc3Npb25z</PHRASE>
<PHRASE Label="la_prompt_TablesCount" Module="In-Portal" Type="1">TnVtYmVyIG9mIERhdGFiYXNlIFRhYmxlcw==</PHRASE>
<PHRASE Label="la_prompt_Template" Module="In-Portal" Type="1">VGVtcGxhdGU=</PHRASE>
<PHRASE Label="la_prompt_text_version" Module="In-Portal" Type="1">VGV4dCBWZXJzaW9u</PHRASE>
<PHRASE Label="la_prompt_Theme" Module="In-Portal" Type="1">VGhlbWU=</PHRASE>
<PHRASE Label="la_prompt_ThemeCount" Module="In-Portal" Type="1">TnVtYmVyIG9mIFRoZW1lcw==</PHRASE>
<PHRASE Label="la_prompt_ThemeId" Module="In-Portal" Type="1">VGhlbWUgSWQ=</PHRASE>
<PHRASE Label="la_prompt_thousand" Module="In-Portal" Type="2">VGhvdXNhbmRzIFNlcGFyYXRvcg==</PHRASE>
<PHRASE Label="la_prompt_ThumbURL" Module="In-Portal" Type="1">UmVtb3RlIFVSTA==</PHRASE>
<PHRASE Label="la_prompt_TimeFormat" Module="In-Portal" Type="1">KGhoOm1tOnNzKQ==</PHRASE>
<PHRASE Label="la_Prompt_Title" Module="In-Portal" Type="1">VGl0bGU=</PHRASE>
<PHRASE Label="la_prompt_To" Module="In-Portal" Type="1">VG8=</PHRASE>
<PHRASE Label="la_prompt_TopicAverageRating" Module="In-Portal" Type="1">VG9waWNzIEF2ZXJhZ2UgUmF0aW5n</PHRASE>
<PHRASE Label="la_prompt_TopicId" Module="In-Portal" Type="1">VG9waWMgSUQ=</PHRASE>
<PHRASE Label="la_prompt_TopicLocked" Module="In-Portal" Type="1">VG9waWMgTG9ja2Vk</PHRASE>
<PHRASE Label="la_prompt_TopicReviews" Module="In-Portal" Type="1">VG90YWwgVG9waWMgUmV2aWV3cw==</PHRASE>
<PHRASE Label="la_prompt_TopicsActive" Module="In-Portal" Type="1">QWN0aXZlIFRvcGljcw==</PHRASE>
<PHRASE Label="la_prompt_TopicsDisabled" Module="In-Portal" Type="1">RGlzYWJsZWQgVG9waWNz</PHRASE>
<PHRASE Label="la_prompt_TopicsPending" Module="In-Portal" Type="1">UGVuZGluZyBUb3BpY3M=</PHRASE>
<PHRASE Label="la_prompt_TopicsTotal" Module="In-Portal" Type="1">VG90YWwgVG9waWNz</PHRASE>
<PHRASE Label="la_prompt_TopicsUsers" Module="In-Portal" Type="1">VG90YWwgVXNlcnMgd2l0aCBUb3BpY3M=</PHRASE>
<PHRASE Label="la_prompt_TotalCategories" Module="In-Portal" Type="1">VG90YWwgQ2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_prompt_TotalLinks" Module="In-Portal" Type="1">VG90YWwgTGlua3M=</PHRASE>
<PHRASE Label="la_prompt_TotalUserGroups" Module="In-Portal" Type="1">VG90YWwgVXNlciBHcm91cHM=</PHRASE>
<PHRASE Label="la_prompt_Type" Module="In-Portal" Type="1">VHlwZQ==</PHRASE>
<PHRASE Label="la_prompt_updating" Module="In-Portal" Type="1">VXBkYXRpbmc=</PHRASE>
<PHRASE Label="la_prompt_upload" Module="In-Portal" Type="1">VXBsb2FkIGltYWdlIGZyb20gbG9jYWwgUEM=</PHRASE>
<PHRASE Label="la_prompt_URL" Module="In-Portal" Type="1">VVJM</PHRASE>
<PHRASE Label="la_prompt_UserCount" Module="In-Portal" Type="1">VXNlciBDb3VudA==</PHRASE>
<PHRASE Label="la_prompt_Usermame" Module="In-Portal" Type="1">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="la_prompt_Username" Module="In-Portal" Type="1">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="la_prompt_UsersActive" Module="In-Portal" Type="1">QWN0aXZlIFVzZXJz</PHRASE>
<PHRASE Label="la_prompt_UsersDisabled" Module="In-Portal" Type="1">RGlzYWJsZWQgVXNlcnM=</PHRASE>
<PHRASE Label="la_prompt_UsersPending" Module="In-Portal" Type="1">UGVuZGluZyBVc2Vycw==</PHRASE>
<PHRASE Label="la_prompt_UsersUniqueCountries" Module="In-Portal" Type="1">TnVtYmVyIG9mIFVuaXF1ZSBDb3VudHJpZXMgb2YgVXNlcnM=</PHRASE>
<PHRASE Label="la_prompt_UsersUniqueStates" Module="In-Portal" Type="1">TnVtYmVyIG9mIFVuaXF1ZSBTdGF0ZXMgb2YgVXNlcnM=</PHRASE>
<PHRASE Label="la_prompt_Value" Module="In-Portal" Type="1">VmFsdWU=</PHRASE>
<PHRASE Label="la_prompt_valuelist" Module="In-Portal" Type="1">TGlzdCBvZiBWYWx1ZXM=</PHRASE>
<PHRASE Label="la_prompt_Views" Module="In-Portal" Type="1">Vmlld3M=</PHRASE>
<PHRASE Label="la_prompt_Visible" Module="In-Portal" Type="1">VmlzaWJsZQ==</PHRASE>
<PHRASE Label="la_prompt_VoteLimits" Module="In-Portal" Type="1">KE1pbmltdW0gMSk=</PHRASE>
<PHRASE Label="la_prompt_Votes" Module="In-Portal" Type="1">Vm90ZXM=</PHRASE>
<PHRASE Label="la_Prompt_Warning" Module="In-Portal" Type="1">V2FybmluZyE=</PHRASE>
<PHRASE Label="la_prompt_weight" Module="In-Portal" Type="1">V2VpZ2h0</PHRASE>
<PHRASE Label="la_prompt_Zip" Module="In-Portal" Type="1">Wmlw</PHRASE>
- <PHRASE Label="la_promt_ReferrerCheck" Module="In-Portal" Type="1">RW5hYmxlIFJlZmVycmVyIENoZWNraW5n</PHRASE>
+ <PHRASE Label="la_promt_ReferrerCheck" Module="" Type="1">U2Vzc2lvbiBSZWZlcnJlciBDaGVja2luZw==</PHRASE>
<PHRASE Label="la_rating_alreadyvoted" Module="In-Portal" Type="1">QWxyZWFkeSB2b3RlZA==</PHRASE>
<PHRASE Label="la_RemoveFrom" Module="In-Portal" Type="1">UmVtb3ZlIEZyb20=</PHRASE>
<PHRASE Label="la_RequiredWarning" Module="In-Portal" Type="1">Tm90IGFsbCByZXF1aXJlZCBmaWVsZHMgYXJlIGZpbGxlZC4gUGxlYXNlIGZpbGwgdGhlbSBmaXJzdC4=</PHRASE>
<PHRASE Label="la_restore_access_denied" Module="In-Portal" Type="1">QWNjZXNzIGRlbmllZA==</PHRASE>
<PHRASE Label="la_restore_file_error" Module="In-Portal" Type="1">RmlsZSBlcnJvcg==</PHRASE>
<PHRASE Label="la_restore_file_not_found" Module="In-Portal" Type="1">RmlsZSBub3QgZm91bmQ=</PHRASE>
<PHRASE Label="la_restore_read_error" Module="In-Portal" Type="1">VW5hYmxlIHRvIHJlYWQgZnJvbSBmaWxl</PHRASE>
<PHRASE Label="la_restore_unknown_error" Module="In-Portal" Type="1">QW4gdW5kZWZpbmVkIGVycm9yIGhhcyBvY2N1cmVk</PHRASE>
<PHRASE Label="la_reviewer" Module="In-Portal" Type="1">UmV2aWV3ZXI=</PHRASE>
<PHRASE Label="la_review_added" Module="In-Portal" Type="1">UmV2aWV3IGFkZGVkIHN1Y2Nlc3NmdWxseQ==</PHRASE>
<PHRASE Label="la_review_alreadyreviewed" Module="In-Portal" Type="1">VGhpcyBpdGVtIGhhcyBhbHJlYWR5IGJlZW4gcmV2aWV3ZWQ=</PHRASE>
<PHRASE Label="la_review_error" Module="In-Portal" Type="1">RXJyb3IgYWRkaW5nIHJldmlldw==</PHRASE>
<PHRASE Label="la_review_perpage_prompt" Module="In-Portal" Type="1">UmV2aWV3cyBQZXIgUGFnZQ==</PHRASE>
<PHRASE Label="la_review_perpage_short_prompt" Module="In-Portal" Type="1">UmV2aWV3cyBQZXIgUGFnZSAoU2hvcnRsaXN0KQ==</PHRASE>
<PHRASE Label="la_rootpass_verify_error" Module="In-Portal" Type="1">RXJyb3IgdmVyaWZ5aW5nIHBhc3N3b3Jk</PHRASE>
<PHRASE Label="la_running_query" Module="In-Portal" Type="1">UnVubmluZyBRdWVyeQ==</PHRASE>
<PHRASE Label="la_SampleText" Module="In-Portal" Type="1">U2FtcGxlIFRleHQ=</PHRASE>
<PHRASE Label="la_Save" Module="In-Portal" Type="1">U2F2ZQ==</PHRASE>
<PHRASE Label="la_Search" Module="In-Portal" Type="1">U2VhcmNo</PHRASE>
<PHRASE Label="la_SearchLabel" Module="In-Portal" Type="1">U2VhcmNo</PHRASE>
<PHRASE Label="la_SearchLabel_Categories" Module="In-Portal" Type="1">U2VhcmNoIENhdGVnb3JpZXM=</PHRASE>
<PHRASE Label="la_SearchLabel_Links" Module="In-Portal" Type="1">U2VhcmNoIExpbmtz</PHRASE>
<PHRASE Label="la_SearchLabel_News" Module="In-Portal" Type="1">U2VhcmNoIEFydGljbGVz</PHRASE>
<PHRASE Label="la_SearchLabel_Topics" Module="In-Portal" Type="1">U2VhcmNoIFRvcGljcw==</PHRASE>
<PHRASE Label="la_SearchMenu_Categories" Module="In-Portal" Type="1">Q2F0ZWdvcmllczE=</PHRASE>
<PHRASE Label="la_SearchMenu_Clear" Module="In-Portal" Type="1">Q2xlYXIgU2VhcmNo</PHRASE>
<PHRASE Label="la_SearchMenu_New" Module="In-Portal" Type="1">TmV3IFNlYXJjaA==</PHRASE>
<PHRASE Label="la_Sectionheader_MetaInformation" Module="In-Portal" Type="1">TUVUQSBJbmZvcm1hdGlvbg==</PHRASE>
<PHRASE Label="la_section_General" Module="In-Portal" Type="1">R2VuZXJhbA==</PHRASE>
<PHRASE Label="la_section_Message" Module="In-Portal" Type="1">TWVzc2FnZQ==</PHRASE>
<PHRASE Label="la_section_overview" Module="In-Portal" Type="1">U2VjdGlvbiBPdmVydmlldw==</PHRASE>
<PHRASE Label="la_section_Properties" Module="In-Portal" Type="1">UHJvcGVydGllcw==</PHRASE>
<PHRASE Label="la_section_Translation" Module="In-Portal" Type="1">VHJhbnNsYXRpb24=</PHRASE>
<PHRASE Label="la_selecting_categories" Module="In-Portal" Type="1">U2VsZWN0aW5nIENhdGVnb3JpZXM=</PHRASE>
<PHRASE Label="la_Selection_Empty" Module="In-Portal" Type="1">RW1wdHkgc2VsZWN0aW9u</PHRASE>
<PHRASE Label="la_Showing_Logs" Module="In-Portal" Type="1">U2hvd2luZyBMb2dz</PHRASE>
<PHRASE Label="la_Showing_Stats" Module="In-Portal" Type="1">U2hvd2luZyBTdGF0aXN0aWNz</PHRASE>
<PHRASE Label="la_Show_EmailLog" Module="In-Portal" Type="1">U2hvdyBFbWFpbCBMb2c=</PHRASE>
<PHRASE Label="la_Show_Log" Module="In-Portal" Type="1">U2hvd2luZyBMb2dz</PHRASE>
<PHRASE Label="la_sortfield2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_step" Module="In-Portal" Type="1">U3RlcA==</PHRASE>
<PHRASE Label="la_StyleDefinition" Module="In-Portal" Type="1">RGVmaW5pdGlvbg==</PHRASE>
<PHRASE Label="la_StylePreview" Module="In-Portal" Type="1">UHJldmlldw==</PHRASE>
<PHRASE Label="la_sunday" Module="In-Portal" Type="1">U3VuZGF5</PHRASE>
<PHRASE Label="la_tab_AdminUI" Module="In-Portal" Type="1">QWRtaW5pc3RyYXRpb24gUGFuZWwgVUk=</PHRASE>
<PHRASE Label="la_tab_AdvancedView" Module="In-Portal" Type="1">QWR2YW5jZWQgVmlldw==</PHRASE>
<PHRASE Label="la_tab_Backup" Module="In-Portal" Type="1">QmFja3Vw</PHRASE>
<PHRASE Label="la_tab_BanList" Module="In-Portal" Type="1">VXNlciBCYW4gTGlzdA==</PHRASE>
<PHRASE Label="la_tab_BaseStyles" Module="In-Portal" Type="1">QmFzZSBTdHlsZXM=</PHRASE>
<PHRASE Label="la_tab_BlockStyles" Module="In-Portal" Type="1">QmxvY2sgU3R5bGVz</PHRASE>
<PHRASE Label="la_tab_Browse" Module="In-Portal" Type="1">Q2F0YWxvZw==</PHRASE>
<PHRASE Label="la_tab_Categories" Module="In-Portal" Type="1">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_tab_Category_RelationSelect" Module="In-Portal" Type="1">U2VsZWN0IEl0ZW0=</PHRASE>
<PHRASE Label="la_tab_Category_Select" Module="In-Portal" Type="1">Q2F0ZWdvcnkgU2VsZWN0</PHRASE>
<PHRASE Label="la_tab_Censorship" Module="In-Portal" Type="1">Q2Vuc29yc2hpcA==</PHRASE>
<PHRASE Label="la_tab_Community" Module="In-Portal" Type="1">Q29tbXVuaXR5</PHRASE>
<PHRASE Label="la_tab_ConfigCensorship" Module="In-Portal" Type="1">Q2Vuc29yc2hpcA==</PHRASE>
<PHRASE Label="la_tab_ConfigCustom" Module="In-Portal" Type="1">Q3VzdG9tIEZpZWxkcw==</PHRASE>
<PHRASE Label="la_tab_ConfigE-mail" Module="In-Portal" Type="1">RS1tYWlsIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_tab_ConfigOutput" Module="In-Portal" Type="1">T3V0cHV0IFNldHRpbmdz</PHRASE>
<PHRASE Label="la_tab_ConfigSearch" Module="In-Portal" Type="1">U2VhcmNoIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_tab_ConfigSettings" Module="In-Portal" Type="1">R2VuZXJhbCBTZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_tab_ConfigSmileys" Module="In-Portal" Type="1">U21pbGV5cw==</PHRASE>
<PHRASE Label="la_tab_Custom" Module="In-Portal" Type="1">Q3VzdG9t</PHRASE>
<PHRASE Label="la_tab_EmailEvents" Module="In-Portal" Type="1">RW1haWwgRXZlbnRz</PHRASE>
<PHRASE Label="la_tab_EmailLog" Module="In-Portal" Type="1">RW1haWwgTG9n</PHRASE>
<PHRASE Label="la_tab_EmailMessage" Module="In-Portal" Type="1">RW1haWwgTWVzc2FnZQ==</PHRASE>
<PHRASE Label="la_tab_ExportData" Module="In-Portal" Type="1">RXhwb3J0IERhdGE=</PHRASE>
<PHRASE Label="la_tab_ExportLang" Module="In-Portal" Type="1">RXhwb3J0IExhbmd1YWdlIFBhY2s=</PHRASE>
<PHRASE Label="la_tab_General" Module="In-Portal" Type="1">R2VuZXJhbA==</PHRASE>
<PHRASE Label="la_tab_GeneralSettings" Module="In-Portal" Type="1">R2VuZXJhbCBTZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_tab_Group" Module="In-Portal" Type="1">R3JvdXA=</PHRASE>
<PHRASE Label="la_tab_Groups" Module="In-Portal" Type="1">R3JvdXBz</PHRASE>
<PHRASE Label="la_tab_GroupSelect" Module="In-Portal" Type="1">U2VsZWN0IEdyb3Vw</PHRASE>
<PHRASE Label="la_tab_Help" Module="In-Portal" Type="1">SGVscA==</PHRASE>
<PHRASE Label="la_tab_Images" Module="In-Portal" Type="1">SW1hZ2Vz</PHRASE>
<PHRASE Label="la_tab_ImportData" Module="In-Portal" Type="1">SW1wb3J0IERhdGE=</PHRASE>
<PHRASE Label="la_tab_ImportLang" Module="In-Portal" Type="1">SW1wb3J0IExhbmd1YWdlIFBhY2s=</PHRASE>
<PHRASE Label="la_tab_inlinkimport" Module="In-Portal" Type="1">SW4tbGluayBpbXBvcnQ=</PHRASE>
<PHRASE Label="la_tab_Install" Module="In-Portal" Type="1">SW5zdGFsbA==</PHRASE>
<PHRASE Label="la_tab_ItemList" Module="In-Portal" Type="1">SXRlbSBMaXN0</PHRASE>
<PHRASE Label="la_tab_Items" Module="In-Portal" Type="1">SXRlbXM=</PHRASE>
<PHRASE Label="la_tab_label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_tab_Labels" Module="In-Portal" Type="1">TGFiZWxz</PHRASE>
<PHRASE Label="la_tab_LinkValidation" Module="In-Portal" Type="2">TGluayBWYWxpZGF0aW9u</PHRASE>
<PHRASE Label="la_tab_Mail_List" Module="In-Portal" Type="1">TWFpbCBMaXN0</PHRASE>
<PHRASE Label="la_tab_Message" Module="In-Portal" Type="1">TWVzc2FnZQ==</PHRASE>
<PHRASE Label="la_tab_MissingLabels" Module="In-Portal" Type="1">TWlzc2luZyBMYWJlbHM=</PHRASE>
<PHRASE Label="la_tab_modules" Module="In-Portal" Type="1">TW9kdWxlcw==</PHRASE>
<PHRASE Label="la_tab_ModulesSettings" Module="In-Portal" Type="1">TW9kdWxlcyAmIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_tab_Overview" Module="In-Portal" Type="1">T3ZlcnZpZXc=</PHRASE>
<PHRASE Label="la_tab_PackageContent" Module="In-Portal" Type="1">UGFja2FnZSBDb250ZW50</PHRASE>
<PHRASE Label="la_tab_Permissions" Module="In-Portal" Type="1">UGVybWlzc2lvbnM=</PHRASE>
<PHRASE Label="la_tab_phpbbimport" Module="In-Portal" Type="1">cGhwQkIgSW1wb3J0</PHRASE>
<PHRASE Label="la_tab_Properties" Module="In-Portal" Type="1">UHJvcGVydGllcw==</PHRASE>
<PHRASE Label="la_tab_QueryDB" Module="In-Portal" Type="1">UXVlcnkgRGF0YWJhc2U=</PHRASE>
<PHRASE Label="la_tab_Regional" Module="In-Portal" Type="1">UmVnaW9uYWw=</PHRASE>
<PHRASE Label="la_tab_Relations" Module="In-Portal" Type="1">UmVsYXRpb25z</PHRASE>
<PHRASE Label="la_tab_Reports" Module="In-Portal" Type="1">U3VtbWFyeSAmIExvZ3M=</PHRASE>
<PHRASE Label="la_tab_Restore" Module="In-Portal" Type="1">UmVzdG9yZQ==</PHRASE>
<PHRASE Label="la_tab_Review" Module="In-Portal" Type="1">UmV2aWV3</PHRASE>
<PHRASE Label="la_tab_Reviews" Module="In-Portal" Type="1">UmV2aWV3cw==</PHRASE>
<PHRASE Label="la_tab_Rule" Module="In-Portal" Type="2">UnVsZSBQcm9wZXJ0aWVz</PHRASE>
<PHRASE Label="la_Tab_Search" Module="In-Portal" Type="1">U2VhcmNo</PHRASE>
<PHRASE Label="la_tab_SearchLog" Module="In-Portal" Type="1">U2VhcmNoIExvZw==</PHRASE>
<PHRASE Label="la_tab_Search_Groups" Module="In-Portal" Type="1">U2VhcmNoIEdyb3Vwcw==</PHRASE>
<PHRASE Label="la_tab_Search_Users" Module="In-Portal" Type="1">U2VhcmNoIFVzZXJz</PHRASE>
<PHRASE Label="la_tab_SendMail" Module="In-Portal" Type="1">U2VuZCBlLW1haWw=</PHRASE>
<PHRASE Label="la_tab_ServerInfo" Module="In-Portal" Type="1">U2VydmVyIEluZm9ybWF0aW9u</PHRASE>
<PHRASE Label="la_tab_SessionLog" Module="In-Portal" Type="1">U2Vzc2lvbiBMb2c=</PHRASE>
<PHRASE Label="la_tab_Settings" Module="In-Portal" Type="1">R2VuZXJhbCBTZXR0aW5ncw==</PHRASE>
<PHRASE Label="la_tab_Site_Structure" Module="In-Portal" Type="1">U3RydWN0dXJlICYgRGF0YQ==</PHRASE>
<PHRASE Label="la_tab_Stats" Module="In-Portal" Type="1">U3RhdGlzdGljcw==</PHRASE>
<PHRASE Label="la_tab_Stylesheets" Module="In-Portal" Type="1">U3R5bGVzaGVldHM=</PHRASE>
<PHRASE Label="la_tab_Summary" Module="In-Portal" Type="1">U3VtbWFyeQ==</PHRASE>
<PHRASE Label="la_tab_Sys_Config" Module="In-Portal" Type="1">Q29uZmlndXJhdGlvbg==</PHRASE>
<PHRASE Label="la_tab_taglibrary" Module="In-Portal" Type="1">VGFnIGxpYnJhcnk=</PHRASE>
<PHRASE Label="la_tab_Template" Module="In-Portal" Type="1">VGVtcGxhdGU=</PHRASE>
<PHRASE Label="la_tab_Templates" Module="In-Portal" Type="1">VGVtcGxhdGVz</PHRASE>
<PHRASE Label="la_tab_Themes" Module="In-Portal" Type="1">VGhlbWVz</PHRASE>
<PHRASE Label="la_tab_Tools" Module="In-Portal" Type="1">VG9vbHM=</PHRASE>
<PHRASE Label="la_tab_upgrade_license" Module="In-Portal" Type="1">VXBkYXRlIExpY2Vuc2U=</PHRASE>
<PHRASE Label="la_tab_userban" Module="In-Portal" Type="1">QmFuIHVzZXI=</PHRASE>
<PHRASE Label="la_tab_UserBanList" Module="In-Portal" Type="1">VXNlciBCYW4gTGlzdA==</PHRASE>
<PHRASE Label="la_tab_Users" Module="In-Portal" Type="1">VXNlcnM=</PHRASE>
<PHRASE Label="la_tab_UserSelect" Module="In-Portal" Type="1">VXNlciBTZWxlY3Q=</PHRASE>
<PHRASE Label="la_tab_User_Groups" Module="In-Portal" Type="1">R3JvdXBz</PHRASE>
<PHRASE Label="la_tab_User_List" Module="In-Portal" Type="1">VXNlcnM=</PHRASE>
<PHRASE Label="la_tab_Visits" Module="In-Portal" Type="1">VmlzaXRz</PHRASE>
<PHRASE Label="la_taglib_link" Module="In-Portal" Type="1">VGFnIExpYnJhcnk=</PHRASE>
<PHRASE Label="la_tag_library" Module="In-Portal" Type="1">VGFnIExpYnJhcnk=</PHRASE>
<PHRASE Label="la_terabytes" Module="In-Portal" Type="1">dGVyYWJ5dGUocyk=</PHRASE>
<PHRASE Label="la_Text" Module="In-Portal" Type="1">dGV4dA==</PHRASE>
<PHRASE Label="la_Text_Access_Denied" Module="In-Portal" Type="1">SW52YWxpZCB1c2VyIG5hbWUgb3IgcGFzc3dvcmQ=</PHRASE>
<PHRASE Label="la_Text_Active" Module="In-Portal" Type="1">QWN0aXZl</PHRASE>
<PHRASE Label="la_Text_Adding" Module="In-Portal" Type="1">QWRkaW5n</PHRASE>
<PHRASE Label="la_Text_Address" Module="In-Portal" Type="1">QWRkcmVzcw==</PHRASE>
<PHRASE Label="la_text_address_denied" Module="In-Portal" Type="1">TG9naW4gbm90IGFsbG93ZWQgZnJvbSB0aGlzIGFkZHJlc3M=</PHRASE>
<PHRASE Label="la_Text_Admin" Module="In-Portal" Type="1">QWRtaW4=</PHRASE>
<PHRASE Label="la_Text_AdminEmail" Module="In-Portal" Type="1">QWRtaW5pc3RyYXRvciBSZWNlaXZlIE5vdGljZXMgV2hlbg==</PHRASE>
<PHRASE Label="la_text_advanced" Module="In-Portal" Type="1">QWR2YW5jZWQ=</PHRASE>
<PHRASE Label="la_Text_All" Module="In-Portal" Type="1">QWxs</PHRASE>
<PHRASE Label="la_Text_Allow" Module="In-Portal" Type="1">QWxsb3c=</PHRASE>
<PHRASE Label="la_Text_Any" Module="In-Portal" Type="1">QW55</PHRASE>
<PHRASE Label="la_Text_Archived" Module="In-Portal" Type="1">QXJjaGl2ZWQ=</PHRASE>
<PHRASE Label="la_Text_Article" Module="In-Portal" Type="1">QXJ0aWNsZQ==</PHRASE>
<PHRASE Label="la_Text_Articles" Module="In-Portal" Type="1">QXJ0aWNsZXM=</PHRASE>
<PHRASE Label="la_text_As" Module="In-Portal" Type="1">YXM=</PHRASE>
<PHRASE Label="la_Text_backing_up" Module="In-Portal" Type="1">QmFja2luZyB1cA==</PHRASE>
<PHRASE Label="la_Text_BackupComplete" Module="In-Portal" Type="1">QmFjayB1cCBoYXMgYmVlbiBjb21wbGV0ZWQuIFRoZSBiYWNrdXAgZmlsZSBpczo=</PHRASE>
<PHRASE Label="la_Text_BackupPath" Module="In-Portal" Type="1">QmFja3VwIFBhdGg=</PHRASE>
<PHRASE Label="la_Text_backup_access" Module="In-Portal" Type="2">SW4tUG9ydGFsIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHdyaXRlIHRvIHRoaXMgZGlyZWN0b3J5</PHRASE>
<PHRASE Label="la_Text_Backup_Info" Module="In-Portal" Type="1">VGhpcyB1dGlsaXR5IGFsbG93cyB5b3UgdG8gYmFja3VwIHlvdXIgY3VycmVudCBkYXRhIGZyb20gSW4tUG9ydGFsIGRhdGFiYXNlLg==</PHRASE>
<PHRASE Label="la_text_Backup_in_progress" Module="In-Portal" Type="1">QmFja3VwIGluIHByb2dyZXNz</PHRASE>
<PHRASE Label="la_Text_Ban" Module="In-Portal" Type="1">QmFu</PHRASE>
<PHRASE Label="la_Text_BanRules" Module="In-Portal" Type="2">VXNlciBCYW4gUnVsZXM=</PHRASE>
<PHRASE Label="la_Text_BanUserFields" Module="In-Portal" Type="1">QmFuIFVzZXIgSW5mb3JtYXRpb24=</PHRASE>
<PHRASE Label="la_Text_Blank_Field" Module="In-Portal" Type="1">QmxhbmsgdXNlcm5hbWUgb3IgcGFzc3dvcmQ=</PHRASE>
<PHRASE Label="la_Text_Both" Module="In-Portal" Type="1">Qm90aA==</PHRASE>
<PHRASE Label="la_Text_BuiltIn" Module="In-Portal" Type="1">QnVpbHQgSW4=</PHRASE>
<PHRASE Label="la_text_Bytes" Module="In-Portal" Type="1">Ynl0ZXM=</PHRASE>
<PHRASE Label="la_Text_Catalog" Module="In-Portal" Type="1">Q2F0YWxvZw==</PHRASE>
<PHRASE Label="la_Text_Categories" Module="In-Portal" Type="1">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_Text_Category" Module="In-Portal" Type="1">Q2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_Text_Censorship" Module="In-Portal" Type="1">Q2Vuc29yc2hpcA==</PHRASE>
<PHRASE Label="la_Text_City" Module="In-Portal" Type="1">Q2l0eQ==</PHRASE>
<PHRASE Label="la_Text_ComingSoon" Module="In-Portal" Type="1">U2VjdGlvbiBDb21pbmcgU29vbg==</PHRASE>
<PHRASE Label="la_Text_Complete" Module="In-Portal" Type="1">Q29tcGxldGU=</PHRASE>
<PHRASE Label="la_Text_Configuration" Module="In-Portal" Type="1">Q29uZmlndXJhdGlvbg==</PHRASE>
<PHRASE Label="la_text_Contains" Module="In-Portal" Type="1">Q29udGFpbnM=</PHRASE>
<PHRASE Label="la_Text_Counters" Module="In-Portal" Type="1">Q291bnRlcnM=</PHRASE>
<PHRASE Label="la_Text_Current" Module="In-Portal" Type="1">Q3VycmVudA==</PHRASE>
<PHRASE Label="la_text_custom" Module="In-Portal" Type="1">Q3VzdG9t</PHRASE>
<PHRASE Label="la_Text_CustomField" Module="In-Portal" Type="1">Q3VzdG9tIEZpZWxk</PHRASE>
<PHRASE Label="la_Text_CustomFields" Module="In-Portal" Type="1">Q3VzdG9tIEZpZWxkcw==</PHRASE>
<PHRASE Label="la_Text_DatabaseSettings" Module="In-Portal" Type="1">RGF0YWJhc2UgU2V0dGluZ3MgLSBJbnRlY2huaWMgSW4tTGluayAyLng=</PHRASE>
<PHRASE Label="la_Text_DataType_1" Module="In-Portal" Type="1">Y2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_Text_DataType_2" Module="In-Portal" Type="1">RGF0YSBUeXBlIDI=</PHRASE>
<PHRASE Label="la_Text_DataType_3" Module="In-Portal" Type="1">cG9zdA==</PHRASE>
<PHRASE Label="la_Text_DataType_4" Module="In-Portal" Type="1">bGlua3M=</PHRASE>
<PHRASE Label="la_Text_DataType_6" Module="In-Portal" Type="1">dXNlcnM=</PHRASE>
<PHRASE Label="la_Text_Date_Time_Settings" Module="In-Portal" Type="1">RGF0ZS9UaW1lIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_Text_Day" Module="In-Portal" Type="1">RGF5</PHRASE>
<PHRASE Label="la_text_db_warning" Module="In-Portal" Type="1">UnVubmluZyB0aGlzIHV0aWxpdHkgd2lsbCBhZmZlY3QgeW91ciBkYXRhYmFzZS4gIFBsZWFzZSBiZSBhZHZpc2VkIHRoYXQgeW91IGNhbiB1c2UgdGhpcyB1dGlsaXR5IGF0IHlvdXIgb3duIHJpc2suICBJbnRlY2huaWMgQ29ycG9yYXRpb24gY2FuIG5vdCBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGNvcnJ1cHQgZGF0YSBvciBkYXRhIGxvc3Mu</PHRASE>
<PHRASE Label="la_Text_Default" Module="In-Portal" Type="1">RGVmYXVsdA==</PHRASE>
<PHRASE Label="la_Text_Delete" Module="In-Portal" Type="1">RGVsZXRl</PHRASE>
<PHRASE Label="la_text_denied" Module="In-Portal" Type="1">RGVuaWVk</PHRASE>
<PHRASE Label="la_Text_Deny" Module="In-Portal" Type="1">RGVueQ==</PHRASE>
<PHRASE Label="la_Text_Disable" Module="In-Portal" Type="1">RGlzYWJsZQ==</PHRASE>
<PHRASE Label="la_Text_Disabled" Module="In-Portal" Type="1">RGlzYWJsZWQ=</PHRASE>
<PHRASE Label="la_text_disclaimer_part1" Module="In-Portal" Type="1">UnVubmluZyB0aGlzIHV0aWxpdHkgd2lsbCBhZmZlY3QgeW91ciBkYXRhYmFzZS4gUGxlYXNlIGJlIGFkdmlzZWQgdGhhdCB5b3UgY2FuIHVzZSB0aGlzIHV0aWxpdHkgYXQgeW91ciBvd24gcmlzay4gSW50ZWNobmljIENvcnBvcmF0aW9uIGNhbiBub3QgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBjb3JydXB0IGRhdGEgb3IgZGF0YSBsb3NzLg==</PHRASE>
<PHRASE Label="la_text_disclaimer_part2" Module="In-Portal" Type="1">UGxlYXNlIG1ha2Ugc3VyZSB0byBiYWNrIHVwIHlvdXIgZGF0YWJhc2UocykgYmVmb3JlIHJ1bm5pbmcgdGhpcyB1dGlsaXR5Lg==</PHRASE>
<PHRASE Label="la_Text_Edit" Module="In-Portal" Type="1">RWRpdA==</PHRASE>
<PHRASE Label="la_Text_Editing" Module="In-Portal" Type="1">RWRpdGluZw==</PHRASE>
<PHRASE Label="la_Text_Editor" Module="In-Portal" Type="1">RWRpdG9y</PHRASE>
<PHRASE Label="la_Text_Email" Module="In-Portal" Type="1">RW1haWw=</PHRASE>
<PHRASE Label="la_Text_Emoticons" Module="In-Portal" Type="1">RW1vdGlvbiBJY29ucw==</PHRASE>
<PHRASE Label="la_Text_Enable" Module="In-Portal" Type="1">RW5hYmxl</PHRASE>
<PHRASE Label="la_Text_Enabled" Module="In-Portal" Type="1">RW5hYmxlZA==</PHRASE>
<PHRASE Label="la_Text_Events" Module="In-Portal" Type="1">RXZlbnRz</PHRASE>
<PHRASE Label="la_Text_example" Module="In-Portal" Type="2">RXhhbXBsZQ==</PHRASE>
<PHRASE Label="la_Text_Exists" Module="In-Portal" Type="1">RXhpc3Rz</PHRASE>
<PHRASE Label="la_Text_Expired" Module="In-Portal" Type="1">RXhwaXJlZA==</PHRASE>
<PHRASE Label="la_Text_Export" Module="In-Portal" Type="2">RXhwb3J0</PHRASE>
<PHRASE Label="la_Text_Fields" Module="In-Portal" Type="1">RmllbGRz</PHRASE>
<PHRASE Label="la_Text_Filter" Module="In-Portal" Type="1">RmlsdGVy</PHRASE>
<PHRASE Label="la_Text_FirstName" Module="In-Portal" Type="1">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="la_text_for" Module="In-Portal" Type="1">Zm9y</PHRASE>
<PHRASE Label="la_Text_Front" Module="In-Portal" Type="1">RnJvbnQ=</PHRASE>
<PHRASE Label="la_Text_FrontEnd" Module="In-Portal" Type="1">RnJvbnQgRW5k</PHRASE>
<PHRASE Label="la_Text_FrontOnly" Module="In-Portal" Type="1">RnJvbnQtZW5kIE9ubHk=</PHRASE>
<PHRASE Label="la_Text_Full" Module="In-Portal" Type="1">RnVsbA==</PHRASE>
<PHRASE Label="la_Text_Full_Size_Image" Module="In-Portal" Type="1">RnVsbCBTaXplIEltYWdl</PHRASE>
<PHRASE Label="la_Text_General" Module="In-Portal" Type="1">R2VuZXJhbA==</PHRASE>
<PHRASE Label="la_Text_GreaterThan" Module="In-Portal" Type="1">R3JlYXRlciBUaGFu</PHRASE>
<PHRASE Label="la_Text_Group" Module="In-Portal" Type="1">R3JvdXA=</PHRASE>
<PHRASE Label="la_Text_Groups" Module="In-Portal" Type="1">R3JvdXBz</PHRASE>
<PHRASE Label="la_Text_Group_Name" Module="In-Portal" Type="1">R3JvdXAgTmFtZQ==</PHRASE>
<PHRASE Label="la_Text_Guest" Module="In-Portal" Type="1">R3Vlc3Q=</PHRASE>
<PHRASE Label="la_Text_GuestUsers" Module="In-Portal" Type="1">R3Vlc3QgVXNlcnM=</PHRASE>
<PHRASE Label="la_Text_Hot" Module="In-Portal" Type="1">SG90</PHRASE>
<PHRASE Label="la_Text_Hour" Module="In-Portal" Type="1">SG91cg==</PHRASE>
<PHRASE Label="la_Text_IAgree" Module="In-Portal" Type="1">SSBhZ3JlZSB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnM=</PHRASE>
<PHRASE Label="la_Text_Image" Module="In-Portal" Type="1">SW1hZ2U=</PHRASE>
<PHRASE Label="la_Text_Images" Module="In-Portal" Type="1">SW1hZ2Vz</PHRASE>
<PHRASE Label="la_Text_Inactive" Module="In-Portal" Type="1">SW5hY3RpdmU=</PHRASE>
<PHRASE Label="la_Text_Install" Module="In-Portal" Type="1">SW5zdGFsbA==</PHRASE>
<PHRASE Label="la_Text_Installed" Module="In-Portal" Type="1">SW5zdGFsbGVk</PHRASE>
<PHRASE Label="la_Text_Invalid" Module="In-Portal" Type="2">SW52YWxpZA==</PHRASE>
<PHRASE Label="la_Text_Invert" Module="In-Portal" Type="1">SW52ZXJ0</PHRASE>
<PHRASE Label="la_Text_IPAddress" Module="In-Portal" Type="1">SVAgQWRkcmVzcw==</PHRASE>
<PHRASE Label="la_Text_Is" Module="In-Portal" Type="1">SXM=</PHRASE>
<PHRASE Label="la_Text_IsNot" Module="In-Portal" Type="1">SXMgTm90</PHRASE>
<PHRASE Label="la_Text_Items" Module="In-Portal" Type="1">SXRlbXM=</PHRASE>
<PHRASE Label="la_text_keyword" Module="In-Portal" Type="1">S2V5d29yZA==</PHRASE>
<PHRASE Label="la_Text_Label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_Text_LangImport" Module="In-Portal" Type="1">TGFuZ3VhZ2UgSW1wb3J0</PHRASE>
<PHRASE Label="la_Text_Languages" Module="In-Portal" Type="2">TGFuZ3VhZ2U=</PHRASE>
<PHRASE Label="la_Text_LastName" Module="In-Portal" Type="1">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="la_text_leading" Module="In-Portal" Type="1">TGVhZGluZw==</PHRASE>
<PHRASE Label="la_Text_LessThan" Module="In-Portal" Type="1">TGVzcyBUaGFu</PHRASE>
<PHRASE Label="la_Text_Licence" Module="In-Portal" Type="1">TGljZW5zZQ==</PHRASE>
<PHRASE Label="la_Text_Link" Module="In-Portal" Type="1">TGluaw==</PHRASE>
<PHRASE Label="la_Text_Links" Module="In-Portal" Type="1">TGlua3M=</PHRASE>
<PHRASE Label="la_Text_Link_Validation" Module="In-Portal" Type="2">VmFsaWRhdGluZyBMaW5rcw==</PHRASE>
<PHRASE Label="la_Text_Local" Module="In-Portal" Type="1">TG9jYWw=</PHRASE>
<PHRASE Label="la_Text_Locked" Module="In-Portal" Type="1">TG9ja2Vk</PHRASE>
<PHRASE Label="la_Text_Login" Module="In-Portal" Type="1">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="la_Text_MailEvent" Module="In-Portal" Type="1">RW1haWwgRXZlbnQ=</PHRASE>
<PHRASE Label="la_Text_MetaInfo" Module="In-Portal" Type="1">RGVmYXVsdCBNRVRBIGtleXdvcmRz</PHRASE>
<PHRASE Label="la_text_minkeywordlength" Module="In-Portal" Type="1">TWluaW11bSBrZXl3b3JkIGxlbmd0aA==</PHRASE>
<PHRASE Label="la_Text_Minute" Module="In-Portal" Type="1">TWludXRl</PHRASE>
<PHRASE Label="la_text_min_password" Module="In-Portal" Type="1">TWluaW11bSBwYXNzd29yZCBsZW5ndGg=</PHRASE>
<PHRASE Label="la_text_min_username" Module="In-Portal" Type="1">TWluaW11bSB1c2VyIG5hbWUgbGVuZ3Ro</PHRASE>
<PHRASE Label="la_Text_Missing_Password" Module="In-Portal" Type="1">QmxhbmsgcGFzc3dvcmRzIGFyZSBub3QgYWxsb3dlZA==</PHRASE>
<PHRASE Label="la_Text_Missing_Username" Module="In-Portal" Type="1">QmxhbmsgdXNlciBuYW1l</PHRASE>
<PHRASE Label="la_Text_Modules" Module="In-Portal" Type="1">TW9kdWxlcw==</PHRASE>
<PHRASE Label="la_Text_Month" Module="In-Portal" Type="1">TW9udGhz</PHRASE>
<PHRASE Label="la_text_multipleshow" Module="In-Portal" Type="1">U2hvdyBtdWx0aXBsZQ==</PHRASE>
<PHRASE Label="la_Text_New" Module="In-Portal" Type="1">TmV3</PHRASE>
<PHRASE Label="la_Text_NewCensorWord" Module="In-Portal" Type="1">TmV3IENlbnNvciBXb3Jk</PHRASE>
<PHRASE Label="la_Text_NewField" Module="In-Portal" Type="1">TmV3IEZpZWxk</PHRASE>
<PHRASE Label="la_Text_NewTheme" Module="In-Portal" Type="1">TmV3IFRoZW1l</PHRASE>
<PHRASE Label="la_Text_None" Module="In-Portal" Type="1">Tm9uZQ==</PHRASE>
<PHRASE Label="la_text_nopermissions" Module="In-Portal" Type="1">Tm8gcGVybWlzc2lvbnM=</PHRASE>
<PHRASE Label="la_Text_NotContains" Module="In-Portal" Type="1">RG9lcyBOb3QgQ29udGFpbg==</PHRASE>
<PHRASE Label="la_Text_Not_Validated" Module="In-Portal" Type="2">Tm90IFZhbGlkYXRlZA==</PHRASE>
<PHRASE Label="la_Text_No_permissions" Module="In-Portal" Type="1">Tm8gcGVybWlzc2lvbnM=</PHRASE>
<PHRASE Label="la_Text_OneWay" Module="In-Portal" Type="1">T25lIFdheQ==</PHRASE>
<PHRASE Label="la_Text_Pack" Module="In-Portal" Type="1">UGFjaw==</PHRASE>
<PHRASE Label="la_Text_Pending" Module="In-Portal" Type="1">UGVuZGluZw==</PHRASE>
<PHRASE Label="la_text_Permission" Module="In-Portal" Type="1">UGVybWlzc2lvbg==</PHRASE>
<PHRASE Label="la_Text_Phone" Module="In-Portal" Type="1">UGhvbmU=</PHRASE>
<PHRASE Label="la_Text_Pop" Module="In-Portal" Type="1">UG9wdWxhcg==</PHRASE>
<PHRASE Label="la_text_popularity" Module="In-Portal" Type="1">UG9wdWxhcml0eQ==</PHRASE>
<PHRASE Label="la_Text_PostBody" Module="In-Portal" Type="1">UG9zdCBCb2R5</PHRASE>
<PHRASE Label="la_Text_Posts" Module="In-Portal" Type="1">UG9zdHM=</PHRASE>
<PHRASE Label="la_text_prerequisit_not_passed" Module="In-Portal" Type="1">UHJlcmVxdWlzaXRlIG5vdCBmdWxmaWxsZWQsIGluc3RhbGxhdGlvbiBjYW5ub3QgY29udGludWUh</PHRASE>
<PHRASE Label="la_Text_Primary" Module="In-Portal" Type="1">UHJpbWFyeQ==</PHRASE>
<PHRASE Label="la_text_quicklinks" Module="In-Portal" Type="1">UXVpY2sgbGlua3M=</PHRASE>
<PHRASE Label="la_text_ReadOnly" Module="In-Portal" Type="1">UmVhZCBPbmx5</PHRASE>
<PHRASE Label="la_text_ready_to_install" Module="In-Portal" Type="1">UmVhZHkgdG8gSW5zdGFsbA==</PHRASE>
<PHRASE Label="la_Text_Reciprocal" Module="In-Portal" Type="1">UmVjaXByb2NhbA==</PHRASE>
<PHRASE Label="la_Text_Relation" Module="In-Portal" Type="1">UmVsYXRpb24=</PHRASE>
<PHRASE Label="la_Text_Relations" Module="In-Portal" Type="1">UmVsYXRpb25z</PHRASE>
<PHRASE Label="la_Text_Replies" Module="In-Portal" Type="1">UmVwbGllcw==</PHRASE>
<PHRASE Label="la_text_restore warning" Module="In-Portal" Type="1">VGhlIHZlcnNpb25zIG9mIHRoZSBiYWNrdXAgYW5kIHlvdXIgY29kZSBkb24ndCBtYXRjaC4gWW91ciBpbnN0YWxsYXRpb24gd2lsbCBwcm9iYWJseSBiZSBub24gb3BlcmF0aW9uYWwu</PHRASE>
<PHRASE Label="la_Text_Restore_Heading" Module="In-Portal" Type="1">SGVyZSB5b3UgY2FuIHJlc3RvcmUgeW91ciBkYXRhYmFzZSBmcm9tIGEgcHJldmlvdXNseSBiYWNrZWQgdXAgc25hcHNob3QuIFJlc3RvcmluZyB5b3VyIGRhdGFiYXNlIHdpbGwgZGVsZXRlIGFsbCBvZiB5b3VyIGN1cnJlbnQgZGF0YSBhbmQgbG9nIHlvdSBvdXQgb2YgdGhlIHN5c3RlbS4=</PHRASE>
<PHRASE Label="la_text_Restore_in_progress" Module="In-Portal" Type="1">UmVzdG9yZSBpcyBpbiBwcm9ncmVzcw==</PHRASE>
<PHRASE Label="la_Text_Restore_Warning" Module="In-Portal" Type="1">IFJ1bm5pbmcgdGhpcyB1dGlsaXR5IHdpbGwgYWZmZWN0IHlvdXIgZGF0YWJhc2UuICBQbGVhc2UgYmUgYWR2aXNlZCB0aGF0IHlvdSBjYW4gdXNlIHRoaXMgdXRpbGl0eSBhdCB5b3VyIG93biByaXNrLiAgSW50ZWNobmljIGNvcnBvcmF0aW9uIGNhbiBub3QgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBjb3JydXB0IGRhdGEgb3IgZGF0YSBsb3NzLiAgUGxlYXNlIG1ha2Ugc3VyZSB0byBiYWNrIHVwIHlvdXIgZGF0YWJhc2UocykgYmVmb3JlIHJ1bm5p</PHRASE>
<PHRASE Label="la_Text_Restrictions" Module="In-Portal" Type="1">UmVzdHJpY3Rpb25z</PHRASE>
<PHRASE Label="la_Text_Results" Module="In-Portal" Type="2">UmVzdWx0cw==</PHRASE>
<PHRASE Label="la_text_review" Module="In-Portal" Type="1">UmV2aWV3</PHRASE>
<PHRASE Label="la_Text_Reviews" Module="In-Portal" Type="1">UmV2aWV3cw==</PHRASE>
<PHRASE Label="la_Text_Root" Module="In-Portal" Type="1">Um9vdA==</PHRASE>
<PHRASE Label="la_Text_RootCategory" Module="In-Portal" Type="1">TW9kdWxlIFJvb3QgQ2F0ZWdvcnk=</PHRASE>
<PHRASE Label="la_text_Rows" Module="In-Portal" Type="1">cm93KHMp</PHRASE>
<PHRASE Label="la_Text_Rule" Module="In-Portal" Type="2">UnVsZQ==</PHRASE>
<PHRASE Label="la_text_Same" Module="In-Portal" Type="1">U2FtZQ==</PHRASE>
<PHRASE Label="la_text_Same_As_Thumbnail" Module="In-Portal" Type="1">U2FtZSBhcyB0aHVtYm5haWw=</PHRASE>
<PHRASE Label="la_text_Save" Module="In-Portal" Type="1">U2F2ZQ==</PHRASE>
<PHRASE Label="la_Text_Scanning" Module="In-Portal" Type="1">U2Nhbm5pbmc=</PHRASE>
<PHRASE Label="la_Text_Search_Results" Module="In-Portal" Type="1">U2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="la_Text_Second" Module="In-Portal" Type="1">U2Vjb25kcw==</PHRASE>
<PHRASE Label="la_Text_Select" Module="In-Portal" Type="1">U2VsZWN0</PHRASE>
<PHRASE Label="la_Text_Send" Module="In-Portal" Type="1">U2VuZA==</PHRASE>
<PHRASE Label="la_Text_Sessions" Module="In-Portal" Type="1">U2Vzc2lvbnM=</PHRASE>
<PHRASE Label="la_text_sess_expired" Module="In-Portal" Type="0">U2Vzc2lvbiBFeHBpcmVk</PHRASE>
<PHRASE Label="la_Text_Settings" Module="In-Portal" Type="1">U2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_Text_ShowingGroups" Module="In-Portal" Type="1">U2hvd2luZyBHcm91cHM=</PHRASE>
<PHRASE Label="la_Text_ShowingUsers" Module="In-Portal" Type="1">U2hvd2luZyBVc2Vycw==</PHRASE>
<PHRASE Label="la_Text_Simple" Module="In-Portal" Type="1">U2ltcGxl</PHRASE>
<PHRASE Label="la_Text_Size" Module="In-Portal" Type="1">U2l6ZQ==</PHRASE>
<PHRASE Label="la_Text_Smiley" Module="In-Portal" Type="1">U21pbGV5</PHRASE>
<PHRASE Label="la_Text_smtp_server" Module="In-Portal" Type="1">U01UUCAobWFpbCkgU2VydmVy</PHRASE>
<PHRASE Label="la_Text_Sort" Module="In-Portal" Type="1">U29ydA==</PHRASE>
<PHRASE Label="la_Text_State" Module="In-Portal" Type="1">U3RhdGU=</PHRASE>
<PHRASE Label="la_Text_Step" Module="In-Portal" Type="1">U3RlcA==</PHRASE>
<PHRASE Label="la_Text_SubCats" Module="In-Portal" Type="1">U3ViQ2F0cw==</PHRASE>
<PHRASE Label="la_Text_Subitems" Module="In-Portal" Type="1">U3ViSXRlbXM=</PHRASE>
<PHRASE Label="la_Text_Table" Module="In-Portal" Type="1">VGFibGU=</PHRASE>
<PHRASE Label="la_Text_Template" Module="In-Portal" Type="1">VGVtcGxhdGU=</PHRASE>
<PHRASE Label="la_Text_Templates" Module="In-Portal" Type="1">VGVtcGxhdGVz</PHRASE>
<PHRASE Label="la_Text_Theme" Module="In-Portal" Type="1">VGhlbWU=</PHRASE>
<PHRASE Label="la_text_Thumbnail" Module="In-Portal" Type="1">VGh1bWJuYWls</PHRASE>
<PHRASE Label="la_text_Thumbnail_Image" Module="In-Portal" Type="1">VGh1bWJuYWlsIEltYWdl</PHRASE>
<PHRASE Label="la_Text_to" Module="In-Portal" Type="1">dG8=</PHRASE>
<PHRASE Label="la_Text_Topic" Module="In-Portal" Type="1">VG9waWM=</PHRASE>
<PHRASE Label="la_Text_Topics" Module="In-Portal" Type="1">VG9waWNz</PHRASE>
<PHRASE Label="la_Text_Type" Module="In-Portal" Type="1">VHlwZQ==</PHRASE>
<PHRASE Label="la_text_types" Module="In-Portal" Type="1">dHlwZXM=</PHRASE>
<PHRASE Label="la_Text_Unique" Module="In-Portal" Type="1">SXMgVW5pcXVl</PHRASE>
<PHRASE Label="la_Text_Unselect" Module="In-Portal" Type="1">VW5zZWxlY3Q=</PHRASE>
<PHRASE Label="la_Text_Update_Licence" Module="In-Portal" Type="1">VXBkYXRlIExpY2Vuc2U=</PHRASE>
<PHRASE Label="la_text_upgrade_disclaimer" Module="In-Portal" Type="1">WW91ciBkYXRhIHdpbGwgYmUgbW9kaWZpZWQgZHVyaW5nIHRoZSB1cGdyYWRlLiBXZSBzdHJvbmdseSByZWNvbW1lbmQgdGhhdCB5b3UgbWFrZSBhIGJhY2t1cCBvZiB5b3VyIGRhdGFiYXNlLiBQcm9jZWVkIHdpdGggdGhlIHVwZ3JhZGU/</PHRASE>
<PHRASE Label="la_Text_Upload" Module="In-Portal" Type="1">VXBsb2Fk</PHRASE>
<PHRASE Label="la_Text_User" Module="In-Portal" Type="1">VXNlcg==</PHRASE>
<PHRASE Label="la_Text_UserEmail" Module="In-Portal" Type="1">VXNlciBSZWNlaXZlcyBOb3RpY2VzIFdoZW4=</PHRASE>
<PHRASE Label="la_Text_Users" Module="In-Portal" Type="1">VXNlcnM=</PHRASE>
<PHRASE Label="la_Text_User_Count" Module="In-Portal" Type="1">VXNlciBDb3VudA==</PHRASE>
<PHRASE Label="la_Text_Valid" Module="In-Portal" Type="1">VmFsaWQ=</PHRASE>
<PHRASE Label="la_Text_Version" Module="In-Portal" Type="1">VmVyc2lvbg==</PHRASE>
<PHRASE Label="la_Text_View" Module="In-Portal" Type="1">Vmlldw==</PHRASE>
<PHRASE Label="la_Text_Views" Module="In-Portal" Type="1">Vmlld3M=</PHRASE>
<PHRASE Label="la_Text_Website" Module="In-Portal" Type="1">V2Vic2l0ZQ==</PHRASE>
<PHRASE Label="la_Text_Week" Module="In-Portal" Type="1">V2Vla3M=</PHRASE>
<PHRASE Label="la_Text_Within" Module="In-Portal" Type="1">V2l0aGlu</PHRASE>
<PHRASE Label="la_Text_Year" Module="In-Portal" Type="1">WWVhcnM=</PHRASE>
<PHRASE Label="la_Text_Zip" Module="In-Portal" Type="1">Wmlw</PHRASE>
<PHRASE Label="la_title_Adding_BaseStyle" Module="In-Portal" Type="1">QWRkaW5nIEJhc2UgU3R5bGU=</PHRASE>
<PHRASE Label="la_title_Adding_BlockStyle" Module="In-Portal" Type="1">QWRkaW5nIEJsb2NrIFN0eWxl</PHRASE>
<PHRASE Label="la_title_Adding_Language" Module="In-Portal" Type="1">QWRkaW5nIExhbmd1YWdl</PHRASE>
<PHRASE Label="la_title_Adding_Phrase" Module="In-Portal" Type="1">QWRkaW5nIFBocmFzZQ==</PHRASE>
<PHRASE Label="la_title_Adding_Stylesheet" Module="In-Portal" Type="1">QWRkaW5nIFN0eWxlc2hlZXQ=</PHRASE>
<PHRASE Label="la_title_Add_Module" Module="In-Portal" Type="1">QWRkIE1vZHVsZQ==</PHRASE>
<PHRASE Label="la_title_AdvancedView" Module="In-Portal" Type="1">QWR2YW5jZWQgVmlldw==</PHRASE>
<PHRASE Label="la_title_Backup" Module="In-Portal" Type="1">QmFja3Vw</PHRASE>
<PHRASE Label="la_title_BaseStyles" Module="In-Portal" Type="1">QmFzZSBTdHlsZXM=</PHRASE>
<PHRASE Label="la_title_BlockStyles" Module="In-Portal" Type="1">QmxvY2sgU3R5bGVz</PHRASE>
<PHRASE Label="la_title_Browse" Module="In-Portal" Type="1">Q2F0YWxvZw==</PHRASE>
<PHRASE Label="la_title_Categories" Module="In-Portal" Type="1">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="la_title_category_relationselect" Module="In-Portal" Type="1">U2VsZWN0IHJlbGF0aW9u</PHRASE>
<PHRASE Label="la_title_category_select" Module="In-Portal" Type="1">U2VsZWN0IGNhdGVnb3J5</PHRASE>
<PHRASE Label="la_title_Censorship" Module="In-Portal" Type="1">Q2Vuc29yc2hpcA==</PHRASE>
<PHRASE Label="la_title_Community" Module="In-Portal" Type="1">Q29tbXVuaXR5</PHRASE>
<PHRASE Label="la_title_Configuration" Module="In-Portal" Type="1">Q29uZmlndXJhdGlvbg==</PHRASE>
<PHRASE Label="la_title_EditingEmailEvent" Module="In-Portal" Type="1">RWRpdGluZyBFbWFpbCBFdmVudA==</PHRASE>
<PHRASE Label="la_title_EditingGroup" Module="In-Portal" Type="1">RWRpdGluZyBHcm91cA==</PHRASE>
<PHRASE Label="la_title_EditingStyle" Module="In-Portal" Type="1">RWRpdGluZyBTdHlsZQ==</PHRASE>
<PHRASE Label="la_title_EditingTranslation" Module="In-Portal" Type="1">RWRpdGluZyBUcmFuc2xhdGlvbg==</PHRASE>
<PHRASE Label="la_title_Editing_BaseStyle" Module="In-Portal" Type="1">RWRpdGluZyBCYXNlIFN0eWxl</PHRASE>
<PHRASE Label="la_title_Editing_BlockStyle" Module="In-Portal" Type="1">RWRpdGluZyBCbG9jayBTdHlsZQ==</PHRASE>
<PHRASE Label="la_title_Editing_Language" Module="In-Portal" Type="1">RWRpdGluZyBMYW5ndWFnZQ==</PHRASE>
<PHRASE Label="la_title_Editing_Phrase" Module="In-Portal" Type="1">RWRpdGluZyBQaHJhc2U=</PHRASE>
<PHRASE Label="la_title_Editing_Stylesheet" Module="In-Portal" Type="1">RWRpdGluZyBTdHlsZXNoZWV0</PHRASE>
<PHRASE Label="la_title_Edit_Article" Module="In-Portal" Type="1">U2l0ZSBTdHJ1Y3R1cmU=</PHRASE>
<PHRASE Label="la_title_edit_category" Module="In-Portal" Type="1">RWRpdCBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_title_Edit_Group" Module="In-Portal" Type="1">RWRpdCBHcm91cA==</PHRASE>
<PHRASE Label="la_title_Edit_Link" Module="In-Portal" Type="1">U2l0ZSBTdHJ1Y3R1cmU=</PHRASE>
<PHRASE Label="la_title_Edit_Topic" Module="In-Portal" Type="1">U2l0ZSBTdHJ1Y3R1cmU=</PHRASE>
<PHRASE Label="la_title_Edit_User" Module="In-Portal" Type="1">RWRpdCBVc2Vy</PHRASE>
<PHRASE Label="la_title_EmailEvents" Module="In-Portal" Type="1">RS1tYWlsIEV2ZW50cw==</PHRASE>
<PHRASE Label="la_title_EmailSettings" Module="In-Portal" Type="1">RS1tYWlsIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_title_ExportData" Module="In-Portal" Type="1">RXhwb3J0IERhdGE=</PHRASE>
<PHRASE Label="la_title_ExportLanguagePack" Module="In-Portal" Type="1">RXhwb3J0IExhbmd1YWdlIFBhY2s=</PHRASE>
<PHRASE Label="la_title_ExportLanguagePackResults" Module="In-Portal" Type="1">RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBSZXN1bHRz</PHRASE>
<PHRASE Label="la_title_ExportLanguagePackStep1" Module="In-Portal" Type="1">RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBTdGVwMQ==</PHRASE>
<PHRASE Label="la_title_General" Module="In-Portal" Type="1">R2VuZXJhbA==</PHRASE>
<PHRASE Label="la_title_General_Configuration" Module="In-Portal" Type="1">R2VuZXJhbCBDb25maWd1cmF0aW9u</PHRASE>
<PHRASE Label="la_title_groupselect" Module="In-Portal" Type="1">U2VsZWN0IGdyb3Vw</PHRASE>
<PHRASE Label="la_title_Help" Module="In-Portal" Type="1">SGVscA==</PHRASE>
<PHRASE Label="la_title_ImportData" Module="In-Portal" Type="1">SW1wb3J0IERhdGE=</PHRASE>
<PHRASE Label="la_title_ImportLanguagePack" Module="In-Portal" Type="1">SW1wb3J0IExhbmd1YWdlIFBhY2s=</PHRASE>
<PHRASE Label="la_title_In-Bulletin" Module="In-Portal" Type="1">SW4tYnVsbGV0aW4=</PHRASE>
<PHRASE Label="la_title_In-Link" Module="In-Portal" Type="1">SW4tbGluaw==</PHRASE>
<PHRASE Label="la_title_In-News" Module="In-Portal" Type="1">SW4tbmV3eg==</PHRASE>
<PHRASE Label="la_title_Install" Module="In-Portal" Type="1">SW5zdGFsbGF0aW9uIEhlbHA=</PHRASE>
<PHRASE Label="la_title_InstallLanguagePackStep1" Module="In-Portal" Type="1">SW5zdGFsbCBMYW5ndWFnZSBQYWNrIC0gU3RlcCAx</PHRASE>
<PHRASE Label="la_title_InstallLanguagePackStep2" Module="In-Portal" Type="1">SW5zdGFsbCBMYW5ndWFnZSBQYWNrIC0gU3RlcCAy</PHRASE>
<PHRASE Label="la_title_label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_title_Labels" Module="In-Portal" Type="1">TGFiZWxz</PHRASE>
<PHRASE Label="la_Title_LanguageImport" Module="In-Portal" Type="1">SW5zdGFsbCBMYW5ndWFnZSBQYWNr</PHRASE>
<PHRASE Label="la_title_LanguagePacks" Module="In-Portal" Type="1">TGFuZ3VhZ2UgUGFja3M=</PHRASE>
<PHRASE Label="la_title_Module_Status" Module="In-Portal" Type="1">TW9kdWxlIFN0YXR1cw==</PHRASE>
<PHRASE Label="la_title_New_BaseStyle" Module="In-Portal" Type="1">TmV3IEJhc2UgU3R5bGU=</PHRASE>
<PHRASE Label="la_title_New_BlockStyle" Module="In-Portal" Type="1">TmV3IEJsb2NrIFN0eWxl</PHRASE>
<PHRASE Label="la_title_New_Language" Module="In-Portal" Type="1">TmV3IExhbmd1YWdl</PHRASE>
<PHRASE Label="la_title_New_Phrase" Module="In-Portal" Type="1">TmV3IFBocmFzZQ==</PHRASE>
<PHRASE Label="la_title_New_Stylesheet" Module="In-Portal" Type="1">TmV3IFN0eWxlc2hlZXQ=</PHRASE>
<PHRASE Label="la_Title_PleaseWait" Module="In-Portal" Type="1">UGxlYXNlIFdhaXQ=</PHRASE>
<PHRASE Label="la_title_Regional" Module="In-Portal" Type="1">UmVnaW9uYWw=</PHRASE>
<PHRASE Label="la_title_RegionalSettings" Module="In-Portal" Type="1">UmVnaW9uYWwgU2V0dGluZ3M=</PHRASE>
<PHRASE Label="la_title_Reports" Module="In-Portal" Type="1">U3VtbWFyeSAmIExvZ3M=</PHRASE>
<PHRASE Label="la_title_Restore" Module="In-Portal" Type="1">UmVzdG9yZQ==</PHRASE>
<PHRASE Label="la_title_reviews" Module="In-Portal" Type="1">UmV2aWV3cw==</PHRASE>
<PHRASE Label="la_title_SearchLog" Module="In-Portal" Type="1">U2VhcmNoIExvZw==</PHRASE>
<PHRASE Label="la_title_searchresults" Module="In-Portal" Type="1">U2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="la_title_select_item" Module="In-Portal" Type="1">U2VsZWN0IGl0ZW0=</PHRASE>
<PHRASE Label="la_title_select_target_item" Module="In-Portal" Type="1">U2VsZWN0IGl0ZW0=</PHRASE>
<PHRASE Label="la_Title_SendInit" Module="In-Portal" Type="1">UHJlcGFyaW5nIHRvIFNlbmQgTWFpbA==</PHRASE>
<PHRASE Label="la_title_sendmail" Module="In-Portal" Type="1">U2VuZCBlbWFpbA==</PHRASE>
<PHRASE Label="la_title_sendmailcancel" Module="In-Portal" Type="1">Q2FuY2VsIHNlbmRpbmcgbWFpbA==</PHRASE>
<PHRASE Label="la_Title_SendMailComplete" Module="In-Portal" Type="1">TWFpbCBoYXMgYmVlbiBzZW50IFN1Y2Nlc3NmdWxseQ==</PHRASE>
<PHRASE Label="la_Title_SendMailInit" Module="In-Portal" Type="1">UHJlcGFyaW5nIHRvIFNlbmQgTWVzc2FnZXM=</PHRASE>
<PHRASE Label="la_Title_SendMailProgress" Module="In-Portal" Type="1">U2VuZGluZyBNZXNzYWdlLi4=</PHRASE>
<PHRASE Label="la_title_SessionLog" Module="In-Portal" Type="1">U2Vzc2lvbiBMb2c=</PHRASE>
<PHRASE Label="la_title_Settings" Module="In-Portal" Type="1">TW9kdWxlcyAmIFNldHRpbmdz</PHRASE>
<PHRASE Label="la_title_Site_Structure" Module="In-Portal" Type="1">U3RydWN0dXJlICYgRGF0YQ==</PHRASE>
<PHRASE Label="la_title_Stylesheets" Module="In-Portal" Type="1">U3R5bGVzaGVldHM=</PHRASE>
<PHRASE Label="la_title_Summary" Module="In-Portal" Type="1">U3VtbWFyeQ==</PHRASE>
<PHRASE Label="la_title_Sys_Config" Module="In-Portal" Type="1">Q29uZmlndXJhdGlvbg==</PHRASE>
<PHRASE Label="la_title_Tools" Module="In-Portal" Type="1">VG9vbHM=</PHRASE>
<PHRASE Label="la_title_userselect" Module="In-Portal" Type="1">U2VsZWN0IHVzZXI=</PHRASE>
<PHRASE Label="la_title_Visits" Module="In-Portal" Type="1">VmlzaXRz</PHRASE>
<PHRASE Label="la_to" Module="In-Portal" Type="1">dG8=</PHRASE>
<PHRASE Label="la_ToolTip_AddToGroup" Module="In-Portal" Type="1">QWRkIFVzZXIgdG8gR3JvdXA=</PHRASE>
<PHRASE Label="la_ToolTip_AddUserToGroup" Module="In-Portal" Type="1">QWRkIFVzZXIgVG8gR3JvdXA=</PHRASE>
<PHRASE Label="la_ToolTip_Apply_Rules" Module="In-Portal" Type="1">QXBwbHkgUnVsZXM=</PHRASE>
<PHRASE Label="la_ToolTip_Approve" Module="In-Portal" Type="1">QXBwcm92ZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Ban" Module="In-Portal" Type="1">QmFu</PHRASE>
<PHRASE Label="la_tooltip_cancel" Module="In-Portal" Type="1">Q2FuY2Vs</PHRASE>
<PHRASE Label="la_ToolTip_Clone" Module="In-Portal" Type="1">Q2xvbmU=</PHRASE>
<PHRASE Label="la_tooltip_close" Module="In-Portal" Type="1">Q2xvc2U=</PHRASE>
<PHRASE Label="la_ToolTip_ContinueValidation" Module="In-Portal" Type="1">Q29udGludWUgTGluayBWYWxpZGF0aW9u</PHRASE>
<PHRASE Label="la_ToolTip_Copy" Module="In-Portal" Type="1">Q29weQ==</PHRASE>
<PHRASE Label="la_ToolTip_Cut" Module="In-Portal" Type="1">Q3V0</PHRASE>
<PHRASE Label="la_ToolTip_Decline" Module="In-Portal" Type="1">RGVjbGluZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Delete" Module="In-Portal" Type="1">RGVsZXRl</PHRASE>
<PHRASE Label="la_ToolTip_DeleteAll" Module="In-Portal" Type="1">RGVsZXRlIEFsbA==</PHRASE>
<PHRASE Label="la_ToolTip_DeleteFromGroup" Module="In-Portal" Type="1">RGVsZXRlIFVzZXIgRnJvbSBHcm91cA==</PHRASE>
<PHRASE Label="la_ToolTip_Deny" Module="In-Portal" Type="1">RGVueQ==</PHRASE>
<PHRASE Label="la_ToolTip_Disable" Module="In-Portal" Type="1">RGlzYWJsZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Edit" Module="In-Portal" Type="1">RWRpdA==</PHRASE>
<PHRASE Label="la_ToolTip_Edit_Current_Category" Module="In-Portal" Type="1">RWRpdCBDdXJyZW50IENhdGVnb3J5</PHRASE>
<PHRASE Label="la_ToolTip_Email_Disable" Module="In-Portal" Type="1">RGlzYWJsZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Email_Enable" Module="In-Portal" Type="1">RW5hYmxl</PHRASE>
<PHRASE Label="la_ToolTip_Email_FrontOnly" Module="In-Portal" Type="1">RnJvbnQgT25seQ==</PHRASE>
<PHRASE Label="la_ToolTip_Email_UserSelect" Module="In-Portal" Type="1">U2VsZWN0IFVzZXI=</PHRASE>
<PHRASE Label="la_ToolTip_Enable" Module="In-Portal" Type="1">RW5hYmxl</PHRASE>
<PHRASE Label="la_ToolTip_Export" Module="In-Portal" Type="0">RXhwb3J0</PHRASE>
<PHRASE Label="la_tooltip_ExportLanguage" Module="In-Portal" Type="1">RXhwb3J0IExhbmd1YWdl</PHRASE>
<PHRASE Label="la_ToolTip_Home" Module="In-Portal" Type="1">SG9tZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Import" Module="In-Portal" Type="1">SW1wb3J0</PHRASE>
<PHRASE Label="la_tooltip_ImportLanguage" Module="In-Portal" Type="1">SW1wb3J0IExhbmd1YWdl</PHRASE>
<PHRASE Label="la_ToolTip_Import_Langpack" Module="In-Portal" Type="1">SW1wb3J0IGEgTGFnbnVhZ2UgUGFja2FnZQ==</PHRASE>
<PHRASE Label="la_tooltip_movedown" Module="In-Portal" Type="0">TW92ZSBEb3du</PHRASE>
<PHRASE Label="la_tooltip_moveup" Module="In-Portal" Type="0">TW92ZSBVcA==</PHRASE>
<PHRASE Label="la_ToolTip_Move_Down" Module="In-Portal" Type="1">TW92ZSBEb3du</PHRASE>
<PHRASE Label="la_ToolTip_Move_Up" Module="In-Portal" Type="1">TW92ZSBVcA==</PHRASE>
<PHRASE Label="la_tooltip_NewBaseStyle" Module="In-Portal" Type="1">TmV3IEJhc2UgU3R5bGU=</PHRASE>
<PHRASE Label="la_tooltip_NewBlockStyle" Module="In-Portal" Type="1">TmV3IEJsb2NrIFN0eWxl</PHRASE>
<PHRASE Label="la_ToolTip_NewGroup" Module="In-Portal" Type="1">TmV3IEdyb3Vw</PHRASE>
<PHRASE Label="la_tooltip_newlabel" Module="In-Portal" Type="1">TmV3IGxhYmVs</PHRASE>
<PHRASE Label="la_tooltip_NewLanguage" Module="In-Portal" Type="1">TmV3IExhbmd1YWdl</PHRASE>
<PHRASE Label="la_tooltip_newstylesheet" Module="In-Portal" Type="1">TmV3IFN0eWxlc2hlZXQ=</PHRASE>
<PHRASE Label="la_ToolTip_NewValidation" Module="In-Portal" Type="1">U3RhcnQgTmV3IFZhbGlkYXRpb24=</PHRASE>
<PHRASE Label="la_ToolTip_New_Category" Module="In-Portal" Type="1">TmV3IENhdGVnb3J5</PHRASE>
<PHRASE Label="la_ToolTip_New_CensorWord" Module="In-Portal" Type="1">TmV3IENlbnNvciBXb3Jk</PHRASE>
<PHRASE Label="la_tooltip_New_Coupon" Module="In-Portal" Type="0">TmV3IENvdXBvbg==</PHRASE>
<PHRASE Label="la_ToolTip_New_CustomField" Module="In-Portal" Type="1">TmV3IEN1c3RvbSBGaWVsZA==</PHRASE>
<PHRASE Label="la_tooltip_New_Discount" Module="In-Portal" Type="0">TmV3IERpc2NvdW50</PHRASE>
<PHRASE Label="la_ToolTip_New_Emoticon" Module="In-Portal" Type="1">TmV3IEVtb3Rpb24gSWNvbg==</PHRASE>
<PHRASE Label="la_ToolTip_New_Image" Module="In-Portal" Type="1">TmV3IEltYWdl</PHRASE>
<PHRASE Label="la_ToolTip_New_label" Module="In-Portal" Type="1">QWRkIG5ldyBsYWJlbA==</PHRASE>
<PHRASE Label="la_ToolTip_New_LangPack" Module="In-Portal" Type="1">TmV3IExhbmd1YWdlIFBhY2s=</PHRASE>
<PHRASE Label="la_ToolTip_New_Permission" Module="In-Portal" Type="1">TmV3IFBlcm1pc3Npb24=</PHRASE>
<PHRASE Label="la_ToolTip_New_Relation" Module="In-Portal" Type="1">TmV3IFJlbGF0aW9u</PHRASE>
<PHRASE Label="la_ToolTip_New_Review" Module="In-Portal" Type="1">TmV3IFJldmlldw==</PHRASE>
<PHRASE Label="la_ToolTip_New_Rule" Module="In-Portal" Type="1">TmV3IFJ1bGU=</PHRASE>
<PHRASE Label="la_ToolTip_New_Template" Module="In-Portal" Type="1">TmV3IFRlbXBsYXRl</PHRASE>
<PHRASE Label="la_ToolTip_New_Theme" Module="In-Portal" Type="1">TmV3IFRoZW1l</PHRASE>
<PHRASE Label="la_ToolTip_New_User" Module="In-Portal" Type="1">TmV3IFVzZXI=</PHRASE>
<PHRASE Label="la_ToolTip_Next" Module="In-Portal" Type="1">TmV4dA==</PHRASE>
<PHRASE Label="la_tooltip_nextstep" Module="In-Portal" Type="1">TmV4dCBzdGVw</PHRASE>
<PHRASE Label="la_ToolTip_Paste" Module="In-Portal" Type="1">UGFzdGU=</PHRASE>
<PHRASE Label="la_ToolTip_Preview" Module="In-Portal" Type="1">UHJldmlldw==</PHRASE>
<PHRASE Label="la_ToolTip_Previous" Module="In-Portal" Type="1">UHJldmlvdXM=</PHRASE>
<PHRASE Label="la_tooltip_previousstep" Module="In-Portal" Type="1">UHJldmlvdXMgc3RlcA==</PHRASE>
<PHRASE Label="la_ToolTip_Primary" Module="In-Portal" Type="1">U2V0IFByaW1hcnkgVGhlbWU=</PHRASE>
<PHRASE Label="la_ToolTip_PrimaryGroup" Module="In-Portal" Type="1">U2V0IFByaW1hcnkgR3JvdXA=</PHRASE>
<PHRASE Label="la_ToolTip_Print" Module="In-Portal" Type="1">UHJpbnQ=</PHRASE>
<PHRASE Label="la_ToolTip_Refresh" Module="In-Portal" Type="1">UmVmcmVzaA==</PHRASE>
<PHRASE Label="la_ToolTip_RemoveUserFromGroup" Module="In-Portal" Type="1">RGVsZXRlIFVzZXIgRnJvbSBHcm91cA==</PHRASE>
<PHRASE Label="la_ToolTip_Reset" Module="In-Portal" Type="1">UmVzZXQ=</PHRASE>
<PHRASE Label="la_ToolTip_ResetToBase" Module="In-Portal" Type="1">UmVzZXQgVG8gQmFzZQ==</PHRASE>
<PHRASE Label="la_ToolTip_ResetValidationStatus" Module="In-Portal" Type="1">UmVzZXQgVmFsaWRhdGlvbiBTdGF0dXM=</PHRASE>
<PHRASE Label="la_ToolTip_Restore" Module="In-Portal" Type="1">UmVzdG9yZQ==</PHRASE>
<PHRASE Label="la_tooltip_save" Module="In-Portal" Type="1">U2F2ZQ==</PHRASE>
<PHRASE Label="la_ToolTip_Search" Module="In-Portal" Type="1">U2VhcmNo</PHRASE>
<PHRASE Label="la_ToolTip_Select" Module="In-Portal" Type="1">U2VsZWN0</PHRASE>
<PHRASE Label="la_ToolTip_SendEmail" Module="In-Portal" Type="1">U2VuZCBFLW1haWw=</PHRASE>
<PHRASE Label="la_ToolTip_SendMail" Module="In-Portal" Type="1">U2VuZCBFLW1haWw=</PHRASE>
<PHRASE Label="la_tooltip_setPrimary" Module="In-Portal" Type="1">U2V0IFByaW1hcnk=</PHRASE>
<PHRASE Label="la_ToolTip_Stop" Module="In-Portal" Type="1">Q2FuY2Vs</PHRASE>
<PHRASE Label="la_ToolTip_Up" Module="In-Portal" Type="1">VXAgYSBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="la_ToolTip_ValidateSelected" Module="In-Portal" Type="1">VmFsaWRhdGU=</PHRASE>
<PHRASE Label="la_ToolTip_View" Module="In-Portal" Type="1">Vmlldw==</PHRASE>
<PHRASE Label="la_topic_editorpicksabove_prompt" Module="In-Portal" Type="1">RGlzcGxheSBlZGl0b3IgcGlja3MgYWJvdmUgcmVndWxhciB0b3BpY3M=</PHRASE>
<PHRASE Label="la_topic_MinVotes_prompt" Module="In-Portal" Type="1">TWluaW11bSBWb3Rlcw==</PHRASE>
<PHRASE Label="la_topic_newdays_prompt" Module="In-Portal" Type="1">TmV3IFRvcGljcyAoRGF5cyk=</PHRASE>
<PHRASE Label="la_topic_perpage_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIHRvcGljcyBwZXIgcGFnZQ==</PHRASE>
<PHRASE Label="la_topic_perpage_short_prompt" Module="In-Portal" Type="1">VG9waWNzIFBlciBQYWdlIChTaG9ydGxpc3Qp</PHRASE>
<PHRASE Label="la_Topic_Pick" Module="In-Portal" Type="1">UGljaw==</PHRASE>
<PHRASE Label="la_topic_poststopop_prompt" Module="In-Portal" Type="1">TnVtYmVyIG9mIHBvc3RzIHRvIGJlIGNvbnNpZGVyZWQgcG9wdWxhcg==</PHRASE>
<PHRASE Label="la_topic_reviewed" Module="In-Portal" Type="1">VG9waWMgcmV2aWV3ZWQ=</PHRASE>
<PHRASE Label="la_topic_sortfield2_pompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_topic_sortfield2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_topic_sortfield2_prompt!" Module="In-Portal" Type="1">YW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_topic_sortfield_pompt" Module="In-Portal" Type="1">T3JkZXIgVG9waWNzIEJ5</PHRASE>
<PHRASE Label="la_topic_sortfield_prompt" Module="In-Portal" Type="1">U29ydCB0b3BpY3MgYnk=</PHRASE>
<PHRASE Label="la_topic_sortoder2_prompt" Module="In-Portal" Type="1">QW5kIHRoZW4gYnk=</PHRASE>
<PHRASE Label="la_topic_sortoder_prompt" Module="In-Portal" Type="1">T3JkZXIgdG9waWNzIGJ5</PHRASE>
<PHRASE Label="la_Topic_Text" Module="In-Portal" Type="1">VG9waWMgVGV4dA==</PHRASE>
<PHRASE Label="la_Topic_Views" Module="In-Portal" Type="1">Vmlld3M=</PHRASE>
<PHRASE Label="la_topic_votestohot_prompt" Module="In-Portal" Type="1">TWluaW11bSByYXRpbmcgdG8gYmUgY29uc2lkZXJlZCBob3Q=</PHRASE>
<PHRASE Label="la_to_date" Module="In-Portal" Type="1">VG8gRGF0ZQ==</PHRASE>
<PHRASE Label="la_type_label" Module="In-Portal" Type="1">TGFiZWw=</PHRASE>
<PHRASE Label="la_type_password" Module="In-Portal" Type="1">UGFzc3dvcmQgZmllbGQ=</PHRASE>
<PHRASE Label="la_type_radio" Module="In-Portal" Type="1">UmFkaW8gYnV0dG9ucw==</PHRASE>
<PHRASE Label="la_type_select" Module="In-Portal" Type="1">RHJvcCBkb3duIGZpZWxk</PHRASE>
<PHRASE Label="la_type_text" Module="In-Portal" Type="1">VGV4dCBmaWVsZA==</PHRASE>
<PHRASE Label="la_type_textarea" Module="In-Portal" Type="1">VGV4dCBhcmVh</PHRASE>
<PHRASE Label="la_Unchanged" Module="In-Portal" Type="1">VW5jaGFuZ2Vk</PHRASE>
<PHRASE Label="la_updating_config" Module="In-Portal" Type="1">VXBkYXRpbmcgQ29uZmlndXJhdGlvbg==</PHRASE>
<PHRASE Label="la_updating_rules" Module="In-Portal" Type="1">VXBkYXRpbmcgUnVsZXM=</PHRASE>
<PHRASE Label="la_users_allow_new" Module="In-Portal" Type="1">QWxsb3cgbmV3IHVzZXIgcmVnaXN0cmF0aW9u</PHRASE>
<PHRASE Label="la_users_assign_all_to" Module="" Type="1">QXNzaWduIEFsbCBVc2VycyBUbyBHcm91cA==</PHRASE>
<PHRASE Label="la_users_email_validate" Module="In-Portal" Type="1">VmFsaWRhdGUgZS1tYWlsIGFkZHJlc3M=</PHRASE>
<PHRASE Label="la_users_guest_group" Module="In-Portal" Type="1">QXNzaWduIHVzZXJzIG5vdCBsb2dnZWQgaW4gdG8gZ3JvdXA=</PHRASE>
<PHRASE Label="la_users_new_group" Module="In-Portal" Type="1">QXNzaWduIHJlZ2lzdGVyZWQgdXNlcnMgdG8gZ3JvdXA=</PHRASE>
<PHRASE Label="la_users_password_auto" Module="In-Portal" Type="1">QXNzaWduIHBhc3N3b3JkIGF1dG9tYXRpY2FsbHk=</PHRASE>
<PHRASE Label="la_users_review_deny" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgdG8gZGVueSBtdWx0aXBsZSByZXZpZXdzIGZyb20gdGhlIHNhbWUgdXNlcg==</PHRASE>
<PHRASE Label="la_users_subscriber_group" Module="In-Portal" Type="2">QXNzaWduIG1haWxpbmcgbGlzdCBzdWJzY3JpYmVycyB0byBncm91cA==</PHRASE>
<PHRASE Label="la_users_votes_deny" Module="In-Portal" Type="1">TnVtYmVyIG9mIGRheXMgdG8gZGVueSBtdWx0aXBsZSB2b3RlcyBmcm9tIHRoZSBzYW1lIHVzZXI=</PHRASE>
<PHRASE Label="la_User_Instant" Module="In-Portal" Type="1">SW5zdGFudA==</PHRASE>
<PHRASE Label="la_User_Not_Allowed" Module="In-Portal" Type="1">Tm90IEFsbG93ZWQ=</PHRASE>
<PHRASE Label="la_User_Upon_Approval" Module="In-Portal" Type="1">VXBvbiBBcHByb3ZhbA==</PHRASE>
<PHRASE Label="la_use_emails_as_login" Module="In-Portal" Type="1">VXNlIEVtYWlscyBBcyBMb2dpbg==</PHRASE>
<PHRASE Label="la_US_UK" Module="In-Portal" Type="1">VVMvVUs=</PHRASE>
<PHRASE Label="la_validation_AlertMsg" Module="In-Portal" Type="1">UGxlYXNlIGNoZWNrIHRoZSByZXF1aXJlZCBmaWVsZHMgYW5kIHRyeSBhZ2FpbiE=</PHRASE>
<PHRASE Label="la_valuelist_help" Module="In-Portal" Type="1">RW50ZXIgbGlzdCBvZiB2YWx1ZXMgYW5kIHRoZWlyIGRlc2NyaXB0aW9ucywgbGlrZSAxPU9uZSwgMj1Ud28=</PHRASE>
<PHRASE Label="la_val_Active" Module="In-Portal" Type="1">QWN0aXZl</PHRASE>
<PHRASE Label="la_val_Always" Module="In-Portal" Type="1">QWx3YXlz</PHRASE>
<PHRASE Label="la_val_Auto" Module="In-Portal" Type="1">QXV0bw==</PHRASE>
<PHRASE Label="la_val_Disabled" Module="In-Portal" Type="1">RGlzYWJsZWQ=</PHRASE>
<PHRASE Label="la_val_Enabled" Module="In-Portal" Type="1">RW5hYmxlZA==</PHRASE>
<PHRASE Label="la_val_Never" Module="In-Portal" Type="1">TmV2ZXI=</PHRASE>
<PHRASE Label="la_val_Password" Module="In-Portal" Type="1">SW52YWxpZCBQYXNzd29yZA==</PHRASE>
<PHRASE Label="la_val_Pending" Module="In-Portal" Type="1">UGVuZGluZw==</PHRASE>
<PHRASE Label="la_val_RequiredField" Module="In-Portal" Type="1">UmVxdWlyZWQgRmllbGQ=</PHRASE>
<PHRASE Label="la_val_Username" Module="In-Portal" Type="1">SW52YWxpZCBVc2VybmFtZQ==</PHRASE>
<PHRASE Label="la_visit_DirectReferer" Module="In-Portal" Type="1">RGlyZWN0IGFjY2VzcyBvciBib29rbWFyaw==</PHRASE>
<PHRASE Label="la_vote_added" Module="In-Portal" Type="1">Vm90ZSBzdWJtaXR0ZWQgc3VjY2Vzc2Z1bGx5</PHRASE>
<PHRASE Label="la_Warning_Enable_HTML" Module="In-Portal" Type="1">V2FybmluZzogRW5hYmxpbmcgSFRNTCBpcyBhIHNlY3VyaXR5IHJpc2sgYW5kIGNvdWxkIGRhbWFnZSB0aGUgc3lzdGVtIGlmIHVzZWQgaW1wcm9wZXJseSE=</PHRASE>
<PHRASE Label="la_Warning_Filter" Module="In-Portal" Type="1">QSBzZWFyY2ggb3IgYSBmaWx0ZXIgaXMgaW4gZWZmZWN0LiBZb3UgbWF5IG5vdCBiZSBzZWVpbmcgYWxsIG9mIHRoZSBkYXRhLg==</PHRASE>
<PHRASE Label="la_warning_primary_delete" Module="In-Portal" Type="1">WW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhlIHByaW1hcnkgdGhlbWUuIENvbnRpbnVlPw==</PHRASE>
<PHRASE Label="la_Warning_Save_Item" Module="In-Portal" Type="1">TW9kaWZpY2F0aW9ucyB3aWxsIG5vdCB0YWtlIGVmZmVjdCB1bnRpbCB5b3UgY2xpY2sgdGhlIFNhdmUgYnV0dG9uIQ==</PHRASE>
<PHRASE Label="lu_access_denied" Module="In-Portal" Type="0">WW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9u</PHRASE>
<PHRASE Label="lu_account_info" Module="In-Portal" Type="0">QWNjb3VudCBJbmZvcm1hdGlvbg==</PHRASE>
<PHRASE Label="lu_action" Module="In-Portal" Type="0">QWN0aW9u</PHRASE>
<PHRASE Label="lu_action_box_title" Module="In-Portal" Type="0">QWN0aW9uIEJveA==</PHRASE>
<PHRASE Label="lu_action_prompt" Module="In-Portal" Type="0">SGVyZSBZb3UgQ2FuOg==</PHRASE>
<PHRASE Label="lu_add" Module="In-Portal" Type="0">QWRk</PHRASE>
<PHRASE Label="lu_addcat_confirm" Module="In-Portal" Type="0">U3VnZ2VzdCBDYXRlZ29yeSBSZXN1bHRz</PHRASE>
<PHRASE Label="lu_addcat_confirm_pending" Module="In-Portal" Type="0">Q2F0ZWdvcnkgQWRkZWQgUGVuZGluZyBBcHByb3ZhbA==</PHRASE>
<PHRASE Label="lu_addcat_confirm_pending_text" Module="In-Portal" Type="0">WW91ciBjYXRlZ29yeSBzdWdnZXN0aW9uIGhhcyBiZWVuIGFjY2VwdGVkIGFuZCBpcyBwZW5kaW5nIGFkbWluaXN0cmF0aXZlIGFwcHJvdmFsLg==</PHRASE>
<PHRASE Label="lu_addcat_confirm_text" Module="In-Portal" Type="0">VGhlIENhdGVnb3J5IHlvdSBzdWdnZXN0ZWQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHN5c3RlbS4=</PHRASE>
<PHRASE Label="lu_added" Module="In-Portal" Type="0">QWRkZWQ=</PHRASE>
<PHRASE Label="lu_added_today" Module="In-Portal" Type="0">QWRkZWQgVG9kYXk=</PHRASE>
<PHRASE Label="lu_additional_cats" Module="In-Portal" Type="0">QWRkaXRpb25hbCBjYXRlZ29yaWVz</PHRASE>
<PHRASE Label="lu_addlink_confirm" Module="In-Portal" Type="0">QWRkIExpbmsgUmVzdWx0cw==</PHRASE>
<PHRASE Label="lu_addlink_confirm_pending" Module="In-Portal" Type="0">QWRkIFBlbmRpbmcgTGluayBSZXN1bHRz</PHRASE>
<PHRASE Label="lu_addlink_confirm_pending_text" Module="In-Portal" Type="0">WW91ciBsaW5rIGhhcyBiZWVuIGFkZGVkIHBlbmRpbmcgYWRtaW5pc3RyYXRpdmUgYXBwcm92YWwu</PHRASE>
<PHRASE Label="lu_addlink_confirm_text" Module="In-Portal" Type="0">VGhlIGxpbmsgeW91IGhhdmUgc3VnZ2VzdGVkIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS4=</PHRASE>
<PHRASE Label="lu_address" Module="In-Portal" Type="0">QWRkcmVzcw==</PHRASE>
<PHRASE Label="lu_add_friend" Module="In-Portal" Type="0">QWRkIEZyaWVuZA==</PHRASE>
<PHRASE Label="lu_add_link" Module="In-Portal" Type="0">QWRkIExpbms=</PHRASE>
<PHRASE Label="lu_add_pm" Module="In-Portal" Type="0">U2VuZCBQcml2YXRlIE1lc3NhZ2U=</PHRASE>
<PHRASE Label="lu_add_review" Module="In-Portal" Type="0">QWRkIFJldmlldw==</PHRASE>
<PHRASE Label="lu_add_topic" Module="In-Portal" Type="0">QWRkIFRvcGlj</PHRASE>
<PHRASE Label="lu_add_to_favorites" Module="In-Portal" Type="0">QWRkIHRvIEZhdm9yaXRlcw==</PHRASE>
<PHRASE Label="lu_AdvancedSearch" Module="In-Portal" Type="0">QWR2YW5jZWQgU2VhcmNo</PHRASE>
<PHRASE Label="lu_advanced_search" Module="In-Portal" Type="0">QWR2YW5jZWQgU2VhcmNo</PHRASE>
<PHRASE Label="lu_advanced_search_link" Module="In-Portal" Type="0">QWR2YW5jZWQ=</PHRASE>
<PHRASE Label="lu_advsearch_any" Module="In-Portal" Type="0">QW55</PHRASE>
<PHRASE Label="lu_advsearch_contains" Module="In-Portal" Type="0">Q29udGFpbnM=</PHRASE>
<PHRASE Label="lu_advsearch_is" Module="In-Portal" Type="0">SXMgRXF1YWwgVG8=</PHRASE>
<PHRASE Label="lu_advsearch_isnot" Module="In-Portal" Type="0">SXMgTm90IEVxdWFsIFRv</PHRASE>
<PHRASE Label="lu_advsearch_notcontains" Module="In-Portal" Type="0">RG9lcyBOb3QgQ29udGFpbg==</PHRASE>
<PHRASE Label="lu_AllRightsReserved" Module="In-Portal" Type="0">QWxsIHJpZ2h0cyByZXNlcnZlZC4=</PHRASE>
<PHRASE Label="lu_already_suggested" Module="In-Portal" Type="0">IGhhcyBhbHJlYWR5IGJlZW4gc3VnZ2VzdGVkIHRvIHRoaXMgc2l0ZSBvbg==</PHRASE>
<PHRASE Label="lu_and" Module="In-Portal" Type="0">QW5k</PHRASE>
<PHRASE Label="lu_aol_im" Module="In-Portal" Type="0">QU9MIElN</PHRASE>
<PHRASE Label="lu_Apr" Module="In-Portal" Type="0">QXBy</PHRASE>
<PHRASE Label="lu_AProblemInForm" Module="In-Portal" Type="0">VGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm0sIHBsZWFzZSBjaGVjayB0aGUgZXJyb3IgbWVzc2FnZXMgYmVsb3cu</PHRASE>
<PHRASE Label="lu_AProblemWithForm" Module="In-Portal" Type="0">VGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm0sIHBsZWFzZSBjaGVjayB0aGUgZXJyb3IgbWVzc2FnZXMgYmVsb3c=</PHRASE>
<PHRASE Label="lu_articles" Module="In-Portal" Type="0">QXJ0aWNsZXM=</PHRASE>
<PHRASE Label="lu_article_details" Module="In-Portal" Type="0">QXJ0aWNsZSBEZXRhaWxz</PHRASE>
<PHRASE Label="lu_article_name" Module="In-Portal" Type="0">QXJ0aWNsZSBuYW1l</PHRASE>
<PHRASE Label="lu_article_reviews" Module="In-Portal" Type="0">QXJ0aWNsZSBSZXZpZXdz</PHRASE>
<PHRASE Label="lu_ascending" Module="In-Portal" Type="0">QXNjZW5kaW5n</PHRASE>
<PHRASE Label="lu_Aug" Module="In-Portal" Type="0">QXVn</PHRASE>
<PHRASE Label="lu_author" Module="In-Portal" Type="0">QXV0aG9y</PHRASE>
<PHRASE Label="lu_auto" Module="In-Portal" Type="1">QXV0b21hdGlj</PHRASE>
<PHRASE Label="lu_avatar_disabled" Module="In-Portal" Type="0">RGlzYWJsZWQgYXZhdGFy</PHRASE>
<PHRASE Label="lu_back" Module="In-Portal" Type="0">QmFjaw==</PHRASE>
<PHRASE Label="lu_bbcode" Module="In-Portal" Type="0">QkJDb2Rl</PHRASE>
<PHRASE Label="lu_birth_date" Module="In-Portal" Type="0">QmlydGggRGF0ZQ==</PHRASE>
<PHRASE Label="lu_blank_password" Module="In-Portal" Type="0">QmxhbmsgcGFzc3dvcmQ=</PHRASE>
<PHRASE Label="lu_box" Module="In-Portal" Type="0">Ym94</PHRASE>
<PHRASE Label="lu_btn_NewArticle" Module="In-Portal" Type="0">TmV3IEFydGljbGU=</PHRASE>
<PHRASE Label="lu_btn_NewLink" Module="In-Portal" Type="0">TmV3IExpbms=</PHRASE>
<PHRASE Label="lu_btn_newtopic" Module="In-Portal" Type="0">TmV3IHRvcGlj</PHRASE>
<PHRASE Label="lu_button_forgotpw" Module="In-Portal" Type="0">U2VuZCBQYXNzd29yZA==</PHRASE>
<PHRASE Label="lu_button_go" Module="In-Portal" Type="0">R28=</PHRASE>
<PHRASE Label="lu_button_join" Module="In-Portal" Type="0">Sm9pbg==</PHRASE>
<PHRASE Label="lu_button_mailinglist" Module="In-Portal" Type="0">U3Vic2NyaWJl</PHRASE>
<PHRASE Label="lu_button_no" Module="In-Portal" Type="0">Tm8=</PHRASE>
<PHRASE Label="lu_button_ok" Module="In-Portal" Type="0">T2s=</PHRASE>
<PHRASE Label="lu_button_rate" Module="In-Portal" Type="0">UmF0ZQ==</PHRASE>
<PHRASE Label="lu_button_search" Module="In-Portal" Type="0">U2VhcmNo</PHRASE>
<PHRASE Label="lu_button_unsubscribe" Module="In-Portal" Type="0">VW5zdWJzY3JpYmU=</PHRASE>
<PHRASE Label="lu_button_yes" Module="In-Portal" Type="0">WWVz</PHRASE>
<PHRASE Label="lu_by" Module="In-Portal" Type="0">Ynk=</PHRASE>
<PHRASE Label="lu_cancel" Module="In-Portal" Type="0">Q2FuY2Vs</PHRASE>
<PHRASE Label="lu_cat" Module="In-Portal" Type="0">Q2F0ZWdvcnk=</PHRASE>
<PHRASE Label="lu_categories" Module="In-Portal" Type="0">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="lu_categories_updated" Module="In-Portal" Type="0">Y2F0ZWdvcmllcyB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_category" Module="In-Portal" Type="0">Q2F0ZWdvcnk=</PHRASE>
<PHRASE Label="lu_category_information" Module="In-Portal" Type="0">Q2F0ZWdvcnkgSW5mb3JtYXRpb24=</PHRASE>
<PHRASE Label="lu_category_search_results" Module="In-Portal" Type="0">Q2F0ZWdvcnkgU2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_CatLead_Story" Module="In-Portal" Type="0">Q2F0ZWdvcnkgTGVhZCBTdG9yeQ==</PHRASE>
<PHRASE Label="lu_cats" Module="In-Portal" Type="0">Q2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="lu_city" Module="In-Portal" Type="0">Q2l0eQ==</PHRASE>
<PHRASE Label="lu_ClickHere" Module="In-Portal" Type="0">Y2xpY2sgaGVyZQ==</PHRASE>
<PHRASE Label="lu_close" Module="In-Portal" Type="0">Q2xvc2U=</PHRASE>
<PHRASE Label="lu_code_expired" Module="In-Portal" Type="0">UGFzc3dvcmQgcmVzZXQgaGFzIGNvZGUgZXhwaXJlZA==</PHRASE>
<PHRASE Label="lu_code_is_not_valid" Module="In-Portal" Type="0">UGFzc3dvcmQgcmVzZXQgY29kZSBpcyBub3QgdmFsaWQ=</PHRASE>
<PHRASE Label="lu_comm_CartChangedAfterLogin" Module="In-Portal" Type="0">UHJpY2VzIG9mIG9uZSBvciBtb3JlIGl0ZW1zIGluIHlvdXIgc2hvcHBpbmcgY2FydCBoYXZlIGJlZW4gY2hhbmdlZCBkdWUgdG8geW91ciBsb2dpbiwgcGxlYXNlIHJldmlldyBjaGFuZ2VzLg==</PHRASE>
<PHRASE Label="lu_comm_EmailAddress" Module="In-Portal" Type="0">RW1haWxBZGRyZXNz</PHRASE>
<PHRASE Label="lu_comm_NoPermissions" Module="In-Portal" Type="0">Tm8gUGVybWlzc2lvbnM=</PHRASE>
<PHRASE Label="lu_comm_ProductDescription" Module="In-Portal" Type="0">UHJvZHVjdCBEZXNjcmlwdGlvbg==</PHRASE>
<PHRASE Label="lu_confirm" Module="In-Portal" Type="0">Y29uZmlybQ==</PHRASE>
<PHRASE Label="lu_confirmation_title" Module="In-Portal" Type="0">Q29uZmlybWF0aW9uIFRpdGxl</PHRASE>
<PHRASE Label="lu_confirm_link_delete_subtitle" Module="In-Portal" Type="0">WW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhlIGxpbmsgYmVsb3cu</PHRASE>
<PHRASE Label="lu_confirm_subtitle" Module="In-Portal" Type="0">Q29uZmlybWF0aW9uIFN1YnRpdGxl</PHRASE>
<PHRASE Label="lu_confirm_text" Module="In-Portal" Type="0">Q29uZmlybWF0aW9uIHRleHQ=</PHRASE>
<PHRASE Label="lu_ContactUs" Module="In-Portal" Type="0">Q29udGFjdCBVcw==</PHRASE>
<PHRASE Label="lu_contact_information" Module="In-Portal" Type="0">Q29udGFjdCBJbmZvcm1hdGlvbg==</PHRASE>
<PHRASE Label="lu_continue" Module="In-Portal" Type="0">Q29udGludWU=</PHRASE>
<PHRASE Label="lu_cookies" Module="In-Portal" Type="1">Q29va2llcw==</PHRASE>
<PHRASE Label="lu_cookies_error" Module="In-Portal" Type="0">UGxlYXNlIGVuYWJsZSBjb29raWVzIHRvIGxvZ2luIQ==</PHRASE>
<PHRASE Label="lu_country" Module="In-Portal" Type="0">Q291bnRyeQ==</PHRASE>
<PHRASE Label="lu_created" Module="In-Portal" Type="0">Y3JlYXRlZA==</PHRASE>
<PHRASE Label="lu_create_password" Module="In-Portal" Type="0">Q3JlYXRlIFBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_CreditCards" Module="In-Portal" Type="0">Q3JlZGl0IENhcmRz</PHRASE>
<PHRASE Label="lu_current_value" Module="In-Portal" Type="0">Q3VycmVudCBWYWx1ZQ==</PHRASE>
<PHRASE Label="lu_date" Module="In-Portal" Type="0">RGF0ZQ==</PHRASE>
<PHRASE Label="lu_date_created" Module="In-Portal" Type="0">RGF0ZSBjcmVhdGVk</PHRASE>
<PHRASE Label="lu_Dec" Module="In-Portal" Type="0">RGVj</PHRASE>
<PHRASE Label="lu_default_bbcode" Module="In-Portal" Type="0">RW5hYmxlIEJCQ29kZQ==</PHRASE>
<PHRASE Label="lu_default_notify_owner" Module="In-Portal" Type="0">Tm90aWZ5IG1lIG9uIGNoYW5nZXMgdG8gdG9waWNzIEkgY3JlYXRl</PHRASE>
<PHRASE Label="lu_default_notify_pm" Module="In-Portal" Type="0">UmVjZWl2ZSBQcml2YXRlIE1lc3NhZ2UgTm90aWZpY2F0aW9ucw==</PHRASE>
<PHRASE Label="lu_default_signature" Module="In-Portal" Type="0">QXR0YXRjaCBNeSBTaWduYXR1cmUgdG8gUG9zdHM=</PHRASE>
<PHRASE Label="lu_default_smileys" Module="In-Portal" Type="0">U2ltbGllcyBvbiBieSBkZWZhdWx0</PHRASE>
<PHRASE Label="lu_default_user_signatures" Module="In-Portal" Type="0">U2lnbmF0dXJlcyBvbiBieSBkZWZhdWx0</PHRASE>
<PHRASE Label="lu_delete" Module="In-Portal" Type="0">RGVsZXRl</PHRASE>
<PHRASE Label="lu_delete_confirm_title" Module="In-Portal" Type="0">Q29uZmlybSBEZWxldGU=</PHRASE>
<PHRASE Label="lu_delete_friend" Module="In-Portal" Type="0">RGVsZXRlIEZyaWVuZA==</PHRASE>
<PHRASE Label="lu_delete_link_question" Module="In-Portal" Type="0">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIGxpbms/</PHRASE>
<PHRASE Label="lu_del_favorites" Module="In-Portal" Type="0">VGhlIGxpbmsgd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkIGZyb20gIEZhdm9yaXRlcy4=</PHRASE>
<PHRASE Label="lu_descending" Module="In-Portal" Type="0">RGVzY2VuZGluZw==</PHRASE>
<PHRASE Label="lu_details" Module="In-Portal" Type="0">RGV0YWlscw==</PHRASE>
<PHRASE Label="lu_details_updated" Module="In-Portal" Type="0">ZGV0YWlscyB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_directory" Module="In-Portal" Type="0">RGlyZWN0b3J5</PHRASE>
<PHRASE Label="lu_disable" Module="In-Portal" Type="0">RGlzYWJsZQ==</PHRASE>
<PHRASE Label="lu_edit" Module="In-Portal" Type="0">TW9kaWZ5</PHRASE>
<PHRASE Label="lu_editedby" Module="In-Portal" Type="0">RWRpdGVkIEJ5</PHRASE>
<PHRASE Label="lu_editors_pick" Module="In-Portal" Type="0">RWRpdG9ycyBQaWNr</PHRASE>
<PHRASE Label="lu_editors_picks" Module="In-Portal" Type="0">RWRpdG9yJ3MgUGlja3M=</PHRASE>
<PHRASE Label="lu_edittopic_confirm" Module="In-Portal" Type="0">RWRpdCBUb3BpYyBSZXN1bHRz</PHRASE>
<PHRASE Label="lu_edittopic_confirm_pending" Module="In-Portal" Type="0">VG9waWMgbW9kaWZpZWQ=</PHRASE>
<PHRASE Label="lu_edittopic_confirm_pending_text" Module="In-Portal" Type="0">VG9waWMgaGFzIGJlZW4gbW9kaWZpZWQgcGVuZGluZyBhZG1pbmlzdHJhdGl2ZSBhcHByb3ZhbA==</PHRASE>
<PHRASE Label="lu_edittopic_confirm_text" Module="In-Portal" Type="0">Q2hhbmdlcyBtYWRlIHRvIHRoZSB0b3BpYyBoYXZlIGJlZW4gc2F2ZWQu</PHRASE>
<PHRASE Label="lu_edit_post" Module="In-Portal" Type="0">TW9kaWZ5IFBvc3Q=</PHRASE>
<PHRASE Label="lu_edit_topic" Module="In-Portal" Type="0">TW9kaWZ5IFRvcGlj</PHRASE>
<PHRASE Label="LU_EMAIL" Module="In-Portal" Type="0">RS1NYWls</PHRASE>
<PHRASE Label="lu_email_already_exist" Module="In-Portal" Type="0">QSB1c2VyIHdpdGggc3VjaCBlLW1haWwgYWxyZWFkeSBleGlzdHMu</PHRASE>
<PHRASE Label="lu_email_send_error" Module="In-Portal" Type="0">TWFpbCBzZW5kaW5nIGZhaWxlZA==</PHRASE>
<PHRASE Label="lu_enabled" Module="In-Portal" Type="0">RW5hYmxlZA==</PHRASE>
<PHRASE Label="lu_end_on" Module="In-Portal" Type="0">RW5kIE9u</PHRASE>
<PHRASE Label="lu_enlarge_picture" Module="In-Portal" Type="0">Wm9vbSBpbg==</PHRASE>
<PHRASE Label="lu_enter" Module="In-Portal" Type="0">RW50ZXI=</PHRASE>
<PHRASE Label="lu_EnterEmailToRecommend" Module="In-Portal" Type="0">RW50ZXIgeW91ciBmcmllbmQgZS1tYWlsIGFkZHJlc3MgdG8gcmVjb21tZW5kIHRoaXMgc2l0ZQ==</PHRASE>
<PHRASE Label="lu_EnterEmailToSubscribe" Module="In-Portal" Type="0">RW50ZXIgeW91ciBlLW1haWwgYWRkcmVzcyB0byBzdWJzY3JpYmUgdG8gdGhlIG1haWxpbmcgbGlzdC4=</PHRASE>
<PHRASE Label="lu_EnterForgotUserEmail" Module="In-Portal" Type="0">RW50ZXIgeW91ciBVc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzIGJlbG93IHRvIGhhdmUgeW91ciBhY2NvdW50IGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIGVtYWlsIGFkZHJlc3Mgb2YgeW91ciBhY2NvdW50Lg==</PHRASE>
<PHRASE Label="lu_errors_on_form" Module="In-Portal" Type="0">TWlzc2luZyBvciBpbnZhbGlkIHZhbHVlcy4gUGxlYXNlIGNoZWNrIGFsbCB0aGUgZmllbGRzIGFuZCB0cnkgYWdhaW4u</PHRASE>
+ <PHRASE Label="lu_error_404_description" Module="In-Portal" Type="0">U29ycnksIHRoZSByZXF1ZXN0ZWQgVVJMIHdhcyBub3QgZm91bmQgb24gb3VyIHNlcnZlci4=</PHRASE>
+ <PHRASE Label="lu_error_404_title" Module="In-Portal" Type="0">RXJyb3IgNDA0IC0gTm90IEZvdW5k</PHRASE>
<PHRASE Label="lu_error_subtitle" Module="In-Portal" Type="0">RXJyb3I=</PHRASE>
<PHRASE Label="lu_error_title" Module="In-Portal" Type="0">RXJyb3I=</PHRASE>
<PHRASE Label="lu_existing_users" Module="In-Portal" Type="0">RXhpc3RpbmcgVXNlcnM=</PHRASE>
<PHRASE Label="lu_expires" Module="In-Portal" Type="0">RXhwaXJlcw==</PHRASE>
<PHRASE Label="lu_false" Module="In-Portal" Type="0">RmFsc2U=</PHRASE>
<PHRASE Label="lu_favorite" Module="In-Portal" Type="0">RmF2b3JpdGU=</PHRASE>
<PHRASE Label="lu_favorite_denied" Module="In-Portal" Type="0">VW5hYmxlIHRvIGFkZCBmYXZvcml0ZSwgYWNjZXNzIGRlbmllZA==</PHRASE>
<PHRASE Label="lu_Feb" Module="In-Portal" Type="0">RmVi</PHRASE>
<PHRASE Label="lu_ferror_forgotpw_nodata" Module="In-Portal" Type="1">WW91IG11c3QgZW50ZXIgYSBVc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzIHRvIHJldHJpdmUgeW91ciBhY2NvdW50IGluZm9ybWF0aW9u</PHRASE>
<PHRASE Label="lu_ferror_loginboth" Module="In-Portal" Type="1">Qm90aCBhIFVzZXJuYW1lIGFuZCBQYXNzd29yZCBpcyByZXF1aXJlZA==</PHRASE>
<PHRASE Label="lu_ferror_login_login_password" Module="In-Portal" Type="1">UGxlYXNlIGVudGVyIHlvdXIgcGFzc3dvcmQgYW5kIHRyeSBhZ2Fpbg==</PHRASE>
<PHRASE Label="lu_ferror_login_login_user" Module="In-Portal" Type="1">WW91IGRpZCBub3QgZW50ZXIgeW91ciBVc2VybmFtZQ==</PHRASE>
<PHRASE Label="lu_ferror_m_acctinfo_dob" Module="In-Portal" Type="0">RGF0ZSBvZiBiaXJ0aCBpcyByZXF1aXJlZA==</PHRASE>
<PHRASE Label="lu_ferror_m_acctinfo_firstname" Module="In-Portal" Type="0">TWlzc2luZyBmaXJzdCBuYW1l</PHRASE>
<PHRASE Label="lu_ferror_m_profile_userid" Module="In-Portal" Type="0">TWlzc2luZyB1c2Vy</PHRASE>
<PHRASE Label="lu_ferror_m_register_dob" Module="In-Portal" Type="0">RGF0ZSBvZiBiaXJ0aCBpcyByZXF1aXJlZA==</PHRASE>
<PHRASE Label="lu_ferror_m_register_email" Module="In-Portal" Type="0">RW1haWwgaXMgcmVxdWlyZWQ=</PHRASE>
<PHRASE Label="lu_ferror_m_register_firstname" Module="In-Portal" Type="0">Rmlyc3QgbmFtZSBpcyByZXF1aXJlZA==</PHRASE>
<PHRASE Label="lu_ferror_m_register_password" Module="In-Portal" Type="0">UGFzc3dvcmQgcmVxdWlyZWQ=</PHRASE>
<PHRASE Label="lu_ferror_no_access" Module="In-Portal" Type="0">QWNjZXNzIGRlbmllZA==</PHRASE>
<PHRASE Label="lu_ferror_pswd_mismatch" Module="In-Portal" Type="0">UGFzc3dvcmRzIGRvIG5vdCBtYXRjaA==</PHRASE>
<PHRASE Label="lu_ferror_pswd_toolong" Module="In-Portal" Type="0">VGhlIHBhc3N3b3JkIGlzIHRvbyBsb25n</PHRASE>
<PHRASE Label="lu_ferror_pswd_tooshort" Module="In-Portal" Type="0">UGFzc3dvcmQgaXMgdG9vIHNob3J0</PHRASE>
<PHRASE Label="lu_ferror_reset_denied" Module="In-Portal" Type="0">Tm90IHJlc2V0</PHRASE>
<PHRASE Label="lu_ferror_review_duplicate" Module="In-Portal" Type="0">WW91IGhhdmUgYWxyZWFkeSByZXZpZXdlZCB0aGlzIGl0ZW0u</PHRASE>
<PHRASE Label="lu_ferror_toolarge" Module="In-Portal" Type="0">RmlsZSBpcyB0b28gbGFyZ2U=</PHRASE>
<PHRASE Label="lu_ferror_unknown_email" Module="In-Portal" Type="1">VXNlciBhY2NvdW50IHdpdGggZ2l2ZW4gRS1tYWlsIG5vdCBmb3VuZA==</PHRASE>
<PHRASE Label="lu_ferror_unknown_username" Module="In-Portal" Type="1">VXNlciBhY2NvdW50IHdpdGggZ2l2ZW4gVXNlcm5hbWUgbm90IGZvdW5k</PHRASE>
<PHRASE Label="lu_ferror_username_tooshort" Module="In-Portal" Type="0">VXNlciBuYW1lIGlzIHRvbyBzaG9ydA==</PHRASE>
<PHRASE Label="lu_ferror_wrongtype" Module="In-Portal" Type="0">V3JvbmcgZmlsZSB0eXBl</PHRASE>
<PHRASE Label="lu_fieldcustom__" Module="In-Portal" Type="2"></PHRASE>
- <PHRASE Label="lu_fieldcustom__a" Module="In-Portal" Type="2">YQ==</PHRASE>
+ <PHRASE Label="lu_fieldcustom__a" Module="" Type="2">YQ==</PHRASE>
<PHRASE Label="lu_fieldcustom__age" Module="In-Portal" Type="2">QWdl</PHRASE>
<PHRASE Label="lu_fieldcustom__cc1" Module="In-Portal" Type="2">Y2Mx</PHRASE>
<PHRASE Label="lu_fieldcustom__cc2" Module="In-Portal" Type="2">Y2My</PHRASE>
<PHRASE Label="lu_fieldcustom__cc3" Module="In-Portal" Type="2">Y2Mz</PHRASE>
<PHRASE Label="lu_fieldcustom__cc4" Module="In-Portal" Type="2">Y2M0</PHRASE>
<PHRASE Label="lu_fieldcustom__cc5" Module="In-Portal" Type="2">Y2M1</PHRASE>
<PHRASE Label="lu_fieldcustom__cc6" Module="In-Portal" Type="2">Y2M2</PHRASE>
<PHRASE Label="lu_fieldcustom__lc1" Module="In-Portal" Type="2">bGMx</PHRASE>
<PHRASE Label="lu_fieldcustom__lc2" Module="In-Portal" Type="2">bGMy</PHRASE>
<PHRASE Label="lu_fieldcustom__lc3" Module="In-Portal" Type="2">bGMz</PHRASE>
<PHRASE Label="lu_fieldcustom__lc4" Module="In-Portal" Type="2">bGM0</PHRASE>
<PHRASE Label="lu_fieldcustom__lc5" Module="In-Portal" Type="2">bGM1</PHRASE>
<PHRASE Label="lu_fieldcustom__lc6" Module="In-Portal" Type="2">bGM2</PHRASE>
<PHRASE Label="lu_fieldcustom__samplefield" Module="" Type="2">U2FtcGxlRmllbGQ=</PHRASE>
<PHRASE Label="lu_fieldcustom__Sex" Module="In-Portal" Type="2">U2V4</PHRASE>
<PHRASE Label="lu_fieldcustom__test" Module="In-Portal" Type="2">VGVzdA==</PHRASE>
<PHRASE Label="lu_fieldcustom__uc1" Module="In-Portal" Type="2">dWMx</PHRASE>
<PHRASE Label="lu_fieldcustom__uc2" Module="In-Portal" Type="2">dWMy</PHRASE>
<PHRASE Label="lu_fieldcustom__uc3" Module="In-Portal" Type="2">dWMz</PHRASE>
<PHRASE Label="lu_fieldcustom__uc4" Module="In-Portal" Type="2">dWM0</PHRASE>
<PHRASE Label="lu_fieldcustom__uc5" Module="In-Portal" Type="2">dWM1</PHRASE>
<PHRASE Label="lu_fieldcustom__uc6" Module="In-Portal" Type="2">dWM2</PHRASE>
<PHRASE Label="lu_fieldcustom__user_aim" Module="In-Portal" Type="2">dXNlcl9haW0=</PHRASE>
<PHRASE Label="lu_fieldcustom__user_icq" Module="In-Portal" Type="2">dXNlcl9pY3E=</PHRASE>
<PHRASE Label="lu_fieldcustom__user_interests" Module="In-Portal" Type="2">dXNlcl9pbnRlcmVzdHM=</PHRASE>
<PHRASE Label="lu_fieldcustom__user_msn" Module="In-Portal" Type="2">dXNlcl9tc24=</PHRASE>
<PHRASE Label="lu_fieldcustom__user_occupation" Module="In-Portal" Type="2">dXNlcl9vY2N1cGF0aW9u</PHRASE>
<PHRASE Label="lu_fieldcustom__user_website" Module="In-Portal" Type="2">dXNlcl93ZWJzaXRl</PHRASE>
<PHRASE Label="lu_fieldcustom__user_yahoo" Module="In-Portal" Type="2">dXNlcl95YWhvbw==</PHRASE>
<PHRASE Label="lu_field_archived" Module="In-Portal" Type="0">QXJjaGl2ZSBEYXRl</PHRASE>
<PHRASE Label="lu_field_author" Module="In-Portal" Type="0">QXJ0aWNsZSBBdXRob3I=</PHRASE>
<PHRASE Label="lu_field_body" Module="In-Portal" Type="0">QXJ0aWNsZSBCb2R5</PHRASE>
<PHRASE Label="lu_field_cacheddescendantcatsqty" Module="In-Portal" Type="0">TnVtYmVyIG9mIERlc2NlbmRhbnRz</PHRASE>
<PHRASE Label="lu_field_cachednavbar" Module="In-Portal" Type="0">Q2F0ZWdvcnkgUGF0aA==</PHRASE>
<PHRASE Label="lu_field_cachedrating" Module="In-Portal" Type="2">UmF0aW5n</PHRASE>
<PHRASE Label="lu_field_cachedreviewsqty" Module="In-Portal" Type="2">TnVtYmVyIG9mIFJldmlld3M=</PHRASE>
<PHRASE Label="lu_field_cachedvotesqty" Module="In-Portal" Type="2">TnVtYmVyIG9mIFJhdGluZyBWb3Rlcw==</PHRASE>
<PHRASE Label="lu_field_categoryid" Module="In-Portal" Type="0">Q2F0ZWdvcnkgSWQ=</PHRASE>
<PHRASE Label="lu_field_city" Module="In-Portal" Type="0">Q2l0eQ==</PHRASE>
<PHRASE Label="lu_field_country" Module="In-Portal" Type="0">Q291bnRyeQ==</PHRASE>
<PHRASE Label="lu_field_createdbyid" Module="In-Portal" Type="2">Q3JlYXRlZCBCeSBVc2VyIElE</PHRASE>
<PHRASE Label="lu_field_createdon" Module="In-Portal" Type="2">RGF0ZSBDcmVhdGVk</PHRASE>
<PHRASE Label="lu_field_description" Module="In-Portal" Type="2">RGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="lu_field_dob" Module="In-Portal" Type="0">RGF0ZSBvZiBCaXJ0aA==</PHRASE>
<PHRASE Label="lu_field_editorspick" Module="In-Portal" Type="0">RWRpdG9yJ3MgcGljaw==</PHRASE>
<PHRASE Label="lu_field_email" Module="In-Portal" Type="0">RS1tYWls</PHRASE>
<PHRASE Label="lu_field_endon" Module="In-Portal" Type="0">RW5kcyBPbg==</PHRASE>
<PHRASE Label="lu_field_excerpt" Module="In-Portal" Type="0">QXJ0aWNsZSBFeGNlcnB0</PHRASE>
<PHRASE Label="lu_field_firstname" Module="In-Portal" Type="0">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="lu_field_hits" Module="In-Portal" Type="2">SGl0cw==</PHRASE>
<PHRASE Label="lu_field_hotitem" Module="In-Portal" Type="2">SXRlbSBJcyBIb3Q=</PHRASE>
<PHRASE Label="lu_field_lastname" Module="In-Portal" Type="0">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="lu_field_lastpostid" Module="In-Portal" Type="2">TGFzdCBQb3N0IElE</PHRASE>
<PHRASE Label="lu_field_leadcatstory" Module="In-Portal" Type="0">Q2F0ZWdvcnkgTGVhZCBTdG9yeT8=</PHRASE>
<PHRASE Label="lu_field_leadstory" Module="In-Portal" Type="0">TGVhZCBTdG9yeT8=</PHRASE>
<PHRASE Label="lu_field_linkid" Module="In-Portal" Type="2">TGluayBJRA==</PHRASE>
<PHRASE Label="lu_field_login" Module="In-Portal" Type="0">TG9naW4gKFVzZXIgbmFtZSk=</PHRASE>
<PHRASE Label="lu_field_metadescription" Module="In-Portal" Type="0">TWV0YSBEZXNjcmlwdGlvbg==</PHRASE>
<PHRASE Label="lu_field_metakeywords" Module="In-Portal" Type="0">TWV0YSBLZXl3b3Jkcw==</PHRASE>
<PHRASE Label="lu_field_modified" Module="In-Portal" Type="2">TGFzdCBNb2RpZmllZCBEYXRl</PHRASE>
<PHRASE Label="lu_field_modifiedbyid" Module="In-Portal" Type="2">TW9kaWZpZWQgQnkgVXNlciBJRA==</PHRASE>
<PHRASE Label="lu_field_name" Module="In-Portal" Type="2">TmFtZQ==</PHRASE>
<PHRASE Label="lu_field_newitem" Module="In-Portal" Type="2">SXRlbSBJcyBOZXc=</PHRASE>
<PHRASE Label="lu_field_newsid" Module="In-Portal" Type="0">QXJ0aWNsZSBJRA==</PHRASE>
<PHRASE Label="lu_field_notifyowneronchanges" Module="In-Portal" Type="2">Tm90aWZ5IE93bmVyIG9mIENoYW5nZXM=</PHRASE>
<PHRASE Label="lu_field_orgid" Module="In-Portal" Type="2">T3JpZ2luYWwgSXRlbSBJRA==</PHRASE>
<PHRASE Label="lu_field_ownerid" Module="In-Portal" Type="2">T3duZXIgVXNlciBJRA==</PHRASE>
<PHRASE Label="lu_field_parentid" Module="In-Portal" Type="0">UGFyZW50IElk</PHRASE>
<PHRASE Label="lu_field_parentpath" Module="In-Portal" Type="0">UGFyZW50IENhdGVnb3J5IFBhdGg=</PHRASE>
<PHRASE Label="lu_field_password" Module="In-Portal" Type="0">UGFzc3dvcmQ=</PHRASE>
<PHRASE Label="lu_field_phone" Module="In-Portal" Type="0">VGVsZXBob25l</PHRASE>
<PHRASE Label="lu_field_popitem" Module="In-Portal" Type="2">SXRlbSBJcyBQb3B1bGFy</PHRASE>
<PHRASE Label="lu_field_portaluserid" Module="In-Portal" Type="0">VXNlciBJRA==</PHRASE>
<PHRASE Label="lu_field_postedby" Module="In-Portal" Type="2">UG9zdGVkIEJ5</PHRASE>
<PHRASE Label="lu_field_posts" Module="In-Portal" Type="0">VG9waWMgUG9zdHM=</PHRASE>
<PHRASE Label="lu_field_priority" Module="In-Portal" Type="2">UHJpb3JpdHk=</PHRASE>
<PHRASE Label="lu_field_qtysold" Module="In-Portal" Type="1">UXR5IFNvbGQ=</PHRASE>
<PHRASE Label="lu_field_resourceid" Module="In-Portal" Type="2">UmVzb3VyY2UgSUQ=</PHRASE>
<PHRASE Label="lu_field_startdate" Module="In-Portal" Type="0">U3RhcnQgRGF0ZQ==</PHRASE>
<PHRASE Label="lu_field_state" Module="In-Portal" Type="0">U3RhdGU=</PHRASE>
<PHRASE Label="lu_field_status" Module="In-Portal" Type="2">U3RhdHVz</PHRASE>
<PHRASE Label="lu_field_street" Module="In-Portal" Type="0">U3RyZWV0IEFkZHJlc3M=</PHRASE>
<PHRASE Label="lu_field_textformat" Module="In-Portal" Type="0">QXJ0aWNsZSBUZXh0</PHRASE>
<PHRASE Label="lu_field_title" Module="In-Portal" Type="0">QXJ0aWNsZSBUaXRsZQ==</PHRASE>
<PHRASE Label="lu_field_topicid" Module="In-Portal" Type="2">VG9waWMgSUQ=</PHRASE>
<PHRASE Label="lu_field_topictext" Module="In-Portal" Type="2">VG9waWMgVGV4dA==</PHRASE>
<PHRASE Label="lu_field_topictype" Module="In-Portal" Type="0">VG9waWMgVHlwZQ==</PHRASE>
<PHRASE Label="lu_field_topseller" Module="In-Portal" Type="1">SXRlbSBJcyBhIFRvcCBTZWxsZXI=</PHRASE>
<PHRASE Label="lu_field_tz" Module="In-Portal" Type="0">VGltZSBab25l</PHRASE>
<PHRASE Label="lu_field_url" Module="In-Portal" Type="2">VVJM</PHRASE>
<PHRASE Label="lu_field_views" Module="In-Portal" Type="0">Vmlld3M=</PHRASE>
<PHRASE Label="lu_field_zip" Module="In-Portal" Type="0">WmlwIChQb3N0YWwpIENvZGU=</PHRASE>
<PHRASE Label="lu_first_name" Module="In-Portal" Type="0">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="lu_fld_module" Module="In-Portal" Type="0">TW9kdWxl</PHRASE>
<PHRASE Label="lu_fld_phrase" Module="In-Portal" Type="0">UGhyYXNl</PHRASE>
<PHRASE Label="lu_fld_primary_translation" Module="In-Portal" Type="0">UHJpbWFyeSBUcmFuc2xhdGlvbg==</PHRASE>
<PHRASE Label="lu_fld_translation" Module="In-Portal" Type="0">VHJhbnNsYXRpb24=</PHRASE>
<PHRASE Label="lu_ForgotPassword" Module="In-Portal" Type="0">Rm9yZ290IHBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_forgotpw_confirm" Module="In-Portal" Type="0">UGFzc3dvcmQgUmVxdWVzdCBDb25maXJtYXRpb24=</PHRASE>
<PHRASE Label="lu_forgotpw_confirm_reset" Module="In-Portal" Type="0">Q29uZmlybSBwYXNzd29yZCByZXNldA==</PHRASE>
<PHRASE Label="lu_forgotpw_confirm_text" Module="In-Portal" Type="0">WW91IGhhdmUgY2hvc2VkIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQuIEEgbmV3IHBhc3N3b3JkIGhhcyBiZWVuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBzeXN0ZW0uIEl0IGhhcyBiZWVuIGVtYWlsZWQgdG8geW91ciBhZGRyZXNzIG9uIGZpbGUu</PHRASE>
<PHRASE Label="lu_forgotpw_confirm_text_reset" Module="In-Portal" Type="0">UGxlYXNlIGNvbmZpcm0gdGhhdCB5b3Ugd2FudCB0byByZXNldCB5b3VyIHBhc3N3b3JkLg==</PHRASE>
<PHRASE Label="lu_forgot_password" Module="In-Portal" Type="0">Rm9yZ290IFBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_forgot_password_link" Module="In-Portal" Type="0">Rm9yZ290IFBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_forgot_pw_description" Module="In-Portal" Type="1">RW50ZXIgeW91ciBVc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzIGJlbG93IHRvIGhhdmUgeW91ciBhY2NvdW50IGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIGVtYWlsIGFkZHJlc3Mgb2YgeW91ciBhY2NvdW50Lg==</PHRASE>
<PHRASE Label="lu_forums" Module="In-Portal" Type="0">Rm9ydW1z</PHRASE>
<PHRASE Label="lu_forum_hdrtext" Module="In-Portal" Type="0">V2VsY29tZSB0byBJbi1wb3J0YWwgZm9ydW1zIQ==</PHRASE>
<PHRASE Label="lu_forum_hdrwelcometext" Module="In-Portal" Type="0">V2VsY29tZSB0byBJbi1idWxsZXRpbiBGb3J1bXMh</PHRASE>
<PHRASE Label="lu_forum_locked_for_posting" Module="In-Portal" Type="0">Rm9ydW0gaXMgbG9ja2VkIGZvciBwb3N0aW5n</PHRASE>
<PHRASE Label="lu_found" Module="In-Portal" Type="0">Rm91bmQ6</PHRASE>
<PHRASE Label="lu_from" Module="In-Portal" Type="0">RnJvbQ==</PHRASE>
<PHRASE Label="lu_full_story" Module="In-Portal" Type="0">RnVsbCBTdG9yeQ==</PHRASE>
<PHRASE Label="lu_getting_rated" Module="In-Portal" Type="0">R2V0dGluZyBSYXRlZA==</PHRASE>
<PHRASE Label="lu_getting_rated_text" Module="In-Portal" Type="0">WW91IG1heSBwbGFjZSB0aGUgZm9sbG93aW5nIEhUTUwgY29kZSBvbiB5b3VyIHdlYiBzaXRlIHRvIGFsbG93IHlvdXIgc2l0ZSB2aXNpdG9ycyB0byB2b3RlIGZvciB0aGlzIHJlc291cmNl</PHRASE>
<PHRASE Label="lu_guest" Module="In-Portal" Type="0">R3Vlc3Q=</PHRASE>
<PHRASE Label="lu_help" Module="In-Portal" Type="0">SGVscA==</PHRASE>
<PHRASE Label="lu_Here" Module="In-Portal" Type="0">SGVyZQ==</PHRASE>
<PHRASE Label="lu_hits" Module="In-Portal" Type="0">SGl0cw==</PHRASE>
<PHRASE Label="lu_home" Module="In-Portal" Type="0">SG9tZQ==</PHRASE>
<PHRASE Label="lu_hot" Module="In-Portal" Type="0">SG90</PHRASE>
<PHRASE Label="lu_hot_links" Module="In-Portal" Type="0">SG90IExpbmtz</PHRASE>
<PHRASE Label="lu_in" Module="In-Portal" Type="0">aW4=</PHRASE>
<PHRASE Label="lu_inbox" Module="In-Portal" Type="0">SW5ib3g=</PHRASE>
<PHRASE Label="lu_incorrect_login" Module="In-Portal" Type="0">VXNlcm5hbWUvUGFzc3dvcmQgSW5jb3JyZWN0</PHRASE>
<PHRASE Label="lu_IndicatesRequired" Module="In-Portal" Type="0">SW5kaWNhdGVzIFJlcXVpcmVkIGZpZWxkcw==</PHRASE>
<PHRASE Label="lu_InvalidEmail" Module="In-Portal" Type="0">SW52YWxpZCBlLW1haWwgYWRkcmVzcw==</PHRASE>
<PHRASE Label="lu_invalid_emailaddress" Module="In-Portal" Type="0">RS1tYWlsIGFkZHJlc3MgbWlzc2luZyBvciBpbnZhbGlk</PHRASE>
<PHRASE Label="lu_invalid_password" Module="In-Portal" Type="0">SW52YWxpZCBQYXNzd29yZA==</PHRASE>
<PHRASE Label="lu_in_this_message" Module="In-Portal" Type="0">SW4gdGhpcyBtZXNzYWdl</PHRASE>
<PHRASE Label="lu_items_since_last" Module="In-Portal" Type="0">SXRlbXMgc2luY2UgbGFzdCBsb2dpbg==</PHRASE>
<PHRASE Label="lu_Jan" Module="In-Portal" Type="0">SmFu</PHRASE>
<PHRASE Label="lu_joined" Module="In-Portal" Type="0">Sm9pbmVk</PHRASE>
<PHRASE Label="lu_Jul" Module="In-Portal" Type="0">SnVs</PHRASE>
<PHRASE Label="lu_Jun" Module="In-Portal" Type="0">SnVu</PHRASE>
<PHRASE Label="lu_keywords_tooshort" Module="In-Portal" Type="0">S2V5d29yZCBpcyB0b28gc2hvcnQ=</PHRASE>
<PHRASE Label="lu_lastpost" Module="In-Portal" Type="0">TGFzdCBQb3N0</PHRASE>
<PHRASE Label="lu_lastposter" Module="In-Portal" Type="0">TGFzdCBQb3N0IEJ5</PHRASE>
<PHRASE Label="lu_lastupdate" Module="In-Portal" Type="0">TGFzdCBVcGRhdGU=</PHRASE>
<PHRASE Label="lu_last_name" Module="In-Portal" Type="0">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="lu_legend" Module="In-Portal" Type="0">TGVnZW5k</PHRASE>
<PHRASE Label="lu_links" Module="In-Portal" Type="0">TGlua3M=</PHRASE>
<PHRASE Label="lu_links_updated" Module="In-Portal" Type="0">bGlua3MgdXBkYXRlZA==</PHRASE>
<PHRASE Label="lu_link_addreview_confirm_pending_text" Module="In-Portal" Type="0">WW91ciByZXZpZXcgaGFzIGJlZW4gYWRkZWQgcGVuZGluZyBhZG1pbmlzdHJhdGl2ZSBhcHByb3ZhbA==</PHRASE>
<PHRASE Label="lu_link_addreview_confirm_text" Module="In-Portal" Type="0">WW91ciByZXZpZXcgaGFzIGJlZW4gYWRkZWQ=</PHRASE>
<PHRASE Label="lu_link_details" Module="In-Portal" Type="0">TGluayBEZXRhaWxz</PHRASE>
<PHRASE Label="lu_link_information" Module="In-Portal" Type="0">TGluayBJbmZvcm1hdGlvbg==</PHRASE>
<PHRASE Label="lu_link_name" Module="In-Portal" Type="0">TGluayBOYW1l</PHRASE>
<PHRASE Label="lu_link_rate_confirm" Module="In-Portal" Type="0">TGluayBSYXRpbmcgUmVzdWx0cw==</PHRASE>
<PHRASE Label="lu_link_rate_confirm_duplicate_text" Module="In-Portal" Type="0">WW91IGhhdmUgYWxyZWFkeSByYXRlZCB0aGlzIGxpbmsu</PHRASE>
<PHRASE Label="lu_link_rate_confirm_text" Module="In-Portal" Type="0">VGhhbmsgZm9yIHJhdGluZyB0aGlzIGxpbmsuICBZb3VyIGlucHV0IGhhcyBiZWVuIHJlY29yZGVkLg==</PHRASE>
<PHRASE Label="lu_link_reviews" Module="In-Portal" Type="0">TGluayBSZXZpZXdz</PHRASE>
<PHRASE Label="lu_link_review_confirm" Module="In-Portal" Type="0">TGluayBSZXZpZXcgUmVzdWx0cw==</PHRASE>
<PHRASE Label="lu_link_review_confirm_pending" Module="In-Portal" Type="0">TGluayBSZXZpZXcgUGVuZGluZw==</PHRASE>
<PHRASE Label="lu_link_search_results" Module="In-Portal" Type="0">TGluayBTZWFyY2ggUmVzdWx0cw==</PHRASE>
<PHRASE Label="lu_location" Module="In-Portal" Type="0">TG9jYXRpb24=</PHRASE>
<PHRASE Label="lu_locked_topic" Module="In-Portal" Type="0">TG9ja2VkIHRvcGlj</PHRASE>
<PHRASE Label="lu_lock_unlock" Module="In-Portal" Type="0">TG9jay9VbmxvY2s=</PHRASE>
<PHRASE Label="lu_login" Module="In-Portal" Type="0">TG9naW4=</PHRASE>
<PHRASE Label="lu_login_information" Module="In-Portal" Type="0">TG9naW4gSW5mb3JtYXRpb24=</PHRASE>
<PHRASE Label="lu_login_name" Module="In-Portal" Type="0">TG9naW4gTmFtZQ==</PHRASE>
<PHRASE Label="lu_login_title" Module="In-Portal" Type="0">TG9naW4=</PHRASE>
<PHRASE Label="lu_logout" Module="In-Portal" Type="0">TG9nIE91dA==</PHRASE>
<PHRASE Label="lu_LogoutText" Module="In-Portal" Type="0">TG9nb3V0IG9mIHlvdXIgYWNjb3VudA==</PHRASE>
<PHRASE Label="lu_logout_description" Module="In-Portal" Type="0">TG9nIG91dCBvZiB0aGUgc3lzdGVt</PHRASE>
<PHRASE Label="lu_mailinglist" Module="In-Portal" Type="0">TWFpbGluZyBMaXN0</PHRASE>
<PHRASE Label="lu_Mar" Module="In-Portal" Type="0">TWFy</PHRASE>
<PHRASE Label="lu_May" Module="In-Portal" Type="0">TWF5</PHRASE>
<PHRASE Label="lu_message" Module="In-Portal" Type="0">TWVzc2FnZQ==</PHRASE>
<PHRASE Label="lu_message_body" Module="In-Portal" Type="0">TWVzc2FnZSBCb2R5</PHRASE>
<PHRASE Label="lu_min_pw_reset_interval" Module="In-Portal" Type="0">UGFzc3dvcmQgcmVzZXQgaW50ZXJ2YWw=</PHRASE>
<PHRASE Label="lu_missing_error" Module="In-Portal" Type="0">TWlzc2luZyBUZW1wbGF0ZQ==</PHRASE>
<PHRASE Label="lu_modified" Module="In-Portal" Type="0">TW9kaWZpZWQ=</PHRASE>
<PHRASE Label="lu_modifylink_confirm" Module="In-Portal" Type="0">TGluayBNb2RpZmljYXRpb24gQ29uZmlybWF0aW9u</PHRASE>
<PHRASE Label="lu_modifylink_confirm_text" Module="In-Portal" Type="0">WW91ciBsaW5rIGhhcyBiZWVuIG1vZGlmaWVkLg==</PHRASE>
<PHRASE Label="lu_modifylink_pending_confirm" Module="In-Portal" Type="0">TGluayBtb2RpZmljYXRpb24gY29tcGxldGU=</PHRASE>
<PHRASE Label="lu_modifylink_pending_confirm_text" Module="In-Portal" Type="0">WW91ciBsaW5rIG1vZGlmaWNhdGlvbiBoYXMgYmVlbiBzdWJtaXR0ZWQgcGVuZGluZyBhZG1pbmlzdHJhdGl2ZSBhcHByb3ZhbA==</PHRASE>
<PHRASE Label="lu_modify_link" Module="In-Portal" Type="0">TW9kaWZ5IExpbms=</PHRASE>
<PHRASE Label="lu_more" Module="In-Portal" Type="0">TW9yZQ==</PHRASE>
<PHRASE Label="lu_MoreDetails" Module="In-Portal" Type="0">TW9yZSBkZXRhaWxz</PHRASE>
<PHRASE Label="lu_msg_welcome" Module="In-Portal" Type="0">V2VsY29tZQ==</PHRASE>
<PHRASE Label="lu_myaccount" Module="In-Portal" Type="0">TXkgQWNjb3VudA==</PHRASE>
<PHRASE Label="lu_my_articles" Module="In-Portal" Type="0">TXkgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="lu_my_articles_description" Module="In-Portal" Type="0">TmV3cyBBcnRpY2xlcyB5b3UgaGF2ZSB3cml0dGVu</PHRASE>
<PHRASE Label="lu_my_favorites" Module="In-Portal" Type="0">TXkgRmF2b3JpdGVz</PHRASE>
<PHRASE Label="lu_my_favorites_description" Module="In-Portal" Type="0">SXRlbXMgeW91IGhhdmUgbWFya2VkIGFzIGZhdm9yaXRl</PHRASE>
<PHRASE Label="lu_my_friends" Module="In-Portal" Type="0">TXkgRnJpZW5kcw==</PHRASE>
<PHRASE Label="lu_my_friends_description" Module="In-Portal" Type="0">VmlldyB5b3VyIGxpc3Qgb2YgZnJpZW5kcw==</PHRASE>
<PHRASE Label="lu_my_info" Module="In-Portal" Type="0">TXkgUHJvZmlsZQ==</PHRASE>
<PHRASE Label="lu_my_info_description" Module="In-Portal" Type="0">WW91ciBBY2NvdW50IEluZm9ybWF0aW9u</PHRASE>
<PHRASE Label="lu_my_items_title" Module="In-Portal" Type="0">TXkgSXRlbXM=</PHRASE>
<PHRASE Label="lu_my_links" Module="In-Portal" Type="0">TXkgTGlua3M=</PHRASE>
<PHRASE Label="lu_my_links_description" Module="In-Portal" Type="0">TGlua3MgeW91IGhhdmUgYWRkZWQgdG8gdGhlIHN5c3RlbQ==</PHRASE>
<PHRASE Label="lu_my_link_favorites" Module="In-Portal" Type="0">TXkgRmF2b3JpdGVz</PHRASE>
<PHRASE Label="lu_my_news" Module="In-Portal" Type="0">TXkgTmV3cw==</PHRASE>
<PHRASE Label="lu_my_news_favorites" Module="In-Portal" Type="0">RmF2b3JpdGUgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="lu_my_preferences" Module="In-Portal" Type="0">TXkgUHJlZmVyZW5jZXM=</PHRASE>
<PHRASE Label="lu_my_preferences_description" Module="In-Portal" Type="0">RWRpdCB5b3VyIEluLVBvcnRhbCBQcmVmZXJlbmNlcw==</PHRASE>
<PHRASE Label="lu_my_profile" Module="In-Portal" Type="0">TXkgUHJvZmlsZQ==</PHRASE>
<PHRASE Label="lu_my_topics" Module="In-Portal" Type="0">TXkgVG9waWNz</PHRASE>
<PHRASE Label="lu_my_topics_description" Module="In-Portal" Type="0">RGlzY3Vzc2lvbnMgeW91IGhhdmUgY3JlYXRlZA==</PHRASE>
<PHRASE Label="lu_my_topic_favorites" Module="In-Portal" Type="0">TXkgVG9waWNz</PHRASE>
<PHRASE Label="lu_Name" Module="In-Portal" Type="0">TmFtZQ==</PHRASE>
<PHRASE Label="lu_nav_addlink" Module="In-Portal" Type="0">QWRkIExpbms=</PHRASE>
<PHRASE Label="lu_new" Module="In-Portal" Type="0">TmV3</PHRASE>
<PHRASE Label="lu_NewCustomers" Module="In-Portal" Type="0">TmV3IEN1c3RvbWVycw==</PHRASE>
<PHRASE Label="lu_newpm_confirm" Module="In-Portal" Type="0">TmV3IFByaXZhdGUgTWVzc2FnZSBDb25maXJtYXRpb24=</PHRASE>
<PHRASE Label="lu_newpm_confirm_text" Module="In-Portal" Type="0">WW91ciBwcml2YXRlIG1lc3NhZ2UgaGFzIGJlZW4gc2VudC4=</PHRASE>
<PHRASE Label="lu_news" Module="In-Portal" Type="0">TmV3cw==</PHRASE>
<PHRASE Label="lu_news_addreview_confirm_text" Module="In-Portal" Type="0">VGhlIGFydGljbGUgcmV2aWV3IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS4=</PHRASE>
<PHRASE Label="lu_news_addreview_confirm__pending_text" Module="In-Portal" Type="0">QXJ0aWNsZSByZXZpZXcgaGFzIGJlZW4gc3VibWl0dGVkIHBlbmRpbmcgYWRtaW5pc3RyYXRpdmUgYXBwcm92YWw=</PHRASE>
<PHRASE Label="lu_news_details" Module="In-Portal" Type="0">TmV3cyBEZXRhaWxz</PHRASE>
<PHRASE Label="lu_news_rate_confirm" Module="In-Portal" Type="0">UmF0ZSBBcnRpY2xlIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_news_rate_confirm_duplicate_text" Module="In-Portal" Type="0">WW91IGhhdmUgYWxyZWFkeSByYXRlZCB0aGlzIGFydGljbGU=</PHRASE>
<PHRASE Label="lu_news_rate_confirm_text" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciByYXRpbmcgdGhpcyBhcnRpY2xlLiBZb3VyIHZvdGUgaGFzIGJlZW4gcmVjb3JkZWQu</PHRASE>
<PHRASE Label="lu_news_review_confirm" Module="In-Portal" Type="0">VGhlIHJldmlldyBoYXMgYmVlbiBhZGRlZA==</PHRASE>
<PHRASE Label="lu_news_review_confirm_pending" Module="In-Portal" Type="0">QXJ0aWNsZSByZXZpZXcgc3VibWl0dGVk</PHRASE>
<PHRASE Label="lu_news_search_results" Module="In-Portal" Type="0">U2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_news_updated" Module="In-Portal" Type="0">bmV3cyB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_newtopic_confirm" Module="In-Portal" Type="0">QWRkIFRvcGljIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_newtopic_confirm_pending" Module="In-Portal" Type="0">WW91ciB0b3BpYyBoYXMgYmVlbiBhZGRlZA==</PHRASE>
<PHRASE Label="lu_newtopic_confirm_pending_text" Module="In-Portal" Type="0">VGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIG11c3QgYXBwcm92ZSB5b3VyIHRvcGljIGJlZm9yZSBpdCBpcyBwdWJsaWNseSBhdmFpbGFibGUu</PHRASE>
<PHRASE Label="lu_newtopic_confirm_text" Module="In-Portal" Type="0">VGhlIFRvcGljIHlvdSBoYXZlIGNyZWF0ZWQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIHN5c3RlbQ==</PHRASE>
<PHRASE Label="lu_new_articles" Module="In-Portal" Type="0">TmV3IGFydGljbGVz</PHRASE>
<PHRASE Label="lu_new_links" Module="In-Portal" Type="0">TmV3IExpbmtz</PHRASE>
<PHRASE Label="lu_new_news" Module="In-Portal" Type="0">TmV3IGFydGljbGVz</PHRASE>
<PHRASE Label="lu_new_pm" Module="In-Portal" Type="0">TmV3IFByaXZhdGUgTWVzc2FnZQ==</PHRASE>
<PHRASE Label="lu_new_posts" Module="In-Portal" Type="0">Rm9ydW0gaGFzIG5ldyBwb3N0cw==</PHRASE>
<PHRASE Label="lu_new_private_message" Module="In-Portal" Type="0">TmV3IHByaXZhdGUgbWVzc2FnZQ==</PHRASE>
<PHRASE Label="lu_new_since_links" Module="In-Portal" Type="0">TmV3IGxpbmtz</PHRASE>
<PHRASE Label="lu_new_since_news" Module="In-Portal" Type="0">TmV3IGFydGljbGVz</PHRASE>
<PHRASE Label="lu_new_since_topics" Module="In-Portal" Type="0">TmV3IHRvcGljcw==</PHRASE>
<PHRASE Label="lu_new_topic" Module="In-Portal" Type="0">TmV3IFRvcGlj</PHRASE>
<PHRASE Label="lu_new_users" Module="In-Portal" Type="0">TmV3IFVzZXJz</PHRASE>
<PHRASE Label="lu_no" Module="In-Portal" Type="0">Tm8=</PHRASE>
<PHRASE Label="lu_NoAccess" Module="In-Portal" Type="0">U29ycnksIHlvdSBoYXZlIG5vIGFjY2VzcyB0byB0aGlzIHBhZ2Uh</PHRASE>
<PHRASE Label="lu_none" Module="In-Portal" Type="0">Tm9uZQ==</PHRASE>
<PHRASE Label="lu_notify_owner" Module="In-Portal" Type="0">Tm90aWZ5IG1lIHdoZW4gcG9zdHMgYXJlIG1hZGUgaW4gdGhpcyB0b3BpYw==</PHRASE>
<PHRASE Label="lu_not_logged_in" Module="In-Portal" Type="0">Tm90IGxvZ2dlZCBpbg==</PHRASE>
<PHRASE Label="lu_Nov" Module="In-Portal" Type="0">Tm92</PHRASE>
<PHRASE Label="lu_no_articles" Module="In-Portal" Type="0">Tm8gQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="lu_no_categories" Module="In-Portal" Type="0">Tm8gQ2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="lu_no_expiration" Module="In-Portal" Type="0">Tm8gZXhwaXJhdGlvbg==</PHRASE>
<PHRASE Label="lu_no_favorites" Module="In-Portal" Type="0">Tm8gZmF2b3JpdGVz</PHRASE>
<PHRASE Label="lu_no_items" Module="In-Portal" Type="0">Tm8gSXRlbXM=</PHRASE>
<PHRASE Label="lu_no_keyword" Module="In-Portal" Type="0">S2V5d29yZCBtaXNzaW5n</PHRASE>
<PHRASE Label="lu_no_links" Module="In-Portal" Type="0">Tm8gTGlua3M=</PHRASE>
<PHRASE Label="lu_no_new_posts" Module="In-Portal" Type="0">Rm9ydW0gaGFzIG5vIG5ldyBwb3N0cw==</PHRASE>
<PHRASE Label="lu_no_related_categories" Module="In-Portal" Type="0">Tm8gUmVsYXRlZCBDYXRlZ29yaWVz</PHRASE>
<PHRASE Label="lu_no_session_error" Module="In-Portal" Type="0">RXJyb3I6IG5vIHNlc3Npb24=</PHRASE>
<PHRASE Label="lu_no_template_error" Module="In-Portal" Type="0">TWlzc2luZyB0ZW1wbGF0ZQ==</PHRASE>
<PHRASE Label="lu_no_topics" Module="In-Portal" Type="0">Tm8gVG9waWNz</PHRASE>
<PHRASE Label="lu_Oct" Module="In-Portal" Type="0">T2N0</PHRASE>
<PHRASE Label="lu_of" Module="In-Portal" Type="2">b2Y=</PHRASE>
<PHRASE Label="lu_offline" Module="In-Portal" Type="0">T2ZmbGluZQ==</PHRASE>
<PHRASE Label="lu_ok" Module="In-Portal" Type="0">T2s=</PHRASE>
<PHRASE Label="lu_on" Module="In-Portal" Type="0">b24=</PHRASE>
<PHRASE Label="lu_online" Module="In-Portal" Type="0">T25saW5l</PHRASE>
<PHRASE Label="lu_on_this_post" Module="In-Portal" Type="0">b24gdGhpcyBwb3N0</PHRASE>
<PHRASE Label="lu_operation_notallowed" Module="In-Portal" Type="0">WW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9u</PHRASE>
<PHRASE Label="lu_optional" Module="In-Portal" Type="0">T3B0aW9uYWw=</PHRASE>
<PHRASE Label="lu_options" Module="In-Portal" Type="0">T3B0aW9ucw==</PHRASE>
<PHRASE Label="lu_or" Module="In-Portal" Type="0">b3I=</PHRASE>
<PHRASE Label="lu_page" Module="In-Portal" Type="0">UGFnZQ==</PHRASE>
<PHRASE Label="lu_page_label" Module="In-Portal" Type="0">UGFnZTo=</PHRASE>
<PHRASE Label="lu_password" Module="In-Portal" Type="0">UGFzc3dvcmQ=</PHRASE>
<PHRASE Label="lu_passwords_do_not_match" Module="In-Portal" Type="0">UGFzc3dvcmRzIGRvIG5vdCBtYXRjaA==</PHRASE>
<PHRASE Label="lu_passwords_too_short" Module="In-Portal" Type="0">UGFzc3dvcmQgaXMgdG9vIHNob3J0LCBwbGVhc2UgZW50ZXIgYXQgbGVhc3QgJXMgY2hhcmFjdGVycw==</PHRASE>
<PHRASE Label="lu_password_again" Module="In-Portal" Type="0">UGFzc3dvcmQgQWdhaW4=</PHRASE>
<PHRASE Label="lu_PermName_Admin_desc" Module="In-Portal" Type="1">QWRtaW4gTG9naW4=</PHRASE>
<PHRASE Label="lu_PermName_Category.AddPending_desc" Module="In-Portal" Type="0">QWRkIFBlbmRpbmcgQ2F0ZWdvcnk=</PHRASE>
<PHRASE Label="lu_PermName_Category.Add_desc" Module="In-Portal" Type="0">QWRkIENhdGVnb3J5</PHRASE>
<PHRASE Label="lu_PermName_Category.Delete_desc" Module="In-Portal" Type="0">RGVsZXRlIENhdGVnb3J5</PHRASE>
<PHRASE Label="lu_PermName_Category.Modify_desc" Module="In-Portal" Type="0">TW9kaWZ5IENhdGVnb3J5</PHRASE>
<PHRASE Label="lu_PermName_Category.View_desc" Module="In-Portal" Type="0">VmlldyBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="lu_PermName_Debug.Info_desc" Module="In-Portal" Type="1">QXBwZW5kIHBocGluZm8gdG8gYWxsIHBhZ2VzIChEZWJ1Zyk=</PHRASE>
<PHRASE Label="lu_PermName_Debug.Item_desc" Module="In-Portal" Type="1">RGlzcGxheSBJdGVtIFF1ZXJpZXMgKERlYnVnKQ==</PHRASE>
<PHRASE Label="lu_PermName_Debug.List_desc" Module="In-Portal" Type="1">RGlzcGxheSBJdGVtIExpc3QgUXVlcmllcyAoRGVidWcp</PHRASE>
<PHRASE Label="lu_PermName_favorites_desc" Module="In-Portal" Type="2">QWxsb3cgZmF2b3JpdGVz</PHRASE>
<PHRASE Label="lu_PermName_Link.Add.Pending_desc" Module="In-Portal" Type="0">UGVuZGluZyBMaW5r</PHRASE>
<PHRASE Label="lu_PermName_Link.Add_desc" Module="In-Portal" Type="0">QWRkIExpbms=</PHRASE>
<PHRASE Label="lu_PermName_Link.Delete_desc" Module="In-Portal" Type="0">RGVsZXRlIExpbms=</PHRASE>
<PHRASE Label="lu_PermName_Link.Modify.Pending_desc" Module="In-Portal" Type="2">TW9kaWZ5IExpbmsgUGVuZGluZw==</PHRASE>
<PHRASE Label="lu_PermName_Link.Modify_desc" Module="In-Portal" Type="0">TW9kaWZ5IExpbms=</PHRASE>
<PHRASE Label="lu_PermName_Link.Owner.Delete_desc" Module="In-Portal" Type="2">TGluayBEZWxldGUgYnkgT3duZXI=</PHRASE>
<PHRASE Label="lu_PermName_Link.Owner.Modify.Pending_desc" Module="In-Portal" Type="2">TGluayBNb2RpZnkgUGVuZGluZyBieSBPd25lcg==</PHRASE>
<PHRASE Label="lu_PermName_Link.Owner.Modify_desc" Module="In-Portal" Type="2">TGluayBNb2RpZnkgYnkgT3duZXI=</PHRASE>
<PHRASE Label="lu_PermName_Link.Rate_desc" Module="In-Portal" Type="0">UmF0ZSBMaW5r</PHRASE>
<PHRASE Label="lu_PermName_Link.Review_desc" Module="In-Portal" Type="0">UmV2aWV3IExpbms=</PHRASE>
<PHRASE Label="lu_PermName_Link.Review_Pending_desc" Module="In-Portal" Type="2">UmV2aWV3IExpbmsgUGVuZGluZw==</PHRASE>
<PHRASE Label="lu_PermName_Link.View_desc" Module="In-Portal" Type="0">VmlldyBMaW5r</PHRASE>
<PHRASE Label="lu_PermName_Login_desc" Module="In-Portal" Type="1">QWxsb3cgTG9naW4=</PHRASE>
<PHRASE Label="lu_PermName_News.Add.Pending_desc" Module="In-Portal" Type="0">QWRkIFBlbmRpbmcgTmV3cw==</PHRASE>
<PHRASE Label="lu_PermName_News.Add_desc" Module="In-Portal" Type="0">QWRkIE5ld3M=</PHRASE>
<PHRASE Label="lu_PermName_News.Delete_desc" Module="In-Portal" Type="0">RGVsZXRlIE5ld3M=</PHRASE>
<PHRASE Label="lu_PermName_News.Modify_desc" Module="In-Portal" Type="0">TW9kaWZ5IE5ld3M=</PHRASE>
<PHRASE Label="lu_PermName_News.Rate_desc" Module="In-Portal" Type="0">UmF0ZSBOZXdz</PHRASE>
<PHRASE Label="lu_PermName_News.Review.Pending_desc" Module="In-Portal" Type="2">UmV2aWV3IE5ld3MgUGVuZGluZw==</PHRASE>
<PHRASE Label="lu_PermName_News.Review_desc" Module="In-Portal" Type="0">UmV2aWV3IE5ld3M=</PHRASE>
<PHRASE Label="lu_PermName_News.View_desc" Module="In-Portal" Type="0">VmlldyBOZXdz</PHRASE>
<PHRASE Label="lu_PermName_Profile.Modify_desc" Module="In-Portal" Type="1">Q2hhbmdlIFVzZXIgUHJvZmlsZXM=</PHRASE>
<PHRASE Label="lu_PermName_ShowLang_desc" Module="In-Portal" Type="1">U2hvdyBMYW5ndWFnZSBUYWdz</PHRASE>
<PHRASE Label="lu_PermName_Topic.Add.Pending_desc" Module="In-Portal" Type="0">QWRkIFBlbmRpbmcgVG9waWM=</PHRASE>
<PHRASE Label="lu_PermName_Topic.Add_desc" Module="In-Portal" Type="0">QWRkIFRvcGlj</PHRASE>
<PHRASE Label="lu_PermName_Topic.Delete_desc" Module="In-Portal" Type="0">RGVsZXRlIFRvcGlj</PHRASE>
<PHRASE Label="lu_PermName_Topic.Lock_desc" Module="In-Portal" Type="1">TG9jay9VbmxvY2sgVG9waWNz</PHRASE>
<PHRASE Label="lu_PermName_Topic.Modify.Pending_desc" Module="In-Portal" Type="1">TW9kaWZ5IFRvcGljIFBlbmRpbmc=</PHRASE>
<PHRASE Label="lu_PermName_Topic.Modify_desc" Module="In-Portal" Type="0">TW9kaWZ5IFRvcGlj</PHRASE>
<PHRASE Label="lu_PermName_Topic.Owner.Delete_desc" Module="In-Portal" Type="1">VG9waWMgT3duZXIgRGVsZXRl</PHRASE>
<PHRASE Label="lu_PermName_Topic.Owner.Modify.Pending_desc" Module="In-Portal" Type="1">T3duZXIgTW9kaWZ5IFRvcGljIFBlbmRpbmc=</PHRASE>
<PHRASE Label="lu_PermName_Topic.Owner.Modify_desc" Module="In-Portal" Type="1">VG9waWMgT3duZXIgTW9kaWZ5</PHRASE>
<PHRASE Label="lu_PermName_Topic.Rate_desc" Module="In-Portal" Type="0">UmF0ZSBUb3BpYw==</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.Add_desc" Module="In-Portal" Type="0">QWRkIFRvcGljIFJlcGx5</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.Delete_desc" Module="In-Portal" Type="0">RGVsZXRlIFRvcGlj</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.Modify_desc" Module="In-Portal" Type="0">UmVwbHkgVG9waWMgTW9kaWZ5</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.Owner.Delete_desc" Module="In-Portal" Type="1">UG9zdCBPd25lciBEZWxldGU=</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.Owner.Modify_desc" Module="In-Portal" Type="1">UG9zdCBPd25lciBNb2RpZnk=</PHRASE>
<PHRASE Label="lu_PermName_Topic.Reply.View_desc" Module="In-Portal" Type="0">VmlldyBUb3BpYyBSZXBseQ==</PHRASE>
<PHRASE Label="lu_PermName_Topic.Review_desc" Module="In-Portal" Type="0">UmV2aWV3IFRvcGlj</PHRASE>
<PHRASE Label="lu_PermName_Topic.View_desc" Module="In-Portal" Type="0">VmlldyBUb3BpYw==</PHRASE>
<PHRASE Label="lu_phone" Module="In-Portal" Type="0">UGhvbmU=</PHRASE>
<PHRASE Label="lu_pick" Module="In-Portal" Type="0">UGljaw==</PHRASE>
<PHRASE Label="lu_pick_links" Module="In-Portal" Type="0">RWRpdG9yJ3MgUGljayBMaW5rcw==</PHRASE>
<PHRASE Label="lu_pick_news" Module="In-Portal" Type="0">RWRpdG9yJ3MgUGljayBBcnRpY2xlcw==</PHRASE>
<PHRASE Label="lu_pick_topics" Module="In-Portal" Type="0">RWRpdG9yJ3MgcGljayB0b3BpY3M=</PHRASE>
<PHRASE Label="lu_PleaseRegister" Module="In-Portal" Type="0">UGxlYXNlIFJlZ2lzdGVy</PHRASE>
<PHRASE Label="lu_pm_delete_confirm" Module="In-Portal" Type="0">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHByaXZhdGUgbWVzc2FnZT8=</PHRASE>
<PHRASE Label="lu_pm_list" Module="In-Portal" Type="0">UHJpdmF0ZSBNZXNzYWdlcw==</PHRASE>
<PHRASE Label="lu_pm_list_description" Module="In-Portal" Type="0">UHJpdmF0ZSBNZXNzYWdlcw==</PHRASE>
<PHRASE Label="lu_Pop" Module="In-Portal" Type="0">UG9wdWxhcg==</PHRASE>
<PHRASE Label="lu_pop_links" Module="In-Portal" Type="0">TW9zdCBQb3B1bGFyIExpbmtz</PHRASE>
<PHRASE Label="lu_post" Module="In-Portal" Type="0">UG9zdA==</PHRASE>
<PHRASE Label="lu_posted" Module="In-Portal" Type="0">UG9zdGVk</PHRASE>
<PHRASE Label="lu_poster" Module="In-Portal" Type="0">UG9zdGVy</PHRASE>
<PHRASE Label="lu_posts" Module="In-Portal" Type="0">cG9zdHM=</PHRASE>
<PHRASE Label="lu_posts_updated" Module="In-Portal" Type="0">cG9zdHMgdXBkYXRlZA==</PHRASE>
<PHRASE Label="lu_PoweredBy" Module="In-Portal" Type="0">UG93ZXJlZCBieQ==</PHRASE>
<PHRASE Label="lu_pp_city" Module="In-Portal" Type="0">Q2l0eQ==</PHRASE>
<PHRASE Label="lu_pp_country" Module="In-Portal" Type="0">Q291bnRyeQ==</PHRASE>
<PHRASE Label="lu_pp_dob" Module="In-Portal" Type="0">QmlydGhkYXRl</PHRASE>
<PHRASE Label="lu_pp_email" Module="In-Portal" Type="0">RS1tYWls</PHRASE>
<PHRASE Label="lu_pp_firstname" Module="In-Portal" Type="0">Rmlyc3QgTmFtZQ==</PHRASE>
<PHRASE Label="lu_pp_lastname" Module="In-Portal" Type="0">TGFzdCBOYW1l</PHRASE>
<PHRASE Label="lu_pp_phone" Module="In-Portal" Type="0">UGhvbmU=</PHRASE>
<PHRASE Label="lu_pp_state" Module="In-Portal" Type="0">U3RhdGU=</PHRASE>
<PHRASE Label="lu_pp_street" Module="In-Portal" Type="0">U3RyZWV0</PHRASE>
<PHRASE Label="lu_pp_zip" Module="In-Portal" Type="0">Wmlw</PHRASE>
<PHRASE Label="lu_privacy" Module="In-Portal" Type="0">UHJpdmFjeQ==</PHRASE>
<PHRASE Label="lu_privatemessages_updated" Module="In-Portal" Type="0">UHJpdmF0ZSBtZXNzYWdlcyB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_private_messages" Module="In-Portal" Type="0">UHJpdmF0ZSBNZXNzYWdlcw==</PHRASE>
<PHRASE Label="lu_profile" Module="In-Portal" Type="0">UHJvZmlsZQ==</PHRASE>
<PHRASE Label="lu_profile_field" Module="In-Portal" Type="0">UHJvZmlsZQ==</PHRASE>
<PHRASE Label="lu_profile_updated" Module="In-Portal" Type="0">cHJvZmlsZSB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_prompt_avatar" Module="In-Portal" Type="0">QXZhdGFyIEltYWdl</PHRASE>
<PHRASE Label="lu_prompt_catdesc" Module="In-Portal" Type="0">RGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="lu_prompt_catname" Module="In-Portal" Type="0">Q2F0ZWdvcnkgTmFtZQ==</PHRASE>
<PHRASE Label="lu_prompt_email" Module="In-Portal" Type="0">RW1haWw=</PHRASE>
<PHRASE Label="lu_prompt_fullimage" Module="In-Portal" Type="0">RnVsbC1TaXplIEltYWdlOg==</PHRASE>
<PHRASE Label="lu_prompt_linkdesc" Module="In-Portal" Type="0">RGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="lu_prompt_linkname" Module="In-Portal" Type="0">TGluayBOYW1l</PHRASE>
<PHRASE Label="lu_prompt_linkurl" Module="In-Portal" Type="0">VVJM</PHRASE>
<PHRASE Label="lu_prompt_metadesc" Module="In-Portal" Type="0">TWV0YSBUYWcgRGVzY3JpcHRpb24=</PHRASE>
<PHRASE Label="lu_prompt_metakeywords" Module="In-Portal" Type="0">TWV0YSBUYWcgS2V5d29yZHM=</PHRASE>
<PHRASE Label="lu_prompt_password" Module="In-Portal" Type="0">UGFzc3dvcmQ=</PHRASE>
<PHRASE Label="lu_prompt_perpage_posts" Module="In-Portal" Type="0">UG9zdHMgUGVyIFBhZ2U=</PHRASE>
<PHRASE Label="lu_prompt_perpage_topics" Module="In-Portal" Type="0">VG9waWNzIFBlciBQYWdl</PHRASE>
<PHRASE Label="lu_prompt_post_subject" Module="In-Portal" Type="0">UG9zdCBTdWJqZWN0</PHRASE>
<PHRASE Label="lu_prompt_recommend" Module="In-Portal" Type="0">UmVjb21tZW5kIHRoaXMgc2l0ZSB0byBhIGZyaWVuZA==</PHRASE>
<PHRASE Label="lu_prompt_review" Module="In-Portal" Type="0">UmV2aWV3Og==</PHRASE>
<PHRASE Label="lu_prompt_signature" Module="In-Portal" Type="0">U2lnbmF0dXJl</PHRASE>
<PHRASE Label="lu_prompt_subscribe" Module="In-Portal" Type="0">RW50ZXIgeW91ciBlLW1haWwgYWRkcmVzcyB0byBzdWJzY3JpYmUgdG8gdGhlIG1haWxpbmcgbGlzdC4=</PHRASE>
<PHRASE Label="lu_prompt_thumbnail" Module="In-Portal" Type="0">VGh1bWJuYWlsIEltYWdlOg==</PHRASE>
<PHRASE Label="lu_prompt_username" Module="In-Portal" Type="0">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="lu_public_display" Module="In-Portal" Type="0">RGlzcGxheSB0byBQdWJsaWM=</PHRASE>
<PHRASE Label="lu_query_string" Module="In-Portal" Type="1">UXVlcnkgU3RyaW5n</PHRASE>
<PHRASE Label="lu_QuickSearch" Module="In-Portal" Type="0">UXVpY2sgU2VhcmNo</PHRASE>
<PHRASE Label="lu_quick_links" Module="In-Portal" Type="0">UXVpY2sgTGlua3M=</PHRASE>
<PHRASE Label="lu_quote_reply" Module="In-Portal" Type="0">UmVwbHkgUXVvdGVk</PHRASE>
<PHRASE Label="lu_rateit" Module="In-Portal" Type="0">UmF0ZSBUaGlzIExpbms=</PHRASE>
<PHRASE Label="lu_rate_access_denied" Module="In-Portal" Type="0">VW5hYmxlIHRvIHJhdGUsIGFjY2VzcyBkZW5pZWQ=</PHRASE>
<PHRASE Label="lu_rate_article" Module="In-Portal" Type="0">UmF0ZSB0aGlzIGFydGljbGU=</PHRASE>
<PHRASE Label="lu_rate_link" Module="In-Portal" Type="0">UmF0ZSBMaW5r</PHRASE>
<PHRASE Label="lu_rate_news" Module="In-Portal" Type="0">UmF0ZSBBcnRpY2xl</PHRASE>
<PHRASE Label="lu_rate_this_article" Module="In-Portal" Type="0">UmF0ZSB0aGlzIGFydGljbGU=</PHRASE>
<PHRASE Label="lu_rate_topic" Module="In-Portal" Type="0">UmF0ZSBUb3BpYw==</PHRASE>
<PHRASE Label="lu_rating" Module="In-Portal" Type="0">UmF0aW5n</PHRASE>
<PHRASE Label="lu_rating_0" Module="In-Portal" Type="0">UG9vcg==</PHRASE>
<PHRASE Label="lu_rating_1" Module="In-Portal" Type="0">RmFpcg==</PHRASE>
<PHRASE Label="lu_rating_2" Module="In-Portal" Type="0">QXZlcmFnZQ==</PHRASE>
<PHRASE Label="lu_rating_3" Module="In-Portal" Type="0">R29vZA==</PHRASE>
<PHRASE Label="lu_rating_4" Module="In-Portal" Type="0">VmVyeSBHb29k</PHRASE>
<PHRASE Label="lu_rating_5" Module="In-Portal" Type="0">RXhjZWxsZW50</PHRASE>
<PHRASE Label="lu_rating_alreadyvoted" Module="In-Portal" Type="0">QWxyZWFkeSB2b3RlZA==</PHRASE>
<PHRASE Label="lu_read_error" Module="In-Portal" Type="0">VW5hYmxlIHRvIHJlYWQgZnJvbSBmaWxl</PHRASE>
<PHRASE Label="lu_recipent_required" Module="In-Portal" Type="0">VGhlIHJlY2lwaWVudCBpcyByZXF1aXJlZA==</PHRASE>
<PHRASE Label="lu_recipient_doesnt_exist" Module="In-Portal" Type="0">VXNlciBkb2VzIG5vdCBleGlzdA==</PHRASE>
<PHRASE Label="lu_recipient_doesnt_exit" Module="In-Portal" Type="0">VGhlIHJlY2lwaWVudCBkb2VzIG5vdCBleGlzdA==</PHRASE>
<PHRASE Label="lu_recommend" Module="In-Portal" Type="0">UmVjb21tZW5k</PHRASE>
<PHRASE Label="lu_RecommendToFriend" Module="In-Portal" Type="0">UmVjb21tZW5kIHRvIGEgRnJpZW5k</PHRASE>
<PHRASE Label="lu_recommend_confirm" Module="In-Portal" Type="0">UmVjb21tZW5kYXRpb24gQ29uZmlybWF0aW9u</PHRASE>
<PHRASE Label="lu_recommend_confirm_text" Module="In-Portal" Type="0">VGhhbmtzIGZvciByZWNvbW1lbmRpbmcgb3VyIHNpdGUgdG8geW91ciBmcmllbmQuIFRoZSBlbWFpbCBoYXMgYmVlbiBzZW50IG91dC4=</PHRASE>
<PHRASE Label="lu_recommend_title" Module="In-Portal" Type="0">UmVjb21tZW5kIHRvIGEgZnJpZW5k</PHRASE>
<PHRASE Label="lu_redirecting_text" Module="In-Portal" Type="0">Q2xpY2sgaGVyZSBpZiB5b3VyIGJyb3dzZXIgZG9lcyBub3QgYXV0b21hdGljYWxseSByZWRpcmVjdCB5b3Uu</PHRASE>
<PHRASE Label="lu_redirecting_title" Module="In-Portal" Type="0">UmVkaXJlY3RpbmcgLi4u</PHRASE>
<PHRASE Label="lu_register" Module="In-Portal" Type="0">UmVnaXN0ZXI=</PHRASE>
<PHRASE Label="lu_RegisterConfirm" Module="In-Portal" Type="0">UmVnaXN0cmF0aW9uIENvbmZpcm1hdGlvbg==</PHRASE>
<PHRASE Label="lu_register_confirm" Module="In-Portal" Type="0">UmVnaXN0cmF0aW9uIENvbXBsZXRl</PHRASE>
<PHRASE Label="lu_register_confirm_text" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciBSZWdpc3RlcmluZyEgIFBsZWFzZSBlbnRlciB5b3VyIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBiZWxvdw==</PHRASE>
<PHRASE Label="lu_register_text" Module="In-Portal" Type="2">UmVnaXN0ZXIgd2l0aCBJbi1Qb3J0YWwgZm9yIGNvbnZlbmllbnQgYWNjZXNzIHRvIHVzZXIgYWNjb3VudCBzZXR0aW5ncyBhbmQgcHJlZmVyZW5jZXMu</PHRASE>
<PHRASE Label="lu_RegistrationCompleted" Module="In-Portal" Type="0">VGhhbmsgWW91LiBSZWdpc3RyYXRpb24gY29tcGxldGVkLg==</PHRASE>
<PHRASE Label="lu_related_articles" Module="In-Portal" Type="0">UmVsYXRlZCBhcnRpY2xlcw==</PHRASE>
<PHRASE Label="lu_related_categories" Module="In-Portal" Type="0">UmVsYXRlZCBDYXRlZ29yaWVz</PHRASE>
<PHRASE Label="lu_related_cats" Module="In-Portal" Type="0">UmVsYXRlZCBDYXRlZ29yaWVz</PHRASE>
<PHRASE Label="lu_related_links" Module="In-Portal" Type="0">UmVsYXRlZCBMaW5rcw==</PHRASE>
<PHRASE Label="lu_related_news" Module="In-Portal" Type="0">UmVsYXRlZCBOZXdz</PHRASE>
<PHRASE Label="lu_remember_login" Module="In-Portal" Type="0">UmVtZW1iZXIgTG9naW4=</PHRASE>
<PHRASE Label="lu_remove" Module="In-Portal" Type="0">UmVtb3Zl</PHRASE>
<PHRASE Label="lu_remove_from_favorites" Module="In-Portal" Type="0">UmVtb3ZlIEZyb20gRmF2b3JpdGVz</PHRASE>
<PHRASE Label="lu_repeat_password" Module="In-Portal" Type="0">UmVwZWF0IFBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_replies" Module="In-Portal" Type="0">UmVwbGllcw==</PHRASE>
<PHRASE Label="lu_reply" Module="In-Portal" Type="0">UmVwbHk=</PHRASE>
<PHRASE Label="lu_required_field" Module="In-Portal" Type="0">UmVxdWlyZWQgRmllbGQ=</PHRASE>
<PHRASE Label="lu_reset" Module="In-Portal" Type="0">UmVzZXQ=</PHRASE>
<PHRASE Label="lu_resetpw_confirm_text" Module="In-Portal" Type="0">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlc2V0IHRoZSBwYXNzd29yZD8=</PHRASE>
<PHRASE Label="lu_reset_confirm_text" Module="In-Portal" Type="0">UGxlYXNlIGNvbmZpcm0gdGhhdCB5b3Ugd2FudCB0byByZXNldCB5b3VyIHBhc3N3b3JkLg==</PHRASE>
<PHRASE Label="lu_reviews" Module="In-Portal" Type="0">UmV2aWV3cw==</PHRASE>
<PHRASE Label="lu_reviews_updated" Module="In-Portal" Type="0">cmV2aWV3cyB1cGRhdGVk</PHRASE>
<PHRASE Label="lu_review_access_denied" Module="In-Portal" Type="0">VW5hYmxlIHRvIHJldmlldywgYWNjZXNzIGRlbmllZA==</PHRASE>
<PHRASE Label="lu_review_article" Module="In-Portal" Type="0">UmV2aWV3IGFydGljbGU=</PHRASE>
<PHRASE Label="lu_review_link" Module="In-Portal" Type="0">UmV2aWV3IExpbms=</PHRASE>
<PHRASE Label="lu_review_news" Module="In-Portal" Type="0">UmV2aWV3IG5ld3MgYXJ0aWNsZQ==</PHRASE>
<PHRASE Label="lu_review_this_article" Module="In-Portal" Type="0">UmV2aWV3IHRoaXMgYXJ0aWNsZQ==</PHRASE>
<PHRASE Label="lu_rootcategory_name" Module="In-Portal" Type="0">SG9tZQ==</PHRASE>
<PHRASE Label="lu_search" Module="In-Portal" Type="0">U2VhcmNo</PHRASE>
<PHRASE Label="lu_searched_for" Module="In-Portal" Type="0">U2VhcmNoZWQgRm9yOg==</PHRASE>
<PHRASE Label="lu_SearchProducts" Module="In-Portal" Type="0">U2VhcmNoIFByb2R1Y3Rz</PHRASE>
<PHRASE Label="lu_searchtitle_article" Module="In-Portal" Type="0">U2VhcmNoIEFydGljbGVz</PHRASE>
<PHRASE Label="lu_searchtitle_category" Module="In-Portal" Type="0">U2VhcmNoIENhdGVnb3JpZXM=</PHRASE>
<PHRASE Label="lu_searchtitle_link" Module="In-Portal" Type="0">U2VhcmNoIExpbmtz</PHRASE>
<PHRASE Label="lu_searchtitle_topic" Module="In-Portal" Type="0">U2VhcmNoIFRvcGljcw==</PHRASE>
<PHRASE Label="lu_search_again" Module="In-Portal" Type="0">U2VhcmNoIEFnYWlu</PHRASE>
<PHRASE Label="lu_search_error" Module="In-Portal" Type="0">Rm9ybSBFcnJvcg==</PHRASE>
<PHRASE Label="lu_search_results" Module="In-Portal" Type="0">U2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_search_tips_link" Module="In-Portal" Type="0">U2VhcmNoIFRpcHM=</PHRASE>
<PHRASE Label="lu_search_type" Module="In-Portal" Type="0">U2VhcmNoIFR5cGU=</PHRASE>
<PHRASE Label="lu_search_within" Module="In-Portal" Type="0">U2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_see_also" Module="In-Portal" Type="0">U2VlIEFsc28=</PHRASE>
<PHRASE Label="lu_select_language" Module="In-Portal" Type="0">U2VsZWN0IExhbmd1YWdl</PHRASE>
<PHRASE Label="lu_select_theme" Module="In-Portal" Type="0">U2VsZWN0IFRoZW1l</PHRASE>
<PHRASE Label="lu_select_username" Module="In-Portal" Type="0">U2VsZWN0IFVzZXJuYW1l</PHRASE>
<PHRASE Label="lu_send" Module="In-Portal" Type="0">U2VuZA==</PHRASE>
<PHRASE Label="lu_send_pm" Module="In-Portal" Type="0">U2VuZCBQcml2YXRlIE1lc3NhZ2U=</PHRASE>
<PHRASE Label="lu_sent" Module="In-Portal" Type="0">U2VudA==</PHRASE>
<PHRASE Label="lu_Sep" Module="In-Portal" Type="0">U2Vw</PHRASE>
<PHRASE Label="lu_ShoppingCart" Module="In-Portal" Type="0">U2hvcHBpbmcgQ2FydA==</PHRASE>
<PHRASE Label="lu_show" Module="In-Portal" Type="0">U2hvdw==</PHRASE>
<PHRASE Label="lu_show_signature" Module="In-Portal" Type="0">U2hvdyBTaWduYXR1cmU=</PHRASE>
<PHRASE Label="lu_show_user_signatures" Module="In-Portal" Type="0">U2hvdyBNeSBTaWduYXR1cmU=</PHRASE>
<PHRASE Label="lu_SiteLead_Story" Module="In-Portal" Type="0">U2l0ZSBMZWFkIFN0b3J5</PHRASE>
<PHRASE Label="lu_site_map" Module="In-Portal" Type="0">U2l0ZSBNYXA=</PHRASE>
<PHRASE Label="lu_smileys" Module="In-Portal" Type="0">U21pbGV5cw==</PHRASE>
<PHRASE Label="lu_sorted_list" Module="In-Portal" Type="0">U29ydGVkIGxpc3Q=</PHRASE>
<PHRASE Label="lu_sort_by" Module="In-Portal" Type="0">U29ydA==</PHRASE>
<PHRASE Label="lu_state" Module="In-Portal" Type="0">U3RhdGU=</PHRASE>
<PHRASE Label="lu_street" Module="In-Portal" Type="0">U3RyZWV0</PHRASE>
<PHRASE Label="lu_street2" Module="In-Portal" Type="0">U3RyZWV0IDI=</PHRASE>
<PHRASE Label="lu_subaction_prompt" Module="In-Portal" Type="0">QWxzbyBZb3UgQ2FuOg==</PHRASE>
<PHRASE Label="lu_subcats" Module="In-Portal" Type="0">U3ViY2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="lu_subject" Module="In-Portal" Type="0">U3ViamVjdA==</PHRASE>
<PHRASE Label="lu_submitting_to" Module="In-Portal" Type="0">U3VibWl0dGluZyB0bw==</PHRASE>
<PHRASE Label="lu_subscribe_banned" Module="In-Portal" Type="0">U3Vic2NyaXB0aW9uIGRlbmllZA==</PHRASE>
<PHRASE Label="lu_subscribe_confirm" Module="In-Portal" Type="0">U3Vic2NyaXB0aW9uIENvbmZpcm1hdGlvbg==</PHRASE>
<PHRASE Label="lu_subscribe_confirm_prompt" Module="In-Portal" Type="0">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHN1YnNjcmliZSB0byBvdXIgbWFpbGluZyBsaXN0PyAoWW91IGNhbiB1bnN1YnNjcmliZSBhbnkgdGltZSBieSBlbnRlcmluZyB5b3VyIGVtYWlsIG9uIHRoZSBmcm9udCBwYWdlKS4=</PHRASE>
<PHRASE Label="lu_subscribe_confirm_text" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciBzdWJzY3JpYmluZyB0byBvdXIgbWFpbGluZyBsaXN0IQ==</PHRASE>
<PHRASE Label="lu_subscribe_error" Module="In-Portal" Type="0">Rm9ybSBFcnJvcg==</PHRASE>
<PHRASE Label="lu_subscribe_missing_address" Module="In-Portal" Type="0">TWlzc2luZyBlbWFpbCBhZGRyZXNz</PHRASE>
<PHRASE Label="lu_subscribe_no_address" Module="In-Portal" Type="0">RS1tYWlsIGFkZHJlc3MgbWlzc2luZyBvciBpbnZhbGlk</PHRASE>
<PHRASE Label="lu_subscribe_success" Module="In-Portal" Type="0">U3Vic2NyaXB0aW9uIHN1Y2Nlc3NmdWw=</PHRASE>
<PHRASE Label="lu_subscribe_title" Module="In-Portal" Type="0">U3Vic2NyaWJlZA==</PHRASE>
<PHRASE Label="lu_subscribe_unknown_error" Module="In-Portal" Type="0">VW5kZWZpbmVkIGVycm9yIG9jY3VycmVkLCBzdWJzY3JpcHRpb24gbm90IGNvbXBsZXRlZA==</PHRASE>
<PHRASE Label="lu_suggest_category" Module="In-Portal" Type="0">U3VnZ2VzdCBDYXRlZ29yeQ==</PHRASE>
<PHRASE Label="lu_suggest_category_pending" Module="In-Portal" Type="0">Q2F0ZWdvcnkgU3VnZ2VzdGVkIChQZW5kaW5nIEFwcHJvdmFsKQ==</PHRASE>
<PHRASE Label="lu_suggest_error" Module="In-Portal" Type="0">Rm9ybSBFcnJvcg==</PHRASE>
<PHRASE Label="lu_suggest_link" Module="In-Portal" Type="0">U3VnZ2VzdCBMaW5r</PHRASE>
<PHRASE Label="lu_suggest_no_address" Module="In-Portal" Type="0">RS1tYWlsIGFkZHJlc3MgbWlzc2luZyBvciBpbnZhbGlk</PHRASE>
<PHRASE Label="lu_suggest_success" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciBzdWdnZXN0aW5nIG91ciBzaXRlIHRv</PHRASE>
<PHRASE Label="lu_template_error" Module="In-Portal" Type="0">VGVtcGxhdGUgRXJyb3I=</PHRASE>
<PHRASE Label="lu_TextUnsubscribe" Module="In-Portal" Type="0">IFdlIGFyZSBzb3JyeSB5b3UgaGF2ZSB1bnN1YnNjcmliZWQgZnJvbSBvdXIgbWFpbGluZyBsaXN0</PHRASE>
<PHRASE Label="lu_text_keyword" Module="In-Portal" Type="0">S2V5d29yZA==</PHRASE>
<PHRASE Label="lu_text_PasswordRequestConfirm" Module="In-Portal" Type="0">UGxlYXNlIGNvbmZpcm0gdGhhdCB5b3Ugd2FudCB0byByZXNldCB5b3VyIHBhc3N3b3JkLg==</PHRASE>
<PHRASE Label="lu_ThankForSubscribing" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciBzdWJzY3JpYmluZyB0byBvdXIgbWFpbGluZyBsaXN0</PHRASE>
<PHRASE Label="lu_title_confirm" Module="In-Portal" Type="0">Q29uZmlybWF0aW9u</PHRASE>
<PHRASE Label="lu_title_mailinglist" Module="In-Portal" Type="0">TWFpbGluZyBMaXN0</PHRASE>
<PHRASE Label="lu_title_PasswordRequestConfirm" Module="In-Portal" Type="0">UGFzc3dvcmQgUmVxdWVzdCBDb25maXJtYXRpb24=</PHRASE>
<PHRASE Label="lu_to" Module="In-Portal" Type="0">VG8=</PHRASE>
<PHRASE Label="lu_top" Module="In-Portal" Type="0">VG9wIFJhdGVk</PHRASE>
<PHRASE Label="lu_topics" Module="In-Portal" Type="0">VG9waWNz</PHRASE>
<PHRASE Label="lu_topics_updated" Module="In-Portal" Type="0">VG9waWNzIFVwZGF0ZWQ=</PHRASE>
<PHRASE Label="lu_topic_rate_confirm" Module="In-Portal" Type="0">VG9waWMgUmF0aW5nIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_topic_rate_confirm_duplicate_text" Module="In-Portal" Type="0">WW91IGhhdmUgYWxyZWFkeSByYXRlZCB0aGlzIHRvcGlj</PHRASE>
<PHRASE Label="lu_topic_rate_confirm_text" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciB2b3RpbmchICBZb3VyIGlucHV0IGhhcyBiZWVuIHJlY29yZGVkLg==</PHRASE>
<PHRASE Label="lu_topic_reply" Module="In-Portal" Type="0">UG9zdCBSZXBseQ==</PHRASE>
<PHRASE Label="lu_topic_search_results" Module="In-Portal" Type="0">VG9waWMgU2VhcmNoIFJlc3VsdHM=</PHRASE>
<PHRASE Label="lu_topic_updated" Module="In-Portal" Type="0">VG9waWMgVXBkYXRlZA==</PHRASE>
<PHRASE Label="lu_top_rated" Module="In-Portal" Type="0">VG9wIFJhdGVkIExpbmtz</PHRASE>
<PHRASE Label="lu_total_categories" Module="In-Portal" Type="0">VG90YWwgQ2F0ZWdvcmllcw==</PHRASE>
<PHRASE Label="lu_total_links" Module="In-Portal" Type="0">VG90YWwgbGlua3MgaW4gdGhlIGRhdGFiYXNl</PHRASE>
<PHRASE Label="lu_total_news" Module="In-Portal" Type="0">VG90YWwgQXJ0aWNsZXM=</PHRASE>
<PHRASE Label="lu_total_topics" Module="In-Portal" Type="0">VG90YWwgVG9waWNz</PHRASE>
<PHRASE Label="lu_true" Module="In-Portal" Type="0">VHJ1ZQ==</PHRASE>
<PHRASE Label="lu_unknown_error" Module="In-Portal" Type="0">U3lzdGVtIGVycm9yIGhhcyBvY2N1cmVk</PHRASE>
<PHRASE Label="lu_unsorted_list" Module="In-Portal" Type="0">VW5zb3J0ZWQgbGlzdA==</PHRASE>
<PHRASE Label="lu_unsubscribe_confirm" Module="In-Portal" Type="0">VW5zdWJzY3JpcHRpb24gQ29uZmlybWF0aW9u</PHRASE>
<PHRASE Label="lu_unsubscribe_confirm_prompt" Module="In-Portal" Type="0">QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuc3Vic2NyaWJlIGZyb20gb3VyIG1haWxpbmcgbGlzdD8gKFlvdSBjYW4gYWx3YXlzIHN1YnNjcmliZSBhZ2FpbiBieSBlbnRlcmluZyB5b3VyIGVtYWlsIGF0IHRoZSBob21lIHBhZ2Up</PHRASE>
<PHRASE Label="lu_unsubscribe_confirm_text" Module="In-Portal" Type="0">V2UgYXJlIHNvcnJ5IHlvdSBoYXZlIHVuc3Vic2NyaWJlZCBmcm9tIG91ciBtYWlsaW5nIGxpc3Q=</PHRASE>
<PHRASE Label="lu_unsubscribe_title" Module="In-Portal" Type="0">VW5zdWJzY3JpYmU=</PHRASE>
<PHRASE Label="lu_update" Module="In-Portal" Type="0">VXBkYXRl</PHRASE>
<PHRASE Label="lu_username" Module="In-Portal" Type="0">VXNlcm5hbWU=</PHRASE>
<PHRASE Label="lu_users_online" Module="In-Portal" Type="0">VXNlcnMgT25saW5l</PHRASE>
<PHRASE Label="lu_user_already_exist" Module="In-Portal" Type="0">QSB1c2VyIHdpdGggc3VjaCB1c2VybmFtZSBhbHJlYWR5IGV4aXN0cy4=</PHRASE>
<PHRASE Label="lu_user_and_email_already_exist" Module="In-Portal" Type="0">QSB1c2VyIHdpdGggc3VjaCB1c2VybmFtZS9lLW1haWwgYWxyZWFkeSBleGlzdHMu</PHRASE>
<PHRASE Label="lu_user_exists" Module="In-Portal" Type="0">VXNlciBhbHJlYWR5IGV4aXN0cw==</PHRASE>
<PHRASE Label="lu_user_pending_aproval" Module="In-Portal" Type="0">UGVuZGluZyBSZWdpc3RyYXRpb24gQ29tcGxldGU=</PHRASE>
<PHRASE Label="lu_user_pending_aproval_text" Module="In-Portal" Type="0">VGhhbmsgeW91IGZvciByZWdpc3RlcmluZy4gWW91ciByZWdpc3RyYXRpb24gaXMgcGVuZGluZyBhZG1pbmlzdHJhdGl2ZSBhcHByb3ZhbC4=</PHRASE>
<PHRASE Label="lu_VerifyPassword" Module="In-Portal" Type="0">VmVyaWZ5IHBhc3N3b3Jk</PHRASE>
<PHRASE Label="lu_views" Module="In-Portal" Type="0">Vmlld3M=</PHRASE>
<PHRASE Label="lu_view_flat" Module="In-Portal" Type="0">VmlldyBGbGF0</PHRASE>
<PHRASE Label="lu_view_pm" Module="In-Portal" Type="0">VmlldyBQTQ==</PHRASE>
<PHRASE Label="lu_view_profile" Module="In-Portal" Type="0">VmlldyBVc2VyIFByb2ZpbGU=</PHRASE>
<PHRASE Label="lu_view_threaded" Module="In-Portal" Type="0">VmlldyBUaHJlYWRlZA==</PHRASE>
<PHRASE Label="lu_view_your_profile" Module="In-Portal" Type="0">VmlldyBZb3VyIFByb2ZpbGU=</PHRASE>
<PHRASE Label="lu_visit_DirectReferer" Module="In-Portal" Type="0">RGlyZWN0IGFjY2VzcyBvciBib29rbWFyaw==</PHRASE>
<PHRASE Label="lu_votes" Module="In-Portal" Type="0">Vm90ZXM=</PHRASE>
<PHRASE Label="lu_Warning" Module="In-Portal" Type="0">V2FybmluZw==</PHRASE>
<PHRASE Label="lu_WeAcceptCards" Module="In-Portal" Type="0">V2UgYWNjZXB0IGNyZWRpdCBjYXJkcw==</PHRASE>
<PHRASE Label="lu_wrote" Module="In-Portal" Type="0">d3JvdGU=</PHRASE>
<PHRASE Label="lu_yes" Module="In-Portal" Type="0">WWVz</PHRASE>
<PHRASE Label="lu_YourAccount" Module="In-Portal" Type="0">WW91ciBBY2NvdW50</PHRASE>
<PHRASE Label="lu_YourCart" Module="In-Portal" Type="0">U2hvcHBpbmcgQ2FydA==</PHRASE>
<PHRASE Label="lu_YourCurrency" Module="In-Portal" Type="0">WW91ciBjdXJyZW5jeQ==</PHRASE>
<PHRASE Label="lu_YourLanguage" Module="In-Portal" Type="0">WW91ciBMYW5ndWFnZQ==</PHRASE>
<PHRASE Label="lu_YourWishList" Module="In-Portal" Type="0">WW91ciBXaXNoIExpc3Q=</PHRASE>
<PHRASE Label="lu_zip" Module="In-Portal" Type="0">Wmlw</PHRASE>
<PHRASE Label="lu_ZipCode" Module="In-Portal" Type="0">WklQIENvZGU=</PHRASE>
<PHRASE Label="lu_zip_code" Module="In-Portal" Type="0">WklQIENvZGU=</PHRASE>
<PHRASE Label="lu_zoom" Module="In-Portal" Type="0">Wm9vbQ==</PHRASE>
<PHRASE Label="my_account_title" Module="In-Portal" Type="0">TXkgU2V0dGluZ3M=</PHRASE>
<PHRASE Label="Next Theme" Module="In-Portal" Type="0">TmV4dCBUaGVtZQ==</PHRASE>
<PHRASE Label="Previous Theme" Module="In-Portal" Type="0">UHJldmlvdXMgVGhlbWU=</PHRASE>
<PHRASE Label="test 1" Module="In-Portal" Type="0">dGVzdCAy</PHRASE>
</PHRASES>
<EVENTS>
- <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRATION.NOTICE" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2UKCk1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2U=</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.DELETE" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IEEgY2F0ZWdvcnkgaGFzIGJlZW4gZGVsZXRlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gZGVsZXRlZC4=</EVENT>
+ <EVENT MessageType="text" Event="USER.PSWD" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogTG9zdCBwYXNzd29yZAoKWW91ciBsb3N0IHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3VyIG5ldyBwYXNzd29yZCBpczogIjxpbnA6dG91c2VyIF9GaWVsZD0iUGFzc3dvcmQiIC8+Ii4=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.MODIFY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBtb2RpZmllZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gbW9kaWZpZWQu</EVENT>
+ <EVENT MessageType="text" Event="USER.SUBSCRIBE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogU3Vic2NyaXB0aW9uIGNvbmZpcm1hdGlvbgoKWW91IGhhdmUgc3Vic2NyaWJlZCB0byA8aW5wOm1fcGFnZV90aXRsZSAvPiBtYWlsaW5nIGxpc3Qu</EVENT>
+ <EVENT MessageType="text" Event="USER.ADD.PENDING" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IEluLVBvcnRhbCBSZWdpc3RyYXRpb24KCkRlYXIgPGlucDp0b3VzZXIgX0ZpZWxkPSJGaXJzdE5hbWUiIC8+IDxpbnA6dG91c2VyIF9GaWVsZD0iTGFzdE5hbWUiIC8+LA0KDQpUaGFuayB5b3UgZm9yIHJlZ2lzdGVyaW5nIG9uIDxpbnA6bV9wYWdlX3RpdGxlIC8+LiBZb3VyIHJlZ2lzdHJhdGlvbiB3aWxsIGJlIGFjdGl2ZSBhZnRlciBhcHByb3ZhbC4=</EVENT>
+ <EVENT MessageType="text" Event="USER.APPROVE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciBhcHByb3ZlZAoKVXNlciAiPGlucDp0b3VzZXIgX0ZpZWxkPSJVc2VyTmFtZSIgLz4iIGhhcyBiZWVuIGFwcHJvdmVkLg==</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.ADD" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhZGRlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gYWRkZWQu</EVENT>
+ <EVENT MessageType="text" Event="USER.ADD" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogSW4tcG9ydGFsIHJlZ2lzdHJhdGlvbgoKRGVhciA8aW5wOnRvdXNlciBfRmllbGQ9IkZpcnN0TmFtZSIgLz4gPGlucDp0b3VzZXIgX0ZpZWxkPSJMYXN0TmFtZSIgLz4sDQoNClRoYW5rIHlvdSBmb3IgcmVnaXN0ZXJpbmcgb24gPGlucDptX3BhZ2VfdGl0bGUgLz4uIFlvdXIgcmVnaXN0cmF0aW9uIGlzIG5vdyBhY3RpdmUu</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.ADD.PENDING" Type="0"></EVENT>
+ <EVENT MessageType="text" Event="USER.PSWDC" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogUGFzc3dvcmQgcmVzZXQgY29uZmlybWF0aW9uCgpIZWxsbywNCg0KSXQgc2VlbXMgdGhhdCB5b3UgaGF2ZSByZXF1ZXN0ZWQgYSBwYXNzd29yZCByZXNldCBmb3IgeW91ciBJbi1wb3J0YWwgYWNjb3VudC4gSWYgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZCBhbmQgY2hhbmdlIHRoZSBwYXNzd29yZCwgcGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIGJlbG93Og0KPGlucDptX2NvbmZpcm1fcGFzc3dvcmRfbGluayAvPg0KDQpZb3Ugd2lsbCByZWNlaXZlIGEgc2Vjb25kIGVtYWlsIHdpdGggeW91ciBuZXcgcGFzc3dvcmQgc2hvcnRseS4NCg0KSWYgeW91IGJlbGlldmUgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIGlnbm9yZSB0aGlzIGVtYWlsLiBZb3VyIHBhc3N3b3JkIHdpbGwgbm90IGJlIGNoYW5nZWQgdW5sZXNzIHlvdSBoYXZlIGNsaWNrZWQgb24gdGhlIGFib3ZlIGxpbmsuDQo=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.DELETE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZWxldGVkCgpBIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBkZWxldGVkLg==</EVENT>
+ <EVENT MessageType="text" Event="USER.UNSUBSCRIBE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciB1bnN1YnNyaWJlZAoKQSB1c2VyIGhhcyB1bnN1YnNjcmliZWQu</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.ADD" Type="0">U3ViamVjdDogQ2F0ZWdvcnkgYWRkZWQKCllvdXIgc3VnZ2VzdGVkIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBhZGRlZC4=</EVENT>
+ <EVENT MessageType="text" Event="USER.DENY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQWNjZXNzIGRlbmllZAoKWW91ciByZWdpc3RyYXRpb24gdG8gPGlucDptX3BhZ2VfdGl0bGUgLz4gaGFzIGJlZW4gZGVuaWVkLg==</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.DENY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZW5pZWQKCllvdXIgY2F0ZWdvcnkgc3VnZ2VzdGlvbiAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gZGVuaWVkLg==</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.MODIFY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBtb2RpZmllZAoKWW91ciBzdWdnZXN0ZWQgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIG1vZGlmaWVkLg==</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.APPROVE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhcHByb3ZlZAoKWW91ciBzdWdnZXN0ZWQgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIGFwcHJvdmVkLg==</EVENT>
+ <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRATION.NOTICE" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2UKCk1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2U=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.DENY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZW5pZWQKCkEgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIGRlbmllZC4=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.APPROVE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhcHByb3ZlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gYXBwcm92ZWQu</EVENT>
+ <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRED" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJlZAoKTWVtYmVyc2hpcCBleHBpcmVk</EVENT>
+ <EVENT MessageType="text" Event="USER.PSWD" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogTG9zdCBwYXNzd29yZAoKWW91ciBsb3N0IHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3VyIG5ldyBwYXNzd29yZCBpczogIjxpbnA6dG91c2VyIF9GaWVsZD0iUGFzc3dvcmQiIC8+Ii4=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.ADD.PENDING" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQ2F0ZWdvcnkgYWRkZWQgKHBlbmRpbmcpCgpBIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBhZGRlZCwgcGVuZGluZyB5b3VyIGNvbmZpcm1hdGlvbi4gIFBsZWFzZSByZXZpZXcgdGhlIGNhdGVnb3J5IGFuZCBhcHByb3ZlIG9yIGRlbnkgaXQu</EVENT>
+ <EVENT MessageType="text" Event="USER.VALIDATE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogSW4tcG9ydGFsIHJlZ2lzdHJhdGlvbgoKV2VsY29tZSB0byBJbi1wb3J0YWwhDQpZb3VyIHVzZXIgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkLiBZb3VyIHVzZXIgbmFtZSBpcyAiPGlucDp0b3VzZXIgX0ZpZWxkPSJVc2VyTmFtZSIgLz4iIGFuZCB5b3VyIHBhc3N3b3JkIGlzICI8aW5wOnRvdXNlciBfRmllbGQ9InBhc3N3b3JkIiAvPiIuDQo=</EVENT>
+ <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRED" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJlZAoKTWVtYmVyc2hpcCBleHBpcmVk</EVENT>
+ <EVENT MessageType="text" Event="USER.ADD" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE5ldyB1c2VyIGhhcyBiZWVuIGFkZGVkCgpBIG5ldyB1c2VyICI8aW5wOnRvdXNlciBfRmllbGQ9IkxvZ2luIiAvPiIgaGFzIGJlZW4gYWRkZWQu</EVENT>
+ <EVENT MessageType="text" Event="USER.ADD.PENDING" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IFVzZXIgcmVnaXN0ZXJlZAoKQSBuZXcgdXNlciAiPGlucDp0b3VzZXIgX0ZpZWxkPSJMb2dpbiIgLz4iIGhhcyByZWdpc3RlcmVkIGFuZCBpcyBwZW5kaW5nIGFkbWluaXN0cmF0aXZlIGFwcHJvdmFsLg==</EVENT>
+ <EVENT MessageType="text" Event="USER.DENY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciBkZW5pZWQKClVzZXIgIjxpbnA6dG91c2VyIF9GaWVsZD0iVXNlck5hbWUiIC8+IiBoYXMgYmVlbiBkZW5pZWQu</EVENT>
<EVENT MessageType="text" Event="USER.SUBSCRIBE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSB1c2VyIGhhcyBzdWJzY3JpYmVkCgpBIHVzZXIgaGFzIHN1YnNjcmliZWQgdG8gPGlucDptX3BhZ2VfdGl0bGUgLz4gbWFpbGluZyBsaXN0Lg==</EVENT>
+ <EVENT MessageType="text" Event="USER.SUGGEST" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVGhlIHNpdGUgaGFzIGJlZW4gc3VnZ2VzdGVkCgpBIHZpc2l0b3Igc3VnZ2VzdGVkIHlvdXIgc2l0ZSB0byBhIGZyaWVuZC4=</EVENT>
+ <EVENT MessageType="text" Event="CATEGORY.DELETE" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IEEgY2F0ZWdvcnkgaGFzIGJlZW4gZGVsZXRlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gZGVsZXRlZC4=</EVENT>
+ <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRATION.NOTICE" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2UKCk1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2U=</EVENT>
<EVENT MessageType="html" Event="USER.SUGGEST" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQ2hlY2sgb3V0IHRoaXMgc2l0ZQoKSGksDQoNClRoaXMgbWVzc2FnZSBoYXMgYmVlbiBzZW50IHRvIHlvdSBmcm9tIG9uZSBvZiB5b3VyIGZyaWVuZHMuDQpDaGVjayBvdXQgdGhpcyBzaXRlOiA8YSBocmVmPSI8aW5wOm1fdGhlbWVfdXJsIF9wYWdlPSJjdXJyZW50Ii8+Ij48aW5wOm1fcGFnZV90aXRsZSAvPjwvYT4h</EVENT>
<EVENT MessageType="text" Event="USER.UNSUBSCRIBE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogWW91IGhhdmUgYmVlbiB1bnN1YnNjcmliZWQKCllvdSBoYXZlIHN1Y2Nlc3NmdWxseSB1bnN1YnNyaWJlZCBmcm9tIDxpbnA6bV9wYWdlX3RpdGxlIC8+IG1haWxpbmcgbGlzdC4=</EVENT>
- <EVENT MessageType="text" Event="USER.SUGGEST" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVGhlIHNpdGUgaGFzIGJlZW4gc3VnZ2VzdGVkCgpBIHZpc2l0b3Igc3VnZ2VzdGVkIHlvdXIgc2l0ZSB0byBhIGZyaWVuZC4=</EVENT>
- <EVENT MessageType="text" Event="USER.DENY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciBkZW5pZWQKClVzZXIgIjxpbnA6dG91c2VyIF9GaWVsZD0iVXNlck5hbWUiIC8+IiBoYXMgYmVlbiBkZW5pZWQu</EVENT>
- <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRED" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJlZAoKTWVtYmVyc2hpcCBleHBpcmVk</EVENT>
- <EVENT MessageType="text" Event="USER.ADD.PENDING" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IFVzZXIgcmVnaXN0ZXJlZAoKQSBuZXcgdXNlciAiPGlucDp0b3VzZXIgX0ZpZWxkPSJMb2dpbiIgLz4iIGhhcyByZWdpc3RlcmVkIGFuZCBpcyBwZW5kaW5nIGFkbWluaXN0cmF0aXZlIGFwcHJvdmFsLg==</EVENT>
- <EVENT MessageType="text" Event="USER.ADD" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE5ldyB1c2VyIGhhcyBiZWVuIGFkZGVkCgpBIG5ldyB1c2VyICI8aW5wOnRvdXNlciBfRmllbGQ9IkxvZ2luIiAvPiIgaGFzIGJlZW4gYWRkZWQu</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.ADD.PENDING" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQ2F0ZWdvcnkgYWRkZWQgKHBlbmRpbmcpCgpBIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBhZGRlZCwgcGVuZGluZyB5b3VyIGNvbmZpcm1hdGlvbi4gIFBsZWFzZSByZXZpZXcgdGhlIGNhdGVnb3J5IGFuZCBhcHByb3ZlIG9yIGRlbnkgaXQu</EVENT>
- <EVENT MessageType="text" Event="USER.VALIDATE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogSW4tcG9ydGFsIHJlZ2lzdHJhdGlvbgoKV2VsY29tZSB0byBJbi1wb3J0YWwhDQpZb3VyIHVzZXIgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkLiBZb3VyIHVzZXIgbmFtZSBpcyAiPGlucDp0b3VzZXIgX0ZpZWxkPSJVc2VyTmFtZSIgLz4iIGFuZCB5b3VyIHBhc3N3b3JkIGlzICI8aW5wOnRvdXNlciBfRmllbGQ9InBhc3N3b3JkIiAvPiIuDQo=</EVENT>
- <EVENT MessageType="text" Event="USER.PSWD" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogTG9zdCBwYXNzd29yZAoKWW91ciBsb3N0IHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3VyIG5ldyBwYXNzd29yZCBpczogIjxpbnA6dG91c2VyIF9GaWVsZD0iUGFzc3dvcmQiIC8+Ii4=</EVENT>
- <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRED" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJlZAoKTWVtYmVyc2hpcCBleHBpcmVk</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.APPROVE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhcHByb3ZlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gYXBwcm92ZWQu</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.DENY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZW5pZWQKCkEgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIGRlbmllZC4=</EVENT>
- <EVENT MessageType="text" Event="USER.MEMBERSHIP.EXPIRATION.NOTICE" Type="1">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IE1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2UKCk1lbWJlcnNoaXAgZXhwaXJhdGlvbiBub3RpY2U=</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.APPROVE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhcHByb3ZlZAoKWW91ciBzdWdnZXN0ZWQgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIGFwcHJvdmVkLg==</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.MODIFY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBtb2RpZmllZAoKWW91ciBzdWdnZXN0ZWQgY2F0ZWdvcnkgIjxpbnA6bV9jYXRlZ29yeV9maWVsZCBfRmllbGQ9Ik5hbWUiIF9TdHJpcEhUTUw9IjEiLz4iIGhhcyBiZWVuIG1vZGlmaWVkLg==</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.DENY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZW5pZWQKCllvdXIgY2F0ZWdvcnkgc3VnZ2VzdGlvbiAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gZGVuaWVkLg==</EVENT>
- <EVENT MessageType="text" Event="USER.DENY" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQWNjZXNzIGRlbmllZAoKWW91ciByZWdpc3RyYXRpb24gdG8gPGlucDptX3BhZ2VfdGl0bGUgLz4gaGFzIGJlZW4gZGVuaWVkLg==</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.ADD" Type="0">U3ViamVjdDogQ2F0ZWdvcnkgYWRkZWQKCllvdXIgc3VnZ2VzdGVkIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBhZGRlZC4=</EVENT>
- <EVENT MessageType="text" Event="USER.UNSUBSCRIBE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciB1bnN1YnNyaWJlZAoKQSB1c2VyIGhhcyB1bnN1YnNjcmliZWQu</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.DELETE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBkZWxldGVkCgpBIGNhdGVnb3J5ICI8aW5wOm1fY2F0ZWdvcnlfZmllbGQgX0ZpZWxkPSJOYW1lIiBfU3RyaXBIVE1MPSIxIi8+IiBoYXMgYmVlbiBkZWxldGVkLg==</EVENT>
- <EVENT MessageType="text" Event="USER.ADD" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogSW4tcG9ydGFsIHJlZ2lzdHJhdGlvbgoKRGVhciA8aW5wOnRvdXNlciBfRmllbGQ9IkZpcnN0TmFtZSIgLz4gPGlucDp0b3VzZXIgX0ZpZWxkPSJMYXN0TmFtZSIgLz4sDQoNClRoYW5rIHlvdSBmb3IgcmVnaXN0ZXJpbmcgb24gPGlucDptX3BhZ2VfdGl0bGUgLz4uIFlvdXIgcmVnaXN0cmF0aW9uIGlzIG5vdyBhY3RpdmUu</EVENT>
- <EVENT MessageType="text" Event="USER.PSWDC" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogUGFzc3dvcmQgcmVzZXQgY29uZmlybWF0aW9uCgpIZWxsbywNCg0KSXQgc2VlbXMgdGhhdCB5b3UgaGF2ZSByZXF1ZXN0ZWQgYSBwYXNzd29yZCByZXNldCBmb3IgeW91ciBJbi1wb3J0YWwgYWNjb3VudC4gSWYgeW91IHdvdWxkIGxpa2UgdG8gcHJvY2VlZCBhbmQgY2hhbmdlIHRoZSBwYXNzd29yZCwgcGxlYXNlIGNsaWNrIG9uIHRoZSBsaW5rIGJlbG93Og0KPGlucDptX2NvbmZpcm1fcGFzc3dvcmRfbGluayAvPg0KDQpZb3Ugd2lsbCByZWNlaXZlIGEgc2Vjb25kIGVtYWlsIHdpdGggeW91ciBuZXcgcGFzc3dvcmQgc2hvcnRseS4NCg0KSWYgeW91IGJlbGlldmUgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIGlnbm9yZSB0aGlzIGVtYWlsLiBZb3VyIHBhc3N3b3JkIHdpbGwgbm90IGJlIGNoYW5nZWQgdW5sZXNzIHlvdSBoYXZlIGNsaWNrZWQgb24gdGhlIGFib3ZlIGxpbmsuDQo=</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.ADD.PENDING" Type="0"></EVENT>
- <EVENT MessageType="text" Event="CATEGORY.ADD" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBhZGRlZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gYWRkZWQu</EVENT>
- <EVENT MessageType="text" Event="USER.APPROVE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciBhcHByb3ZlZAoKVXNlciAiPGlucDp0b3VzZXIgX0ZpZWxkPSJVc2VyTmFtZSIgLz4iIGhhcyBiZWVuIGFwcHJvdmVkLg==</EVENT>
- <EVENT MessageType="text" Event="USER.SUBSCRIBE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogU3Vic2NyaXB0aW9uIGNvbmZpcm1hdGlvbgoKWW91IGhhdmUgc3Vic2NyaWJlZCB0byA8aW5wOm1fcGFnZV90aXRsZSAvPiBtYWlsaW5nIGxpc3Qu</EVENT>
- <EVENT MessageType="text" Event="USER.ADD.PENDING" Type="0">WC1Qcmlvcml0eTogMQpYLU1TTWFpbC1Qcmlvcml0eTogSGlnaApYLU1haWxlcjogSW4tUG9ydGFsClN1YmplY3Q6IEluLVBvcnRhbCBSZWdpc3RyYXRpb24KCkRlYXIgPGlucDp0b3VzZXIgX0ZpZWxkPSJGaXJzdE5hbWUiIC8+IDxpbnA6dG91c2VyIF9GaWVsZD0iTGFzdE5hbWUiIC8+LA0KDQpUaGFuayB5b3UgZm9yIHJlZ2lzdGVyaW5nIG9uIDxpbnA6bV9wYWdlX3RpdGxlIC8+LiBZb3VyIHJlZ2lzdHJhdGlvbiB3aWxsIGJlIGFjdGl2ZSBhZnRlciBhcHByb3ZhbC4=</EVENT>
- <EVENT MessageType="text" Event="USER.PSWD" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogTG9zdCBwYXNzd29yZAoKWW91ciBsb3N0IHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3VyIG5ldyBwYXNzd29yZCBpczogIjxpbnA6dG91c2VyIF9GaWVsZD0iUGFzc3dvcmQiIC8+Ii4=</EVENT>
- <EVENT MessageType="text" Event="CATEGORY.MODIFY" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogQSBjYXRlZ29yeSBoYXMgYmVlbiBtb2RpZmllZAoKQSBjYXRlZ29yeSAiPGlucDptX2NhdGVnb3J5X2ZpZWxkIF9GaWVsZD0iTmFtZSIgX1N0cmlwSFRNTD0iMSIvPiIgaGFzIGJlZW4gbW9kaWZpZWQu</EVENT>
<EVENT MessageType="text" Event="USER.APPROVE" Type="0">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogWW91IGhhdmUgYmVlbiBhcHByb3ZlZAoKV2VsY29tZSB0byBJbi1wb3J0YWwhDQpZb3VyIHVzZXIgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIGFwcHJvdmVkLiBZb3VyIHVzZXIgbmFtZSBpcyAiPGlucDp0b3VzZXIgX0ZpZWxkPSJVc2VyTmFtZSIgLz4iLg==</EVENT>
<EVENT MessageType="text" Event="USER.VALIDATE" Type="1">WC1Qcmlvcml0eTogMQ0KWC1NU01haWwtUHJpb3JpdHk6IEhpZ2gNClgtTWFpbGVyOiBJbi1Qb3J0YWwKU3ViamVjdDogVXNlciB2YWxpZGF0ZWQKClVzZXIgIjxpbnA6dG91c2VyIF9GaWVsZD0iVXNlck5hbWUiIC8+IiBoYXMgYmVlbiB2YWxpZGF0ZWQu</EVENT>
</EVENTS>
</LANGUAGE>
</LANGUAGES>
\ No newline at end of file
Property changes on: trunk/admin/install/langpacks/english.lang
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.59
\ No newline at end of property
+1.60
\ No newline at end of property
Index: trunk/core/kernel/utility/http_query.php
===================================================================
--- trunk/core/kernel/utility/http_query.php (revision 3249)
+++ trunk/core/kernel/utility/http_query.php (revision 3250)
@@ -1,732 +1,732 @@
<?php
class HTTPQuery extends Params {
/**
* $_POST vars
*
* @var Array
* @access private
*/
var $Post;
/**
* $_GET vars
*
* @var Array
* @access private
*/
var $Get;
/**
* $_COOKIE vars
*
* @var Array
* @access private
*/
var $Cookie;
/**
* $_SERVER vars
*
* @var Array
* @access private
*/
var $Server;
/**
* $_ENV vars
*
* @var Array
* @access private
*/
var $Env;
/**
* Order in what write
* all vars together in
* the same array
*
* @var string
*/
var $Order;
/**
* Uploaded files info
*
* @var Array
* @access private
*/
var $Files;
var $specialsToRemove = Array();
var $Admin = false;
/**
* Description
*
* @var kDBConnection
* @access public
*/
var $Conn;
/**
* Loads info from $_POST, $_GET and
* related arrays into common place
*
* @param string $order
* @return HTTPQuery
* @access public
*/
function HTTPQuery($order = 'CGPF')
{
parent::Params();
$this->Conn =& $this->Application->GetADODBConnection();
$this->Order = $order;
$this->Admin = $this->Application->IsAdmin(); // better cache this value, not to calculate it each time in foreach
}
function Init($prefix, $special)
{
$this->AddAllVars();
$this->specialsToRemove = $this->Get('remove_specials');
if($this->specialsToRemove)
{
$this->_Params = $this->removeSpecials($this->_Params);
}
ini_set('magic_quotes_gpc', 0);
}
function removeSpecials($array)
{
$ret = Array();
$removed = false;
foreach($this->specialsToRemove as $prefix_special => $flag)
{
if($flag)
{
$removed = true;
list($prefix,$special) = explode('.',$prefix_special, 2);
foreach ($array as $key => $val) {
$new_key = preg_match("/^".$prefix."[._]{1}".$special."(.*)/", $key, $regs) ? $prefix.$regs[1] : $key;
$ret[$new_key] = is_array($val) ? $this->removeSpecials($val) : $val;
}
}
}
return $removed ? $ret : $array;
}
/**
* All all requested vars to
* common storage place
*
* @access private
*/
function AddAllVars()
{
for ($i=0; $i < strlen($this->Order); $i++)
{
$current = $this->Order[$i];
switch ($current) {
case 'G':
$this->Get = $this->AddVars($_GET);
$this->processQueryString();
break;
case 'P':
$this->Post = $this->AddVars($_POST);
$this->convertPostEvents();
break;
case 'C':
$this->Cookie = $this->AddVars($_COOKIE);
break;
case 'E';
$this->Env = $this->AddVars($_ENV);
break;
case 'S';
$this->Server = $this->AddVars($_SERVER);
break;
case 'F';
$this->convertFiles();
$this->Files = $this->MergeVars($_FILES, false); //do not strip slashes!
break;
}
}
if( $this->Application->RewriteURLs() )
{
if( $this->Application->isDebugMode() )
{
$this->Application->Debugger->profileStart('url_parsing', 'Parsing <b>MOD_REWRITE</b> url');
$this->processRewriteURL();
$this->Application->Debugger->profileFinish('url_parsing');
}
else
{
$this->processRewriteURL();
}
}
}
function convertFiles()
{
if (!$_FILES)
{
return false;
}
$file_keys = Array('error','name','size','tmp_name','type');
$tmp = Array();
foreach($_FILES as $file_name => $file_info)
{
if( is_array($file_info['error']) )
{
$tmp[$file_name] = $this->getArrayLevel( $file_info['error'], $file_name );
}
else
{
$normal_files[$file_name] = $file_info;
}
}
if(!$tmp) return false;
$files = $_FILES;
$_FILES = Array();
foreach($tmp as $prefix => $prefix_files)
{
$anchor =& $_FILES;
foreach($prefix_files['keys'] as $key)
{
$anchor =& $anchor[$key];
}
foreach($prefix_files['value'] as $field_name)
{
unset($inner_anchor);
unset($copy);
$work_copy = $prefix_files['keys'];
foreach($file_keys as $file_key)
{
$inner_anchor =& $files[$prefix][$file_key];
if (isset($copy))
{
$work_copy = $copy;
}
else
{
$copy = $work_copy;
}
array_shift($work_copy);
foreach($work_copy as $prefix_file_key)
{
$inner_anchor =& $inner_anchor[$prefix_file_key];
}
$anchor[$field_name][$file_key] = $inner_anchor[$field_name];
}
}
}
// keys: img_temp, 0, values: LocalPath, ThumbPath
}
function getArrayLevel(&$level, $prefix='')
{
$ret['keys'] = $prefix ? Array($prefix) : Array();
$ret['value'] = Array();
foreach($level as $level_key => $level_value)
{
if( is_array($level_value) )
{
$ret['keys'][] = $level_key;
$tmp = $this->getArrayLevel($level_value);
$ret['keys'] = array_merge($ret['keys'], $tmp['keys']);
$ret['value'] = array_merge($ret['value'], $tmp['value']);
}
else
{
$ret['value'][] = $level_key;
}
}
return $ret;
}
/**
* Owerwrites GET events with POST events in case if they are set and not empty
*
*/
function convertPostEvents()
{
$events = $this->Get('events');
if( is_array($events) )
{
foreach ($events as $prefix_special => $event_name)
{
if($event_name) $this->Set($prefix_special.'_event', $event_name);
}
}
}
function finalizeParsing($passed, $module_params = Array() )
{
if( !is_array($passed) ) $passed = explode(',', $passed);
$prev_passed = $this->Get('passed');
if($prev_passed)
{
$prev_passed = explode(',', $prev_passed);
$passed = array_unique( array_merge($passed, $prev_passed) );
}
$passed = implode(',', $passed);
$this->Set('passed', $passed);
$env = $this->Application->BuildEnv( $this->Get('t'), $module_params, $passed, false, false );
$this->Set(ENV_VAR_NAME, $env);
$_REQUEST['env'] = $_GET['env'] = $env; // for capability with old in-portal code
}
function processRewriteURL()
{
// directory_1_2_3/sc1/inlink/detail/3/l1_ka_asd.html
- $url = $this->Get('url');
+ $url = $this->Get('_mod_rw_url_');
if( substr($url, -5) == '.html' ) $url = substr($url, 0, strlen($url) - 5 );
$url_parts = $url ? explode('/', $url) : Array();
// set default values
$defaults = Array('t' => '', 'm_cat_id' => 0, 'm_cat_page' => 1, 'm_opener' => 's');
foreach ($defaults as $default_key => $default_value)
{
$this->Set($default_key, $default_value);
}
if(!$url_parts)
{
$this->Application->Phrases = new PhrasesCache();
$this->Application->VerifyLanguageId();
$this->Application->Phrases->Init('phrases');
$this->Application->VerifyThemeId();
// $this->Get('m_lang') );
$this->Set('t', $this->getDefaultTemplate('') );
$this->finalizeParsing('m');
return false;
}
$url_part = array_shift($url_parts);
// match language
$sql = 'SELECT LanguageId FROM '.TABLE_PREFIX.'Language WHERE LOWER(PackName) = '.$this->Conn->qstr($url_part).' AND Enabled = 1';
$language_id = $this->Conn->GetOne($sql);
$this->Application->Phrases = new PhrasesCache();
if($language_id)
{
$this->Set('m_lang', $language_id);
$url_part = $url_parts ? array_shift($url_parts) : ''; // prepare next url part for parsing
}
else
{
$this->Application->VerifyLanguageId();
}
$this->Application->Phrases->Init('phrases');
// $this->Get('m_lang') );
// match theme
if($url_part)
{
$sql = 'SELECT ThemeId FROM '.TABLE_PREFIX.'Theme WHERE LOWER(Name) = '.$this->Conn->qstr($url_part).' AND Enabled = 1';
$theme_id = $this->Conn->GetOne($sql);
if($theme_id)
{
$this->Set('m_theme', $theme_id);
$url_part = $url_parts ? array_shift($url_parts) : ''; // prepare next url part for parsing
}
else
{
$this->Application->VerifyThemeId();
}
}
// match category
if($url_part)
{
$category_stack = Array();
$category_found = false;
$category_path = '';
do
{
$category_path = trim($category_path.'/'.$url_part, '/');
if( preg_match('/(.*)_([\d]+)$/', $category_path, $rets) )
{
$category_path = $rets[1];
$this->Set('m_cat_page', $rets[2]);
}
$sql = 'SELECT CategoryId FROM '.TABLE_PREFIX.'Category WHERE NamedParentPath = '.$this->Conn->qstr($category_path);
array_push($category_stack, $this->Conn->GetOne($sql) );
$category_found = end($category_stack);
if($category_found) $url_part = array_shift($url_parts);
}while ($category_found && $url_part);
if( count($category_stack) >= 2 )
{
$category_id = array_pop($category_stack); // remove last not found category
if($category_id === false)
{
$category_id = array_pop($category_stack);
}
if($category_id)
{
$this->Set('m_cat_id', $category_id);
}
}
}
// match module
$next_template = $this->Get('next_template');
if($url_part || $next_template)
{
if($next_template)
{
$next_template_parts = explode('/', $next_template);
$module_folder = array_shift($next_template_parts);
}
else
{
$module_folder = $url_part;
}
foreach ($this->Application->ModuleInfo as $module_name => $module_data)
{
if( trim($module_data['TemplatePath'], '/') == $module_folder )
{
$module_prefix = $module_data['Var'];
break;
}
}
}
// match template
$template_path = '';
$template_found = false;
if($url_part)
{
array_unshift($url_parts, $url_part);
$template_parts = $url_parts;
$url_parts = Array();
do
{
$template_path = implode('/', $template_parts);
$sql = 'SELECT FileId FROM '.TABLE_PREFIX.'ThemeFiles WHERE CONCAT(FilePath, "/", FileName) = '.$this->Conn->qstr('/'.$template_path.'.tpl');
$template_found = $this->Conn->GetOne($sql);
if(!$template_found)
{
array_unshift( $url_parts, array_pop($template_parts) );
}
}while (!$template_found && $template_parts);
}
// guess template if no existing template found
if(!$template_found && $module_folder)
{
// 1. try index template of module
$sql = 'SELECT FileId FROM '.TABLE_PREFIX.'ThemeFiles WHERE CONCAT(FilePath, "/", FileName) = '.$this->Conn->qstr('/'.$module_folder.'/index.tpl');
$template_found = $this->Conn->GetOne($sql);
if($template_found)
{
$template_path = $module_folder.'/index';
}
else
{
// 2. return error template then
$template_found = true;
$template_path = $this->Application->ConfigValue('ErrorTemplate');
if(!$template_path) $template_path = 'error_notfound';
}
}
$this->Set('t', $this->getDefaultTemplate($template_found ? $template_path : '') );
// pass params left to module
$passed = Array('m');
$module_params = Array();
if( isset($module_prefix) )
{
$passed[] = $module_prefix;
$module_event = new kEvent($module_prefix.':ParseEnv', Array('url_parts' => $url_parts) );
$this->Application->HandleEvent($module_event);
$item_id = $this->Get($module_prefix.'_id');
$module_params = Array($module_prefix.'_id' => $item_id ? $item_id : '0' );
if($module_event->status == erFAIL)
{
$not_found = $this->Application->ConfigValue('ErrorTemplate');
$this->Set('t', $not_found ? $not_found : 'error_notfound' );
}
}
$this->finalizeParsing($passed, $module_params);
}
function getDefaultTemplate($t)
{
$t = $this->getTemplateName( trim($t, '/') );
if (!$t) $t = 'index';
return trim($t, '/');
}
function extractSIDAndTemplate(&$parts)
{
if ( defined('INPORTAL_ENV') && INPORTAL_ENV ) // SID-TEMPLATE
{
$sub_parts = array_shift($parts);
list($sid, $t) = explode('-', $sub_parts, 2);
// Save Session ID
if($sid)
{
$this->Set('sid', $sid);
$this->Get['sid'] = $sid;
}
// Save Template Name
$this->Set('t', $this->getDefaultTemplate($t) );
}
else // SID:TEMPLATE
{
// Save Session ID
$sid = array_shift($parts);
if ($sid) $this->Set('sid', $sid);
// Save Template Name
$t = array_shift($parts);
$this->Set('t', $this->getDefaultTemplate($t) );
}
}
/**
* Process QueryString only, create
* events, ids, based on config
* set template name and sid in
* desired application variables.
*
* @access private
*/
function processQueryString()
{
// env=SID:TEMPLATE:m-1-1-1-1:l0-0-0:n-0-0-0:bb-0-0-1-1-1-0
$env_var = $this->Get(ENV_VAR_NAME);
if($env_var)
{
$env_var = str_replace('\:','_&+$$+&_', $env_var); // replace escaped "=" with spec-chars :)
$parts = explode(':', $env_var);
if( !$this->Application->RewriteURLs() )
{
$this->extractSIDAndTemplate($parts);
}
if($parts)
{
$query_maps = Array();
$event_manger =& $this->Application->recallObject('EventManager');
$passed = Array();
foreach($parts as $mixed_part)
{
//In-portal old style env conversion - adds '-' between prefix and first var
$mixed_part = str_replace('_&+$$+&_',':',$mixed_part);
$mixed_part = preg_replace("/^([a-zA-Z]+)([0-9]+)-(.*)/", "$1-$2-$3", $mixed_part);
$escaped_part = str_replace('\-', '_&+$$+&_', $mixed_part);
$escaped_part = explode('-', $escaped_part);
$mixed_part = array();
foreach ($escaped_part as $escaped_val) {
$mixed_part[] = str_replace('_&+$$+&_', '-', $escaped_val);
}
$prefix_special = array_shift($mixed_part); // l.pick, l
list($prefix) = explode('.', $prefix_special);
$query_maps[$prefix_special] = $this->Application->getUnitOption($prefix,'QueryString');
// if config is not defined for prefix in QueryString, then don't process it
if( $query_maps[$prefix_special] )
{
array_push($passed, $prefix);
foreach($query_maps[$prefix_special] as $index => $var_name)
{
// l_id, l_page, l_bla-bla-bla
$val = $mixed_part[$index - 1];
if ($val == '') $val = false;
$this->Set($prefix_special.'_'.$var_name, $val);
}
}
else
{
unset($query_maps[$prefix_special]);
}
}
$this->Set('passed', implode(',', $passed) );
$event_manger->setQueryMaps($query_maps);
}
}
else
{
$t=$this->getTemplateName('index');
$this->Set('t', $t);
}
}
/**
* Decides what template name to
* use from $_GET or from $_POST
*
* @param string $querystring_template
* @return string
* @access private
*/
function getTemplateName($querystring_template)
{
$t_from_post = $this->Get('t');
$t = $t_from_post ? $t_from_post : $querystring_template;
if ( is_numeric($t) )
{
$t = $this->Conn->GetOne(' SELECT CONCAT(FilePath, \'/\', FileName)
FROM '.TABLE_PREFIX.'ThemeFiles
WHERE FileId = '.$t);
}
$t = preg_replace('/\.tpl$/', '', $t);
return $t;
}
/**
* Saves variables from array specified
* into common variable storage place
*
* @param Array $array
* @return Array
* @access private
*/
function AddVars($array)
{
$array = $this->StripSlashes($array);
foreach($array as $key => $value)
{
$this->Set($key,$value);
}
return $array;
}
function MergeVars($array, $strip_slashes=true)
{
if ($strip_slashes) $array = $this->StripSlashes($array);
foreach($array as $key => $value)
{
$this->_Params = array_merge_recursive2($this->_Params, Array($key=>$value));
}
return $array;
}
function StripSlashes($array)
{
//if( !get_magic_quotes_gpc() ) return $array;
foreach($array as $key=>$value)
{
if( is_array($value) )
{
$array[$key] = $this->StripSlashes($value);
}
else
{
if( get_magic_quotes_gpc() ) $value = stripslashes($value);
if(!$this->Admin) $value = htmlspecialchars($value);
$array[$key] = $value;
}
//$array[$key]=is_array($value)?$this->StripSlashes($value):stripslashes($value);
}
return $array;
}
/**
* Returns the hash of http params
* matching the mask with values
*
* @param string $mask
* @return Array
* @access public
*/
function GetSelectedValues($mask)
{
return $this->Application->ExtractByMask($this->Vars, $mask);
}
/**
* Returns the sprintf'ed by format list of
* http params matching the mask and set to on
*
* @param string $mask
* @param string $format
* @return string
* @access public
*/
function GetSelectedIDs($mask, $format)
{
if ($mask == '') return;
$result = '';
foreach ($this->GetParams() as $name => $val)
{
if (eregi($mask, $name, $regs) && $val == 'on') {
$result.= sprintf($format, $regs[1]);
}
}
return $result;
}
/**
* Returns the sprintf'ed by format list of
* http params matching the mask and set to on
*
* @param string $mask
* @param string $value_mask
* @return Array
* @access public
*/
function GetSelectedIDsArray($mask, $value_mask="%s,")
{
$str = $this->GetSelectedIDs($mask, $value_mask);
$str = rtrim($str, ',');
if (!empty($str)) {
$ids = split(',', $str);
if ($ids !== false)
return $ids;
else return Array();
}
else return Array();
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/kernel/utility/http_query.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.24
\ No newline at end of property
+1.25
\ No newline at end of property
Index: trunk/core/units/users/users_event_handler.php
===================================================================
--- trunk/core/units/users/users_event_handler.php (revision 3249)
+++ trunk/core/units/users/users_event_handler.php (revision 3250)
@@ -1,805 +1,805 @@
<?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
{
- $unset_vars = Array(ENV_VAR_NAME, 'rewrite', 'url', 'Action');
+ $unset_vars = Array(ENV_VAR_NAME, 'rewrite', '_mod_rw_url_', 'Action');
$http_query =& $this->Application->recallObject('HTTPQuery');
$get = $http_query->Get;
foreach ($unset_vars as $var_name)
{
if( isset($get[$var_name]) ) unset( $get[$var_name] );
}
$t = $this->Application->GetVar('t');
$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);
}
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;
$event->SetRedirectParam('js_redirect', 1);
}
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)
{
}
function OnLogout(&$event)
{
$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);
$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();
$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) ?
mktime() > $PwRequestTime + $MinPwResetDelay :
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 > 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", time());
$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;
}
}
}
function OnCheckExpiredMembership(&$event)
{
$sql = 'SELECT PortalUserId FROM '.TABLE_PREFIX.'UserGroup
WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.mktime();
$user_ids = $this->Conn->GetCol($sql);
if(is_array($user_ids) && count($user_ids) > 0)
{
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 < '.mktime();
$this->Conn->Query($sql);
$pre_expiration = mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
$sql = 'SELECT PortalUserId, GroupId FROM '.TABLE_PREFIX.'UserGroup
WHERE MembershipExpires IS NOT NULL AND MembershipExpires < '.$pre_expiration.'
AND ExpirationReminderSent = 0';
$res = $this->Conn->Query($sql);
if(is_array($res) && count($res) > 0)
{
$conditions = Array();
foreach($res 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);
}
}
/**
* 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: trunk/core/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.40
\ No newline at end of property
+1.41
\ No newline at end of property
Index: trunk/core/units/general/cat_dbitem.php
===================================================================
--- trunk/core/units/general/cat_dbitem.php (revision 3249)
+++ trunk/core/units/general/cat_dbitem.php (revision 3250)
@@ -1,235 +1,260 @@
<?php
class kCatDBItem extends kDBItem {
var $CustomFields = Array();
function Init($prefix, $special, $event_params = null)
{
parent::Init($prefix, $special, $event_params);
$item_type = $this->Application->getUnitOption($this->Prefix, 'ItemType');
$sql = 'SELECT CustomFieldId, FieldName FROM '.TABLE_PREFIX.'CustomField WHERE Type = %s';
$this->CustomFields = $this->Conn->GetCol( sprintf($sql, $item_type), 'FieldName' );
}
function Create()
{
if (!$this->Validate()) return false;
$this->checkFilename();
$this->SetDBField('ResourceId', $this->Application->NextResourceId());
$this->SetDBField('Modified', mktime());
$this->SetDBField('CreatedById', $this->Application->GetVar('u_id'));
$this->generateFilename();
$ret = parent::Create();
if($ret)
{
if ( kTempTablesHandler::IsTempTable($this->TableName) ) {
$table = kTempTablesHandler::GetTempName(TABLE_PREFIX.'CategoryItems');
}
else {
$table = TABLE_PREFIX.'CategoryItems';
}
$cat_id = $this->Application->GetVar('m_cat_id');
$query = 'INSERT INTO '.$table.' (CategoryId,ItemResourceId,PrimaryCat)
VALUES ('.$cat_id.','.$this->GetField('ResourceId').',1)';
$this->Conn->Query($query);
}
return $ret;
}
function Update($id=null)
{
$this->checkFilename();
$this->VirtualFields['ResourceId'] = true;
$this->SetDBField('Modified', mktime());
$this->SetDBField('ModifiedById', $this->Application->GetVar('u_id'));
$this->generateFilename();
return parent::Update($id);
}
function checkFilename()
{
if( !$this->GetDBField('AutomaticFilename') )
{
$filename = $this->GetDBField('Filename');
$this->SetDBField('Filename', $this->stripDisallowed($filename) );
}
}
function Copy($cat_id=null)
{
if (!isset($cat_id)) $cat_id = $this->Application->GetVar('m_cat_id');
$this->NameCopy($cat_id);
return $this->Create($cat_id);
}
function NameCopy($master=null, $foreign_key=null)
{
$title_field = $this->Application->getUnitOption($this->Prefix, 'TitleField');
if (!$title_field) return;
$new_name = $this->GetDBField($title_field);
$cat_id = $this->Application->GetVar('m_cat_id');
$original_checked = false;
do {
if ( preg_match('/Copy ([0-9]*) *of (.*)/', $new_name, $regs) ) {
$new_name = 'Copy '.( (int)$regs[1] + 1 ).' of '.$regs[2];
}
elseif ($original_checked) {
$new_name = 'Copy of '.$new_name;
}
$query = 'SELECT '.$title_field.' FROM '.$this->TableName.'
LEFT JOIN '.TABLE_PREFIX.'CategoryItems ON
('.TABLE_PREFIX.'CategoryItems.ItemResourceId = '.$this->TableName.'.ResourceId)
WHERE ('.TABLE_PREFIX.'CategoryItems.CategoryId = '.$cat_id.') AND '.
$title_field.' = '.$this->Conn->qstr($new_name);
$res = $this->Conn->GetOne($query);
$original_checked = true;
} while ($res !== false);
$this->SetDBField($title_field, $new_name);
}
function MoveToCat($cat_id=null)
{
// $this->NameCopy();
$cat_id = $this->Application->GetVar('m_cat_id');
// check if the product already exists in destination cat
$query = 'SELECT PrimaryCat FROM '.TABLE_PREFIX.'CategoryItems
WHERE CategoryId = '.$cat_id.' AND ItemResourceId = '.$this->GetDBField('ResourceId');
// if it's not found is_primary will be FALSE, if it's found but not primary it will be int 0
$is_primary = $this->Conn->GetOne($query);
$exists = $is_primary !== false;
if ($exists) { // if the Product already exists in destination category
if ($is_primary) return; // do nothing when we paste to primary
// if it's not primary - delete it from destination category,
// as we will move it from current primary below
$query = 'DELETE FROM '.TABLE_PREFIX.'CategoryItems
WHERE ItemResourceId = '.$this->GetDBField('ResourceId').' AND CategoryId = '.$cat_id;
$this->Conn->Query($query);
}
$query = 'UPDATE '.TABLE_PREFIX.'CategoryItems SET CategoryId = '.$cat_id.
' WHERE ItemResourceId = '.$this->GetDBField('ResourceId').' AND PrimaryCat = 1';
$this->Conn->Query($query);
$this->Update();
}
// We need to delete CategoryItems record when deleting product
function Delete($id=null)
{
if( isset($id) ) {
$this->setID($id);
}
$this->Load($this->GetID());
$ret = parent::Delete();
if ($ret) {
$query = 'DELETE FROM '.TABLE_PREFIX.'CategoryItems WHERE ItemResourceId = '.$this->GetDBField('ResourceId');
$this->Conn->Query($query);
}
return $ret;
}
/**
* Deletes item from categories
*
* @param Array $delete_category_ids
* @author Alex
*/
function DeleteFromCategories($delete_category_ids)
{
$id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); // because item was loaded before by ResourceId
$ci_table = $this->Application->getUnitOption('ci', 'TableName');
$resource_id = $this->GetDBField('ResourceId');
$item_cats_sql = 'SELECT CategoryId FROM %s WHERE ItemResourceId = %s';
$delete_category_items_sql = 'DELETE FROM %s WHERE ItemResourceId = %s AND CategoryId IN (%s)';
$category_ids = $this->Conn->GetCol( sprintf($item_cats_sql, $ci_table, $resource_id) );
$cats_left = array_diff($category_ids, $delete_category_ids);
if(!$cats_left)
{
$sql = 'SELECT %s FROM %s WHERE ResourceId = %s';
$ids = $this->Conn->GetCol( sprintf($sql, $id_field, $this->TableName, $resource_id) );
$temp =& $this->Application->recallObject($this->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
$temp->DeleteItems($this->Prefix, $this->Special, $ids);
}
else
{
$this->Conn->Query( sprintf($delete_category_items_sql, $ci_table, $resource_id, implode(',', $delete_category_ids) ) );
$sql = 'SELECT CategoryId FROM %s WHERE PrimaryCat = 1 AND ItemResourceId = %s';
$primary_cat_id = $this->Conn->GetCol( sprintf($sql, $ci_table, $resource_id) );
if( count($primary_cat_id) == 0 )
{
$sql = 'UPDATE %s SET PrimaryCat = 1 WHERE (CategoryId = %s) AND (ItemResourceId = %s)';
$this->Conn->Query( sprintf($sql, $ci_table, reset($cats_left), $resource_id ) );
}
}
}
function SetCustomField($field, $value)
{
$cf_id = getArrayValue($this->CustomFields, $field);
if(!$cf_id) return false;
$data_table = TABLE_PREFIX.'CustomMetaData';
$sql = 'SELECT CustomDataId FROM '.$data_table.' WHERE CustomFieldId = %s AND ResourceId = %s';
$data_id = (int)$this->Conn->GetOne( sprintf($sql, $cf_id, $this->GetDBField('ResourceId') ) );
$lang_id = $this->Application->GetVar('lang.current_id');
$sql = 'REPLACE INTO '.$data_table.'(CustomDataId,ResourceId,CustomFieldId,Value,l'.$lang_id.'_Value) VALUES (%1$s,%2$s,%3$s,%4$s,%4$s)';
$this->Conn->Query( sprintf($sql, $data_id, $this->GetDBField('ResourceId'), $cf_id, $this->Conn->qstr($value) ) );
}
/**
* replace not allowed symbols with "_" chars + remove duplicate "_" chars in result
*
* @param string $string
* @return string
*/
function stripDisallowed($string)
{
$not_allowed = Array( ' ', '\\', '/', ':', '*', '?', '"', '<', '>', '|',
'~', '!', '@', '#', '$', '%', '^', '&', '(', ')',
'+', '=', '-', '{', '}', ']', '[', "'", ';', '.', ',');
$string = str_replace($not_allowed, '_', $string);
$string = preg_replace('/(_+)/', '_', $string);
-
- while( preg_match('/(.*)_([\d]+)$/', $string, $rets) )
- {
- $string = $rets[1];
- }
+ $string = $this->checkAutoFilename($string);
return $string;
}
+ function checkAutoFilename($filename)
+ {
+ if(!$filename || $this->GetID() == 0 ) return $filename;
+
+ $sql = 'SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE Filename = '.$this->Conn->qstr($filename);
+ $found_item_id = $this->Conn->GetOne($sql);
+ $has_page = preg_match('/(.*)_([\d]+)([a-z]*)$/', $filename, $rets);
+ if( ($found_item_id != $this->GetID()) || $has_page ) // other category has same filename as ours OR we have filename, that ends with _number
+ {
+ $append = $found_item_id ? 'a' : '';
+ if($has_page)
+ {
+ $filename = $rets[1].'_'.$rets[2];
+ $append = $rets[3] ? $rets[3] : 'a';
+ }
+
+ $sql = 'SELECT '.$this->IDField.' FROM '.$this->TableName.' WHERE (Filename = %s) AND ('.$this->IDField.' != '.$this->GetID().')';
+ while ( $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($filename.$append)) ) > 0 )
+ {
+ if (substr($append, -1) == 'z') $append .= 'a';
+ $append = substr($append, 0, strlen($append) - 1) . chr( ord( substr($append, -1) ) + 1 );
+ }
+
+ return $filename.$append;
+ }
+
+ return $filename;
+ }
+
/**
* Generate item's filename based on it's title field value
*
* @return string
*/
function generateFilename()
{
if ( !$this->GetDBField('AutomaticFilename') && $this->GetDBField('Filename') ) return false;
$title_field = $this->Application->getUnitOption($this->Prefix, 'TitleField');
$name = $this->stripDisallowed( $this->GetDBField($title_field) );
if ( $name != $this->GetDBField('Filename') ) $this->SetDBField('Filename', $name);
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/general/cat_dbitem.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.13
\ No newline at end of property
+1.14
\ No newline at end of property
Index: trunk/core/units/general/inp1_parser.php
===================================================================
--- trunk/core/units/general/inp1_parser.php (revision 3249)
+++ trunk/core/units/general/inp1_parser.php (revision 3250)
@@ -1,194 +1,194 @@
<?php
class Inp1Parser extends kBase {
var $InportalInited = false;
function Parse($tname, $template_body)
{
global $objTemplate, $var_list, $var_list_update;
if ( !$this->InportalInited) {
//$save_t = $this->Application->GetVar('t');
$this->InitInPortal();
$var_list['t'] = $this->cutTPL($var_list['t']);
if($var_list['t'] != $this->Application->GetVar('t'))
{
$get = $_GET;
- unset($get['env'], $get['Action'], $get['url'], $get['rewrite']);
+ unset($get['env'], $get['Action'], $get['_mod_rw_url_'], $get['rewrite']);
$this->Application->StoreVar('K4_Template_Referer', $this->Application->GetVar('t') );
$this->Application->Redirect($var_list['t'], $get);
}
}
$var_list['t'] = $this->cutTPL($var_list['t']);
if ($var_list['t'] != $this->Application->GetVar('t')) {
//$var_list['t'] = rtrim($var_list['t'],'.tpl');
$t = $var_list['t'];
$this->Application->SetVar('t', $t);
$template_cache =& $this->Application->recallObject('TemplatesCache');
$template_body = $this->Application->Parser->Parse( $template_cache->GetTemplateBody($t), $t, 0 );
}
else {
$template_body = $objTemplate->ParseTemplateFromBuffer($tname, $template_body);
}
return $template_body;
}
function cutTPL($tname)
{
if( substr($tname,-4) == '.tpl' )
{
return substr($tname, 0, strlen($tname)-4 );
}
return $tname;
}
function InitInPortal()
{
$this->InportalInited = true;
/*global $pathtoroot, $FrontEnd, $indexURL, $rootURL, $secureURL, $var_list, $CurrentTheme,
$objThemes, $objConfig, $m_var_list, $timeout, $objLanguages, $objLanguageCache,
$TemplateRoot, $objTemplate, $html, $objSession, $Errors, $objCatList, $objUsers,
$env, $mod_prefix, $ExtraVars, $timestart, $timeend, $timeout, $sqlcount, $totalsql,
$template_path, $modules_loaded, $mod_root_cats, $objModules, $objItemTypes;*/
global $sec, $usec, $timestart, $pathtoroot, $FrontEnd, $indexURL, $kernel_version, $FormError,
$FormValues, $ItemTables, $KeywordIgnore, $debuglevel,
$LogLevel, $LogFile, $rq_value, $rq_name, $dbg_constMap, $dbg_constValue, $dbg_constName,
$debugger, $g_LogFile, $LogData, $Errors,
$g_DebugMode, $totalsql, $sqlcount, $objConfig, $ItemTypePrefixes, $ItemTagFiles, $objModules,
$objSystemCache, $objBanList, $objItemTypes, $objThemes, $objLanguages, $objImageList, $objFavorites,
$objUsers, $objGroups, $DownloadId, $objPermissions, $objPermCache, $m_var_list, $objCatList,
$objCustomFieldList, $objCustomDataList, $objCountCache, $CRLF, $objMessageList, $objEmailQueue,
$ExtraVars, $adodbConnection, $sql, $rs, $mod_prefix, $modules_loaded, $name,
$template_path, $mod_root_cats, $value, $mod, $ItemTypes,
$ParserFiles, $SessionQueryString, $var_list, $objSession,
$orderByClause, $TemplateRoot, $ip, $UseSession, $Action, $CookieTest, $sessionId,
$var_list_update, $CurrentTheme, $UserID, $objCurrentUser, $objLanguageCache,
$folder_name, $objLinkList, $tag_override, $timeZones, $siteZone, $serverZone,
$lastExpire, $diffZone, $date, $nowDate, $lastExpireDate, $SearchPerformed,
$TotalMessagesSent, $ado, $adminDir, $rootURL, $secureURL, $html, $timeout,
$pathchar, $objTemplate, $objTopicList, $objArticleList, $objPostingList, $objCensorList,
$objSmileys, $objPMList;
$pathtoroot = $this->Application->IsAdmin() ? '../' : './';
$pathtoroot = realpath($pathtoroot)."/";
if (!file_exists($pathtoroot."config.php")) {
echo "In-Portal is probably not installed, or configuration file is missing.<br>";
echo "Please use the installation script to fix the problem.<br><br>";
echo "<a href='admin/install.php'>Go to installation script</a><br><br>";
flush();
die();
}
//ob_start();
$FrontEnd=1;
$indexURL="../../index.php"; //Set to relative URL from the theme directory
/* initalize the in-portal system */
include_once(FULL_PATH."/kernel/startup.php");
$rootURL="http://".ThisDomain().$objConfig->Get("Site_Path");
//$secureURL = "https://".ThisDomain().$objConfig->Get("Site_Path");
$secureURL = $rootURL;
$html= '';
if( !$var_list['t'] ) $var_list['t'] = 'index';
if( !isset($CurrentTheme) ) $CurrentTheme = null;
$theme_id = defined('DBG_FORCE_THEME') && DBG_FORCE_THEME ? DBG_FORCE_THEME : $m_var_list['theme'];
if( !is_object($CurrentTheme) ) $CurrentTheme = $objThemes->GetItem($theme_id);
if(is_object($CurrentTheme))
{
if(!$CurrentTheme->Get("Enabled"))
{
$CurrentTheme = $objThemes->GetItem($objThemes->GetPrimaryTheme());
}
if((int)$CurrentTheme->Get("ThemeId")>0)
{
$timeout = $CurrentTheme->Get("CacheTimeout");
$objLanguageCache->LoadTemplateCache($var_list["t"],$timeout,$CurrentTheme->Get("ThemeId"));
$objLanguageCache->LoadCachedVars($objSession->Get("Language"));
$TemplateRoot = $CurrentTheme->ThemeDirectory()."/";
$objTemplate = new clsTemplateList($TemplateRoot);
//$html = $objTemplate->ParseTemplate($var_list["t"]);
}
else
{
echo "No Primary Theme Selected";
die();
}
}
else
{
echo "No Primary Theme Selected\n";
die();
}
if(is_object($objSession))
{
$k4_referer = $objSession->GetVariable('K4_Template_Referer');
if($k4_referer)
{
$_local_t = $k4_referer;
$this->Application->RemoveVar('K4_Template_Referer');
}
$objSession->SetVariable("Template_Referer", $_local_t);
}
if($objTemplate->ErrorNo == -1)
{
$html = $objTemplate->ParseTemplate('error_template');
}
//$html = replacePngTags($html);
LogEntry("Output Start\n");
$html .= "<!-- Page Execution Time: ".( isset($ptime) ? $ptime : 0 )." -->";
if( IsDebugMode() )
{
if($Action) $debugger->setHTMLByIndex(1,'Front Action: <b>'.$Action.'</b>','append');
//$html = '<a href="javascript:toggleDebugLayer();">Show Debugger</a><br>'.$html;
}
else
{
// header("Content-length: ".strlen($html));
}
// header("Connection-Type: Keep-Alive");
// echo $html;
LogEntry("Output End\n");
if( isset($template) && $template->ErrorNo != 0 )
{
print "\n(".$objTemplate->ErrorNo.") ".$objTemplate->ErrorStr."\n";
}
LogEntry("Output Complete\n");
$objLanguageCache->SaveTemplateCache();
LogEntry("Templates Cached\n");
//if($objSession->SessionEnabled())
// $objSession->SaveSessionData();
//echo "Cookie: <PRE>"; print_r($_COOKIE); echo "</PRE><br>\n";
//ob_end_flush();
$timeend = getmicrotime();
$diff = $timeend - $timestart;
LogEntry("\nTotal Queries Executed: $sqlcount in $totalsql seconds\n");
LogEntry("\nPage Execution Time: $diff seconds\n", true);
if($LogFile)
fclose($LogFile);
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/general/inp1_parser.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.11
\ No newline at end of property
+1.12
\ No newline at end of property
Index: trunk/.htaccess
===================================================================
--- trunk/.htaccess (nonexistent)
+++ trunk/.htaccess (revision 3250)
@@ -0,0 +1,9 @@
+Options +FollowSymLinks
+RewriteEngine On
+
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME}/ !-f
+RewriteCond %{REQUEST_FILENAME}/index.php !-f
+RewriteCond %{REQUEST_FILENAME}/index.html !-f
+RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)
+RewriteRule ^(.*) index.php?rewrite=on&_mod_rw_url_=$1 [QSA]
Property changes on: trunk/.htaccess
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.2
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property

Event Timeline